CentOS系统版本是:CentOS Linux release 7.8.2003 (Core),且刚安装好,非常纯净
MySQL8版本是:Server version: 8.0.23 MySQL Community Server - GPL
为了解决MySQL统一版本问题,也为了解决没外网的时候安装MySQL的问题,我要采用离线RPM包安装的方式安装MySQL。
(网址:https://dev.mysql.com/downloads/mysql/)
注意:
1、选对系统版本,CentOS要选择Red Hat的版本
2、选对CPU类型,我这边是AMD的CPU,因此要选择x86_64版本的包
3、必须下载捆绑包(Bundle)版本,不然只下载MySQL Server会报各种依赖问题,导致根本无法正常安装
解压这个tar包,会发现有一堆的rpm包,什么说明都没有!!Oracle做事太不负责任了!!MariaDB的捆绑包内有个安装脚本,直接执行脚本就全部安装好了,这点非常好
//移除MariaDB相关的东西
yum remove -y mariadb-libs
//安装必要依赖
yum install -y perl
yum install -y net-tools
按顺序安装以下的rpm包,顺序出错会无法安装
rpm -ivh mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm
安装完成后,如果直接输入MySQL会报这个错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
别慌,这不是什么问题,因为MySQL压根没启动呢!我之前还以为是我安装出问题导致的!
systemctl start mysqld.service
systemctl enable mysqld.service
MySQL8和MySQL5.*不一样,装完后MySQL就自动生成了一个非常非常复杂的密码,导致其根本无法连接,其密码在/var/log/mysqld.log这个文件中
cat /var/log/mysqld.log
找到一行是[Note]开头
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ksw!-Tg6=LvZ
我的这个MySQL初始密码就是ksw!-Tg6=LvZ这个了,大家的密码肯定和我的不一样
mysql -uroot -p
然后输入你的日志里的数据库密码
建议在FinalShell窗口中输入mysql -uroot -p后,在其底下的命令输入框中将密码复制粘贴进去,然后回车,这样效果最棒(因为看得见自己输了什么)
然后是让root用户能够远程访问,不过在做这件事之前必须要修改密码,不然什么事都做不了!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${新密码}';
注意:这个密码必须够复杂,英文大小写+数字+符号,否则无法通过MySQL密码强度校验!!
use mysql;
select host, user from user;
update user set host='%' where host='localhost';
flush privileges;
防火墙打开3306端口
firewall-cmd --permanent --add-port=3306/tcp
重启防火墙
firewall-cmd --reload
我这里使用了DBeaver社区版
登录成功了!