参考

MySQL 8 二进制方式安装到 CentOS 7 中 - 简书 (jianshu.com)

步骤

下载

到官网 https://dev.mysql.com/downloads/mysql/ 来下载对应版本的 RPM 安装包,其中 Bundle 是一个包含了各种MySQL 其他组件的包

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
yum remove mariadb-libs
yum install perl
tar -xvf mysql-8.0.14-1.el7.x86_64.rpm-bundle.tar.gz
rpm -ivh mysql-community-common-8.0.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.14-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.14-1.el7.x86_64.rpm

# 创建 mysql 的数据文件目录
mkdir /data/mysql
mkdir /data/mysql/logs
chown -R mysql:mysql /data/mysql

配置

修改配置文件 /etc/my.cnf 如下所示

  • MySQL 的服务端口设置为 3316 ,并且 server-id 设置为本机 ip 的最后一段 88 「192.168.0.88」

  • 关闭 selinux,确保 getenforce 的值为 Permissive

    1
    2
    3
    $ setenforce 0
    $ getenforce
    Permissive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[mysqld]
server-id=88
port=3316
character-set-server=utf8mb4
default-time_zone='+8:00'
lower_case_table_names=1

max_connections=3000
max_connect_errors=100000

default_authentication_plugin=mysql_native_password
datadir=/data/mysql/data
socket=/data/mysql/mysql.sock
log-error=/data/mysql/logs/mysqld.log
pid-file=/data/mysql/mysqld.pid

long_query_time=1
slow_query_log = 1
slow_query_log_file=/data/mysql/logs/slow.log

[client]
port=38965
default-character-set=utf8mb4
socket=/data/mysql/mysql.sock

[mysql]
no-auto-rehash
default-character-set=utf8mb4

启动

1
systemctl start mysqld

如果没有问题,查看 /data/mysql/logs/mysqld.log 文件内容

1
2
3
4
5
6
7
8
9
10
cat /data/mysql/logs/mysqld.log
2019-01-29T18:51:55.600096Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.13) initializing of server in progress as process 18964
2019-01-29T18:52:25.564666Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;-1wtd-t6jqE
2019-01-29T18:52:37.781510Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.13) initializing of server has completed
2019-01-29T18:52:41.606598Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 10000 (requested 15000)
2019-01-29T18:52:41.606840Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 3495 (requested 4000)
2019-01-29T18:52:41.896630Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.13) starting as process 19012
2019-01-29T18:52:44.240940Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-01-29T18:52:44.320302Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.13' socket: '/data/mysql/mysql.sock' port: 38965 MySQL Community Server - GPL.
2019-01-29T18:52:44.458457Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060

其中第二行表明生成了一个临时的 root 密码 ;-1wtd-t6jqE,可以用这个密码来登录 mysql ,但是登录后首先需要修改掉这个初始的密码,否则,不运行进行其他操作

1
2
3
4
[root@localhost ~]# mysql -uroot -p           
Enter password:
mysql> alter user 'root'@'localhost' identified by '新密码';
mysql>