下载安装包
官网地址:MySQL :: Download MySQL Community Server (Archived Versions)
可以直接下载后再传到服务器,也可以在服务器采用wget下载。如下:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
后边的链接地址,可以在右键“Download”复制链接地址获取。
创建MySQL用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
这将创建一个名为mysql的用户和组。
解压安装包并配置MySQL
切换到你安装包的放置目录下,并执行以下命令进行解压:
tar xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
解压完成后,进入解压后的目录,并将MySQL的文件和目录移动到指定的安装目录下:
mv mysql-8.0.33-linux-glibc2.28-x86_64 /usr/local/mysql
然后切换到安装目录下,执行以下命令:
cd /usr/local/mysql
chown -R mysql:mysql .
chown -R mysql:mysql data
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup --user=mysql
bin/mysqld_safe --user=mysql &
以上命令将设置MySQL的安装目录、设置MySQL的用户和组,并启动MySQL。
注意:执行“bin/mysqld --initialize --user=mysql”,命令后会在日志中打印初始密码,必须拷贝记下来。
类似结果如下:
[root@ws-erp mysql]# bin/mysqld --initialize --user=mysql
2024-07-02T01:32:57.658622Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.36) initializing of server in progress as process 2909
2024-07-02T01:32:57.667840Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-07-02T01:32:58.880413Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-07-02T01:33:01.429203Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: +)BaUEOru5P5
初始密码即为:+)BaUEOru5P5,实际密码以自己的日志打印结果为准,不同的安装密码是不一样的。
bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize-insecure --user=mysql
--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
--defaults-file=/usr/local/mysql/my.cnf 初始化指定my.cnf路径
登录测试及远程连接权限配置
cd /usr/local/mysql
bin/mysql -uroot -p
输入前边在日志中记录下的初始密码。
登录进去后,需要配置远程登录权限,分别执行如下SQL或命令:
alter user 'root'@'localhost' identified by '123456'; #修改root用户的密码
use mysql;
update user set host='%' where user='root';
flush privileges;
执行效果如下:
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
都执行成功后,可采用本机的navicat测试远程连接。如果连接不上,可先ping一下服务器ip,然后telnet端口号。如果端口号不通,则在服务器上使用如下命令查看是否开启远程端口。
[root@ws-erp mysql]# netstat -tuln | grep :3306
tcp6 0 0 :::33060 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
正常情况如上,如果还是访问不了,则有可能还需要运维在服务器的控制台进行端口权限配置。
配置MySQL环境变量(可选)
为了方便使用MySQL,我们需要将MySQL的执行文件路径添加到系统的环境变量中。打开终端,执行以下命令:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
这样,你就可以在任何位置使用mysql命令了。
查看mysql版本
mysql -V
my.cnf配置
部署成功后,检查/etc/my.cnf是否存在,如果不存在则新增一个,然后重启。对应上边的整个流程配置内容如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
#存储临时文件目录
tmpdir =/var/tmp
# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为UTF8MB4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置mysql的socket文件位置
socket=/tmp/mysql.sock
# 默认使用“mysql_native_password”插件作为认证机制
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置客户端连接服务端时默认使用的端口和socket文件
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8mb4
[mysqld_safe]
log error=/usr/local/mysql/error.log
pid file=/usr/local/mysql/mysqld.pid
1、里边的目录主要集中在/usr/local/mysql/,该目录也是前边的默认安装目录。建议也安装在该目录。
2、另外当中添加了tmpdir的目录设置,该目录默认是服务器上/tmp,但是采用df -h命令查看/tmp的空间大小只有2G,在处理大数据量时,可能会不足,所以配置文件做了修改。
3、mysql8默认开去binlog,故配置文件中暂时未配置。