与 5.7.x 的安装类似,这里记录一些安装和配置过程中遇到的坑。
后记
- 更新日期:2019-07-09
在 CentOS-7-x86_64-Minimal-1810 上安装 8.0.16 的正确顺序
以 root 身份操作。1
2
3
4
5
6yum install -y openssl-devel net-tools perl net-tools libaio
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
遇到的依赖问题
1 | pkgconfig(openssl) is needed by mysql-community-devel-8.0.16-2.el7.x86_64 |
安装前,先卸载 mariadb
1 | [root@localhost ~]# rpm -qa | grep mariadb |
安装最新版 MySQL-8.0.11
环境
CentOS 1804 版本最小安装,下载的 CentOS 安装文件:CentOS-7-x86_64-Minimal-1804.iso
安装
下载:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
截至 2019-03-30 最新版为 8.0.15wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
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[root@localhost mysql]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost mysql]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
[root@localhost mysql]# rpm -e postfix-2:2.10.1-6.el7.x86_64 postfix-2:2.10.1-6.el7.x86_64
[root@localhost mysql]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost mysql]# rpm -ivh mysql-community-devel-8.0.11-1.el7.x86_64.rpm
warning: mysql-community-devel-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
pkgconfig(openssl) is needed by mysql-community-devel-8.0.11-1.el7.x86_64
# yum install -y openssl-devel
[root@localhost mysql]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
warning: mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
/usr/bin/perl is needed by mysql-community-server-8.0.11-1.el7.x86_64
libaio.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64
net-tools is needed by mysql-community-server-8.0.11-1.el7.x86_64
perl(Getopt::Long) is needed by mysql-community-server-8.0.11-1.el7.x86_64
perl(strict) is needed by mysql-community-server-8.0.11-1.el7.x86_64
# yum install -y perl net-tools libaio
启动1
2
3[root@centOS7BasicForTest mysql]# systemctl start mysqld
[root@centOS7BasicForTest mysql]# grep 'temporary password' /var/log/mysqld.log
2018-05-23T10:36:55.296728Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Bjs_PbXc)9R6
用临时密码登录1
mysql -uroot -p'Bjs_PbXc)9R6'
然后修改初始密码1
2mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Akd*89@!3a2Kkd2#@';
Query OK, 0 rows affected (0.20 sec)
总结
在安装 MySQL 之前需要安装以下依赖1
yum install -y openssl-devel perl net-tools libaio
授权问题
之前下面的语句不会报错,但是授权没有生效,一直提示不允许连接。1
2ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'aAdDmMiInN1!1!0)3#' WITH GRANT OPTION;
重启一次之后,授权开始报错了:1
2
3mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'aAdDmMiInN1!1!0)3#' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'aAdDmMiInN1!1!0)3#' WITH GRANT OPTION' at line 1
mysql>
换成:1
2
3
4mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'aAdDmMiInN1!1!0)3#';
Query OK, 0 rows affected (0.11 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
Query OK, 0 rows affected (0.04 sec)
客户端连接问题
用 MySQL Workbench 连接,提示如下:1
2
3
4
5
6
7
8
9
10
11[Window Title]
MySQL Workbench
[Main Instruction]
Failed to Connect to MySQL at 192.168.1.91:3306 with user admin
[Content]
Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.
[OK]
查询加密方式1
2
3
4
5
6
7
8
9
10
11mysql> select user, host, plugin, authentication_string from user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user | host | plugin | authentication_string |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| admin | % | caching_sha2_password | $A$005$el:pBr6Zm]lPq+eznuC21bJF/13HhJpj3ZpNQksjeGjWllXMs/nve4gYeW4 |
| mysql.infoschema | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root | localhost | caching_sha2_password | $A$005$&7BX~rD1]HMMtFb_}r-3eq0bH7XqiKfYs3dOS4VM53ET2pMYc4QElxU5ddkSR7 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.01 sec)
在创建用户的时候,用的是:CREATE USER ‘admin‘@’%’ IDENTIFIED BY ‘aAdDmMiInN1!1!0)3#’;
修改成如下的加密方式授权:1
2mysql> ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'aAdDmMiInN1!1!0)3#';
Query OK, 0 rows affected (0.05 sec)
再次连接,可以了!
由 MySQL 8.0.11 降级到 5.7.22
由于有软件还不支持最新版 8.0.11,不得已,还得降级至 5.7 版本。
仅执行 rpm -e mysql 删除 5 个组件,然后重新安装,启动失败
查看已安装的版本
1
2
3
4
5
6[root@AndyCentOS7Basic ~]# rpm -qa | grep mysql
mysql-community-client-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-devel-8.0.11-1.el7.x86_64
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64然后依次执行删除
1
2
3
4
5rpm -e mysql-community-server-8.0.11-1.el7.x86_64
rpm -e mysql-community-client-8.0.11-1.el7.x86_64
rpm -e mysql-community-devel-8.0.11-1.el7.x86_64
rpm -e mysql-community-libs-8.0.11-1.el7.x86_64
rpm -e mysql-community-common-8.0.11-1.el7.x86_64
重新操作,彻底删除
除了删除刚安装好的 5 个组件之外,还将 mysql 的其它文件及目录一并删除1
2
3
4
5
6
7
8
9
10
11[root@centOS7BasicForTest log]# cd /var/lib/
[root@centOS7BasicForTest lib]# rm -rf mysql/
[root@centOS7BasicForTest lib]# whereis mysql
mysql: /usr/share/mysql
[root@centOS7BasicForTest log]# cd /usr/share/
[root@centOS7BasicForTest share]# rm -rf myslq/ mysql-8.0/
[root@centOS7BasicForTest bin]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/usr/share/mysql
[root@centOS7BasicForTest share]# rm -rf /usr/share/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/selinux/targeted/tmp/modules/100/mysql
再次安装之后,启动成功
1 | [root@centOS7BasicForTest mysql]# rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm |
后记
2019-04-03 安装最新版 8.0.15 报错1
2
3
4
5
6rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
warning: mysql-community-server-8.0.15-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.15-1.el7.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.15-1.el7.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.15-1.el7.x86_64
解决:
安装依赖 numactl1
yum install numactl -y
2019-12-26 安装 8.0.18 报错1
2
3
4
5
6
7
8
9
10
11
12[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.18-1.el8.x86_64.rpm
warning: mysql-community-libs-8.0.18-1.el8.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.28)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libcrypto.so.1.1()(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libcrypto.so.1.1(OPENSSL_1_1_0)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libssl.so.1.1()(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libssl.so.1.1(OPENSSL_1_1_0)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libssl.so.1.1(OPENSSL_1_1_1)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libstdc++.so.6(CXXABI_1.3.9)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libstdc++.so.6(GLIBCXX_3.4.20)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
libstdc++.so.6(GLIBCXX_3.4.21)(64bit) is needed by mysql-community-libs-8.0.18-1.el8.x86_64
我在 CentOS7 上安装,下载的是 mysql-8.0.18-1.el8.x86_64.rpm-bundle.tar,这是针对 CentOS8 的版本。
版本不对,注定是会失败的,下载时注意要下载对应 OS 的版本。
换成 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar,再按照上面的步骤安装就非常顺利。