Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)

目录

  1. 官网下载安装包
  2. 安装包上传至服务器
  3. 查看文件
  4. 解压 tar 包
  5. 查看解压后结果
  6. 依次安装
  7. 检查是否安装完成
  8. 对mysql 初始化和相关配置
  9. 查看初始密码
  10. 使用初始密码登录
  11. 修改密码
  12. 远程访问权限开放
  13. 修改密码规则
  14. 关闭防火墙

1. 官网下载 MySQL8 安装包

官网下载:MySQL :: Download MySQL Community Server

或 : mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar-Linux文档类资源-CSDN下载

本教程安装版本:mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar

2. 安装包上传至服务器

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第1张图片

 

3. 查看上传文件

进入上传保存的目录 /opt/soft/mysql

[root@zhang services]# cd /opt/soft/mysql/
[root@zhang mysql]# ls
mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
[root@zhang mysql]# 

4. 解压 mysql-*.tar

rpm -qa | grep mysql 可以查看是否已安装

使用rpm -e --nodeps 文件包名称 可以卸载

[root@localhost mysql]# tar -ivh mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar 
tar: You must specify one of the `-Acdtrux' or `--test-label'  options
Try `tar --help' or `tar --usage' for more information.
[root@localhost mysql]# tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar 
mysql-community-client-8.0.26-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
mysql-community-common-8.0.26-1.el7.x86_64.rpm
mysql-community-devel-8.0.26-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm
mysql-community-libs-8.0.26-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
mysql-community-server-8.0.26-1.el7.x86_64.rpm

5 .查看解压后结果

[root@localhost mysql]# ll
total 1578672
-rw-r--r--. 1 root root  808273920 Aug  4 14:58 mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--. 1 7155 31415  47836256 Jul  2 02:48 mysql-community-client-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415   4694644 Jul  2 02:48 mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415    634632 Jul  2 02:48 mysql-community-common-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415   6806272 Jul  2 02:49 mysql-community-devel-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415  23638156 Jul  2 02:49 mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415   4243808 Jul  2 02:49 mysql-community-libs-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415   1264168 Jul  2 02:49 mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 454689776 Jul  2 02:50 mysql-community-server-8.0.26-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 264457624 Jul  2 02:53 mysql-community-test-8.0.26-1.el7.x86_64.rpm

6. 依次安装

安装注意:

a) 注意安装的文件名,要和上面自己解压出来的文件名保持一致。不要直接复制这里的版本。

b) 注意先选择强制安装:rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force

c) 按下面的顺序依次安装

[root@localhost mysql]# rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm 
warning: mysql-community-common-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-common-8.0.26-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm  --nodeps --force
warning: mysql-community-libs-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-libs-8.0.26-1.el7################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm  --nodeps --force
warning: mysql-community-client-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-client-8.0.26-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm  --nodeps --force
warning: mysql-community-server-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-server-8.0.26-1.e################################# [100%]

7. 查看是否安装完成

[root@localhost mysql]# rpm -qa | grep mysql
mysql-community-libs-8.0.26-1.el7.x86_64
mysql-community-client-8.0.26-1.el7.x86_64
mysql-community-server-8.0.26-1.el7.x86_64
mysql-community-common-8.0.26-1.el7.x86_64

8. 对 mysql 进行初始化和相关配置

mysqld --initialize;  # 默认执行后,Cento8 和 9 会抛出异常,下面解决
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl  enable mysqld;

异常信息:

mysqld: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

抛出异常解决办法

  1. 下载:compat-openssl10-1.0.2o-3.el8.x86_64.rpm
  2. 强制安装
  3. 完成后,继续上一步的初始化即可

注意:在 CentOS8 上安装时,还需要安装compat-openssl10-1.0.2o-3.el8.x86_64.rpm

特别注意:在 Linux 上的mysql8 默认表名是区分大小写的。如果需要修改为不区分,则需要修改配置。

且必须要在初始化之前修改,否则后期修改无效,服务无法启动

vim /etc/my.cnf 编辑文件,最后一行添加:lower_case_table_names=1

9. 查看初始密码

\通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码**

