Heartsuit's Simple Blog

A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。


Project maintained by heartsuit Hosted on GitHub Pages — Theme by mattgraham

在华为鲲鹏openEuler20.03系统上安装MySQL8

目录[-]

背景

这里实验用的华为云鲲鹏服务器配置如下:

Huawei Kunpeng 920 2.6GHz
4vCPUs | 8GB
openEuler 20.03 64bit with ARM

连接机器后,先查看系统相关信息,注意这里是 aarch64 的,后续软件包也需要是 aarch64 版本的。

# 查看系统内核信息
[root@ecs-kunpeng-0005 ~]# uname -a
Linux ecs-kunpeng-0005 4.19.90-2003.4.0.0036.oe1.aarch64 #1 SMP Mon Mar 23 19:06:43 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

# 查看系统版本信息
[root@ecs-kunpeng-0005 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="20.03 (LTS)"
ID="openEuler"
VERSION_ID="20.03"
PRETTY_NAME="openEuler 20.03 (LTS)"
ANSI_COLOR="0;31"

下载MySQL8

wget http://repo.mysql.com/yum/mysql-8.0-community/el/8/aarch64/mysql-community-common-8.0.19-1.el8.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/8/aarch64/mysql-community-libs-8.0.19-1.el8.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/8/aarch64/mysql-community-client-8.0.19-1.el8.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/8/aarch64/mysql-community-server-8.0.19-1.el8.aarch64.rpm

安装MySQL8

yum localinstall mysql-community-common-8.0.19-1.el8.aarch64.rpm
yum localinstall mysql-community-libs-8.0.19-1.el8.aarch64.rpm
yum localinstall mysql-community-client-8.0.19-1.el8.aarch64.rpm
yum localinstall mysql-community-server-8.0.19-1.el8.aarch64.rpm
# 查看MySQL状态
[root@ecs-kunpeng-0001 mysql8]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
[root@ecs-kunpeng-0001 mysql8]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
[root@ecs-kunpeng-0001 mysql8]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-05-29 17:49:49 CST; 8s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 1121485 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 1122635 (mysqld)
   Status: "Server is operational"
    Tasks: 39
   Memory: 550.8M
   CGroup: /system.slice/mysqld.service
           └─1122635 /usr/sbin/mysqld

5月 29 17:49:42 ecs-kunpeng-0001 systemd[1]: Starting MySQL Server...
5月 29 17:49:49 ecs-kunpeng-0001 systemd[1]: Started MySQL Server.

修改默认密码

# 获取初始化生成的数据库密码
[root@ecs-kunpeng-0001 mysql8]# cat /var/log/mysqld.log | grep password
2021-05-29T09:49:46.015915Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iwjjwe,qd2.Y

i# 使用刚安装的mysql客户端,并用原始密码连接数据库,登录之后必须先修改密码。。
[root@ecs-kunpeng-0001 mysql8]# mysql -uroot -p

# 选择mysql数据库,修改默认密码(密码格式有要求,具备一定强度,包含大写字母,数字以及特殊字符等)
mysql> select  User,authentication_string,Host from user;
ERROR 1046 (3D000): No database selected
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER root@localhost IDENTIFIED BY 'Kunpeng0001.';
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> select  User,authentication_string,Host from user;
+------------------+------------------------------------------------------------------------+-----------+
| User             | authentication_string                                                  | Host      |
+------------------+------------------------------------------------------------------------+-----------+
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
{Sl3h/p7doZnmVf67O/qH3bYjNe2QqgxhAubVkHtOhc8 | localhost |
+------------------+------------------------------------------------------------------------+-----------+
4 rows in set (0.00 sec)

开启远程访问

# 创建一个可供其他主机远程访问的用户名与密码
mysql> CREATE user root@'%' IDENTIFIED by 'Kunpeng0001.';
Query OK, 0 rows affected (0.01 sec)

# 授权
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

# 刷新配置
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

# 再次查看已有用户,多了host为%的root用户
mysql> SELECT user, authentication_string, host from user;
+------------------+------------------------------------------------------------------------+-----------+
| user             | authentication_string                                                  | host      |
+------------------+------------------------------------------------------------------------+-----------+
| root             | $A$005$mvUu,Q/I2   pL5Lx5k3MvTSYrsMRN0rBYIgcSHgPTvUHE12G1W6EJNYp0 | %         |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | localhost |
{Sl3h/p7doZnmVf67O/qH3bYjNe2QqgxhAubVkHtOhc8 | localhost |
+------------------+------------------------------------------------------------------------+-----------+
5 rows in set (0.01 sec)

# 退出
mysql> exit
Bye

说明

其实一开始安装的是 el7 下的软件,然后在安装 mysql-community-libs-8.0.19-1.el7.aarch64.rpm 时报错了。

wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/mysql-community-common-8.0.19-1.el7.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/mysql-community-libs-8.0.19-1.el7.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/mysql-community-client-8.0.19-1.el7.aarch64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/aarch64/mysql-community-server-8.0.19-1.el7.aarch64.rpm
yum localinstall mysql-community-common-8.0.19-1.el7.aarch64.rpm
yum localinstall mysql-community-libs-8.0.19-1.el7.aarch64.rpm
Error: 
Problem: conflicting requests

  + nothing provides libcrypto.so.10()(64bit) needed by mysql-community-libs-8.0.19-1.el7.aarch64
  + nothing provides libssl.so.10()(64bit) needed by mysql-community-libs-8.0.19-1.el7.aarch64
  + nothing provides libcrypto.so.10(libcrypto.so.10)(64bit) needed by mysql-community-libs-8.0.19-1.el7.aarch64
  + nothing provides libssl.so.10(libssl.so.10)(64bit) needed by mysql-community-libs-8.0.19-1.el7.aarch64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

试了网上一些方法,没效果,就想着换个 CentOS8 版本的 MySQL8 安装吧,然后就可以了。

在CentOS7上安装MySQL8

上述的安装方式同样适用于在CentOS7上安装MySQL8,不过需要下载对应架构下的安装包,以X64为例。

wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-common-8.0.19-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-libs-8.0.19-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-client-8.0.19-1.el7.x86_64.rpm
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-server-8.0.19-1.el7.x86_64.rpm

yum localinstall mysql-community-common-8.0.19-1.el7.x86_64.rpm
yum localinstall mysql-community-libs-8.0.19-1.el7.x86_64.rpm
yum localinstall mysql-community-client-8.0.19-1.el7.x86_64.rpm
yum localinstall mysql-community-server-8.0.19-1.el7.x86_64.rpm

在执行 yum localinstall mysql-community-libs-8.0.19-1.el7.x86_64.rpm 时可能遇到的问题:

yum localinstall mysql-community-libs-8.0.19-1.el7.x86_64.rpm
已加载插件:fastestmirror
正在检查 mysql-community-libs-8.0.19-1.el7.x86_64.rpm: mysql-community-libs-8.0.19-1.el7.x86_64
mysql-community-libs-8.0.19-1.el7.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.65-1.el7 将被 取代
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
--> 正在处理依赖关系 libmysqlclient.so.18(libmysqlclient_18)(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
---> 软件包 mysql-community-libs.x86_64.0.8.0.19-1.el7 将被 舍弃
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.65-1.el7 将被 升级
---> 软件包 mariadb-libs.x86_64.1.5.5.68-1.el7 将被 更新
Removing mariadb-libs.x86_64 1:5.5.68-1.el7 - u due to obsoletes from mysql-community-libs.x86_64 0:8.0.19-1.el7 - u
--> 正在使用新的信息重新解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.68-1.el7 将被 更新
--> 正在处理依赖关系 libmysqlclient.so.18(libmysqlclient_18)(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
--> 解决依赖关系完成
错误:软件包:2:postfix-2.10.1-9.el7.x86_64 (@anaconda)
          需要:libmysqlclient.so.18()(64bit)
          正在删除: 1:mariadb-libs-5.5.65-1.el7.x86_64 (@anaconda)
              libmysqlclient.so.18()(64bit)
          取代,由: mysql-community-libs-8.0.19-1.el7.x86_64 (/mysql-community-libs-8.0.19-1.el7.x86_64)
             ~libmysqlclient.so.21()(64bit)
          更新,由: 1:mariadb-libs-5.5.68-1.el7.x86_64 (base)
              libmysqlclient.so.18()(64bit)
错误:软件包:2:postfix-2.10.1-9.el7.x86_64 (@anaconda)
          需要:libmysqlclient.so.18(libmysqlclient_18)(64bit)
          正在删除: 1:mariadb-libs-5.5.65-1.el7.x86_64 (@anaconda)
              libmysqlclient.so.18(libmysqlclient_18)(64bit)
          取代,由: mysql-community-libs-8.0.19-1.el7.x86_64 (/mysql-community-libs-8.0.19-1.el7.x86_64)
              未找到
          更新,由: 1:mariadb-libs-5.5.68-1.el7.x86_64 (base)
              libmysqlclient.so.18(libmysqlclient_18)(64bit)
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

解决方法:

# 检查系统自带的mariadb-libs包
[root@hadoop2 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64

# 卸载掉系统自带的mariadb-libs包
[root@hadoop2 ~]# yum remove mariadb-libs

然后重新执行前面的安装命令即可。

Reference


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!


「说点什么吧😊~~😊」: