• 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. 安装包上传至服务器

     

    3. 查看上传文件

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

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

    4. 解压 mysql-*.tar

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

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

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

    5 .查看解压后结果

    1. [root@localhost mysql]# ll
    2. total 1578672
    3. -rw-r--r--. 1 root root 808273920 Aug 4 14:58 mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
    4. -rw-r--r--. 1 7155 31415 47836256 Jul 2 02:48 mysql-community-client-8.0.26-1.el7.x86_64.rpm
    5. -rw-r--r--. 1 7155 31415 4694644 Jul 2 02:48 mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
    6. -rw-r--r--. 1 7155 31415 634632 Jul 2 02:48 mysql-community-common-8.0.26-1.el7.x86_64.rpm
    7. -rw-r--r--. 1 7155 31415 6806272 Jul 2 02:49 mysql-community-devel-8.0.26-1.el7.x86_64.rpm
    8. -rw-r--r--. 1 7155 31415 23638156 Jul 2 02:49 mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm
    9. -rw-r--r--. 1 7155 31415 4243808 Jul 2 02:49 mysql-community-libs-8.0.26-1.el7.x86_64.rpm
    10. -rw-r--r--. 1 7155 31415 1264168 Jul 2 02:49 mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
    11. -rw-r--r--. 1 7155 31415 454689776 Jul 2 02:50 mysql-community-server-8.0.26-1.el7.x86_64.rpm
    12. -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) 按下面的顺序依次安装

    1. [root@localhost mysql]# rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
    2. warning: mysql-community-common-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
    3. Preparing... ################################# [100%]
    4. Updating / installing...
    5. 1:mysql-community-common-8.0.26-1.e################################# [100%]
    6. [root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force
    7. warning: mysql-community-libs-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
    8. Preparing... ################################# [100%]
    9. Updating / installing...
    10. 1:mysql-community-libs-8.0.26-1.el7################################# [100%]
    11. [root@localhost mysql]# rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force
    12. warning: mysql-community-client-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
    13. Preparing... ################################# [100%]
    14. Updating / installing...
    15. 1:mysql-community-client-8.0.26-1.e################################# [100%]
    16. [root@localhost mysql]# rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force
    17. warning: mysql-community-server-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
    18. Preparing... ################################# [100%]
    19. Updating / installing...
    20. 1:mysql-community-server-8.0.26-1.e################################# [100%]

    7. 查看是否安装完成

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

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

    1. mysqld --initialize; # 默认执行后,Cento89 会抛出异常,下面解决
    2. chown mysql:mysql /var/lib/mysql -R;
    3. systemctl start mysqld.service;
    4. 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 命令查看数据库的密码**

    1. [root@localhost mysql]# cat /var/log/mysqld.log | grep password
    2. 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文件

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

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

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

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

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

    解决办法:

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

    但是其实都在 lib64 目录下,

    直接再次建立虚链

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

    再次登录,成功!

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

    1. [root@localhost mysql]# mysql -uroot -p'nYNlC2reI=42' ### centos9 抛异常
    2. mysql: [Warning] Using a password on the command line interface can be insecure.
    3. Welcome to the MySQL monitor. Commands end with ; or \g.
    4. Your MySQL connection id is 8
    5. Server version: 8.0.26
    6. Copyright (c) 2000, 2021, Oracle and/or its affiliates.
    7. Oracle is a registered trademark of Oracle Corporation and/or its
    8. affiliates. Other names may be trademarks of their respective
    9. owners.
    10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    11. mysql>

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

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

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

    11. 修改密码

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

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

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

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

    12. 远程访问权限

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

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

    实际操作如下:

    1. mysql> create user 'root'@'%' identified with mysql_native_password by 'root';
    2. Query OK, 0 rows affected (0.01 sec)
    3. mysql> grant all privileges on *.* to 'root'@'%' with grant option;
    4. Query OK, 0 rows affected (0.00 sec)
    5. mysql> flush privileges;
    6. Query OK, 0 rows affected (0.01 sec)

    注意最后刷新权限。

    13. 修改密码规则

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

    修改密码永不过期

    1. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
    2. Query OK, 0 rows affected (0.00 sec)
    3. mysql> flush privileges;
    4. Query OK, 0 rows affected (0.00 sec)

     

    14. 关闭防火墙

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

     

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

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

    [root@localhost mysql]# systemctl stop firewalld

      

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

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

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

    [root@localhost mysql]# systemctl stop firewalld

    15. 使用客户端访问

    比如SQLyong客户端:

     

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

    16. 开启防火墙

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

    [root@localhost mysql]# systemctl start firewalld

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

     

    17. 开放端口

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

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

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <zone>
    3. <short>Public</short>
    4. <description>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.</description>
    5. <service name="ssh"/>
    6. <service name="dhcpv6-client"/>
    7. <port protocol="tcp" port="3306"/>
    8. </zone>

    重新访问,连接成功!

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

  • 相关阅读:
    # [AI]多模态聚类能力助力AI完成自主意识测试
    2015年亚太杯APMCM数学建模大赛B题城市公共交通服务水平动态评价模型求解全过程文档及程序
    CH573/CH571低功耗集成BLE 32位微控制器MCU
    洛谷题单 Part 2.5 贪心
    VSCode配置C和C++语言
    【排序】桶排序(c++)
    除烟超猛的油烟机,还有智慧内核加持,云米AI烟灶套装体验
    去腾讯面试,直接让人出门左拐 :幂等性都不知道!
    Linux之shell脚本初始
    4D毫米波雷达加速向上,搭载福瑞泰克解决方案量产车型预计年底上市
  • 原文地址:https://blog.csdn.net/zp8126/article/details/126766245