[root@localhost mysql]# cat /var/log/mysqld.log | grep password
2021-08-04T07:10:39.434745Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: nYNlC2reI=42  

注意:上面的 root@localhost: nYNlC2reI=42 中 ”nYNlC2reI=42 “ 为初始密码

10. 使用初始密码登录

注意:在centos9 上 使用 mysql -uroot -psss 登录时,抛出异常

error while loading shared libraries: libncurses.so.5: cannot open shared object file

解决思路和办法:

使用find 本地搜索不同版本的 libnucurses.so文件

[root@localhost lib64]# find / -name 'libncurses*'
find: ‘/run/user/1000/gvfs’: 权限不够
/usr/lib64/libncurses.so.6
/usr/lib64/libncurses.so.6.2

找到后,进入到上面的 /usr/lib64 目录下,建立虚链

[root@localhost lib64]# ln -sf libncurses.so.6.2 libncurses.so.5
### 上面建立链接,第一个是当前目录存在的,第二个是默认找的需要的

完成后,再次登录mysql ,抛出新的异常信息:

[root@localhost lib64]# mysql -uroot -pss
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
# 找不到 libtinfo.so.5

解决办法:

使用上面相同的思路,find / -name 'libtinkinfo*'

但是其实都在 lib64 目录下,

直接再次建立虚链

[root@localhost lib64]# ln -sf libtinfo.so.6.2 libtinfo.so.5

再次登录,成功!

如果密码中防止有特殊字符,可以加单引号

[root@localhost mysql]# mysql -uroot -p'nYNlC2reI=42'  ### centos9 抛异常
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

显示上面结果,表示登录成功,就可以操作 mysql 了。

注意:如果初始密码存在一些特殊字符时,可能导致登录失败,可以使用下面登录方式。输入密码的方式。

[root@localhost zones]# mysql -uroot -p
Enter password: 

11. 修改密码

为了后面登录方便,还需要修改为自己容易记住的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
    -> ;
Query OK, 0 rows affected (0.01 sec)

修改后,可以直接使用新密码登录尝试。

12. 远程访问权限

注意:下面的执行是在mysql 登录状态下执行的命令

create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

实际操作如下:

mysql> create user 'root'@'%' identified with mysql_native_password by 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

注意最后刷新权限。

13. 修改密码规则

通过 ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; 命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。

修改密码永不过期

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

14. 关闭防火墙

在没关防火墙前,使用客户端访问测试如下:

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第2张图片 

上面爆出 2002 错误。原因:找不到服务(一般IP或端口错误导致的)。我们这里是因为防火墙拦截,没有开放3306端口导致的。

接下来,尝试关闭防火墙,然后再测试:

[root@localhost mysql]# systemctl stop firewalld

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第3张图片  

提示了 1130 错误, 原因是,默认mysql 不支持远程的访问的。需要修改权限,运行其他站点远程访问。

create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

关闭防火墙,测试下mysql 是否支持了远程访问

[root@localhost mysql]# systemctl stop firewalld

15. 使用客户端访问

比如SQLyong客户端:

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第4张图片 

注意上面的 Host Address 填入自己 CentOS的 IP 地址。如果访问通过,表示 mysql 安装配置完成!

16. 开启防火墙

再次关闭防火墙,重复上面的客户端访问测试,

[root@localhost mysql]# systemctl start firewalld

会出现下面错误,原因就是无法访问3306端口导致

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第5张图片

 

17. 开放端口

[root@localhost mysql]# firewall-cmd --zone=public --permanent --add-port=3306/tcp
success
[root@localhost mysql]# systemctl restart firewalld # 重启防火墙,让开放端口生效
#### 也可以使用下面的命令,重新加载端口修改 # systemctl firewall-cmd --reload

添加成功后,可以在 /etc/firewalld/zones/public.xml 中查看



  Public
  For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.
  
  
  

重新访问,连接成功!

Centos stream9 安装 MySQL8 详细步骤(踩坑笔记)_第6张图片

 到此为止,所有安装、配置、权限、端口、客户端访问等问题全部搞定!

你可能感兴趣的:(linux,centos,linux,mysql)