MySql
参考: Centos7离线安装mysql8 - 大墨垂杨 - 博客园 (cnblogs.com)
安装
1.下载离线包
下载地址:https://dev.mysql.com/downloads/mysql/
查看
[root@localhost ~]# arch
x86_64
选择如下:
【Red Hat Enterprise Linux 7 / Oracle Linux】
【Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)】
cd /app/soft
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
2.上传tar包至服务器

3.删除原有的mariadb
先查看一下是否已经安装了,命令:rpm -qa|grep mariadb

删除mariadb,命令:rpm -e --nodeps mariadb-libs
4.解压mysql离线安装包
[root@localhost ~]# cd /app/soft
[root@localhost soft]# tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-8.0.28-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
mysql-community-common-8.0.28-1.el7.x86_64.rpm
mysql-community-devel-8.0.28-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.28-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
mysql-community-libs-8.0.28-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.28-1.el7.x86_64.rpm
mysql-community-server-8.0.28-1.el7.x86_64.rpm
mysql-community-test-8.0.28-1.el7.x86_64.rpm
5.安装rpm包
安装mysql-community-test缺少依赖
[root@localhost soft]# rpm -ivh mysql-community-test-8.0.28-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
perl(Data::Dumper) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
perl(JSON) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
perl(Test::More) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
[root@localhost soft]# yum list |grep "perl-Data-Dumper"
perl-Data-Dumper.x86_64 2.145-3.el7 @c7-media
[root@localhost soft]# yum list |grep "perl-JSON"
perl-JSON.noarch 2.59-2.el7 c7-media
perl-JSON-PP.noarch 2.27202-2.el7 c7-media
perl-JSON-tests.noarch 2.59-2.el
[root@localhost soft]# yum -y install perl-Data-Dumper.x86_64 perl-JSON.noarch perl-JSON-PP.noarch perl-JSON-tests.noarch
[root@localhost soft]# rpm -ivh mysql-community-test-8.0.28-1.el7.x86_64.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
perl(Test::More) 被 mysql-community-test-8.0.28-1.el7.x86_64 需要
#搜了下 perl(Test::More),需下载 perl-Test-Simple.noarch
[root@localhost soft]# yum -y install perl-Test-Simple.noarch
[root@localhost soft]# rpm -ivh *.rpm
警告:mysql-community-client-8.0.28-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
准备中... ################################# [100%]
软件包 mysql-community-common-8.0.28-1.el7.x86_64 已经安装
软件包 mysql-community-client-plugins-8.0.28-1.el7.x86_64 已经安装
软件包 mysql-community-libs-8.0.28-1.el7.x86_64 已经安装
软件包 mysql-community-client-8.0.28-1.el7.x86_64 已经安装
软件包 mysql-community-icu-data-files-8.0.28-1.el7.x86_64 已经安装
软件包 mysql-community-server-8.0.28-1.el7.x86_64 已经安装
服务启停
1.查看服务状态
[root@localhost soft]# systemctl status mysqld
● 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
2.停止服务
[root@localhost soft]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
3.初始化数据库
[root@localhost soft]# mysqld --initialize --console
4.目录授权
[root@localhost soft]# chown -R mysql:mysql /var/lib/mysql/
5.启动服务
[root@localhost soft]# systemctl start mysqld
[root@localhost soft]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2022-01-25 12:17:52 CST; 8s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 22038 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 22066 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─22066 /usr/sbin/mysqld
1月 25 12:17:51 localhost.localdomain systemd[1]: Starting MySQL Server...
1月 25 12:17:52 localhost.localdomain systemd[1]: Started MySQL Server.
数据库操作
1.查看临时密码
[root@localhost soft]# cat /var/log/mysqld.log
2022-01-25T04:16:57.661179Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.28) initializing of server in progress as process 21021
2022-01-25T04:16:57.675490Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-01-25T04:16:58.019688Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
#####密码在这里 qYhqICwXy4;Y
2022-01-25T04:16:58.970162Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qYhqICwXy4;Y
#####
2022-01-25T04:17:52.254629Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.28) starting as process 22066
2022-01-25T04:17:52.264950Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-01-25T04:17:52.465813Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-01-25T04:17:52.723809Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-01-25T04:17:52.723949Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-01-25T04:17:52.745958Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.28' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server - GPL.
2022-01-25T04:17:52.746018Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2.用临时密码登录数据库
输入密码时,不会显示,输入完毕直接回车
[root@localhost soft]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28
Copyright (c) 2000, 2022, 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>
3.修改mysql密码
mysql> alter USER 'root'@'localhost' IDENTIFIED BY 'njdys123';
Query OK, 0 rows affected (0.02 sec)
4.授权远传连接
mysql> show databases;
mysql> use mysql;
mysql> select host, user, authentication_string, plugin from user;

mysql> update user set host = "%" where user='root';
mysql> select host, user, authentication_string, plugin from user;
mysql> flush privileges;

尝试使用navacat远程连接,会出现如下错误
2059 - Authenticationplugin‘caching_sha2_password’ cannot be loaded:XXXXX

解决办法:
mysql> use mysql;
mysql> alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'njdys123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
备注:
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。
解决问题方法有两种:
方法1.升级navicat驱动;
方法2.把mysql用户登录密码加密规则还原成mysql_native_password.。
此处我使用的是方法2。

其他
防护墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload