CentOS 7 安装mysql 8.0 图文教程

有的小伙伴不习惯使用docker,又需要再服务器安装mysql,这边简单的分享一下CentOS 7 安装mysql 8.0的操作步骤,还有一些问题处理。

关联文章

一、Docker部署MySql

二、Springboot整合mysql和mybatis实例代码 附github

安装mysql 8.0

1、检查在CentOS中默认安装有MariaDB

rpm -pa | grep mariadb

2、如果存在,需要先删除mariadb

yum -y remove mariadb-libs.XXX.XXXXX

3、查看旧版本mysql

rpm -qa | grep mysql

4、如果存在旧版本的mysql,进行删除

yum -y remove mysql-xxx-xxx

5、进入自己的文件目录,下载mysql 8.0的repo源,如下图

wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm 

6、执行安装命令

rpm -ivh mysql80-community-release-el7-3.noarch.rpm 

yum install mysql-community-server

7、启动mysql服务

service mysqld restart

8、设置开机自启动

systemctl enable mysqld.service

9、安装完成后,密码为随机密码,这时候我们需要重置密码

grep "password" /var/log/mysqld.log 

10、进入mysql控制台,执行后会要求输入重置后的密码,重置密码比较复杂要仔细输入

mysql -u root -p

11、修改密码复杂度和长度,不同版本号的mysql命令也略有不同,修改后设置新密码

mysql 5.6和 mysql 8 有所区别
修改密码复杂度
mysql 5.6:mysql> set global validate_password_policy=0;
mysql 8:  mysql> set global validate_password.policy=0;

密码最小长度:
mysql 5.6:mysql> set global validate_password_length=6;
mysql 8:  mysql> set global validate_password.length=6;

修改密码
mysql> alter user 'root'@'localhost' identified by '123456';
刷新
mysql> flush privileges;

12、退出控制台界面

mysql> quit

到这里,mysql就安装完毕了,下面我在说下我再安装后遇到的问题

问题解决

1、因为之前,mysql的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。我们这里需要再次修改一次root密码。否则后面连接的时候会出现authentication plugin ‘caching_sha2_passord’错误。

再一次修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
刷新
mysql> flush privileges;

2、连接的时候,如果我们root设置的是localhost会导致外部IP来连接的时候被拒绝,我们使用通配符 % 来修改 root 用户对应的 host 字段,使具有访问所有 ip 地址的权限

mysql> use mysql;

设置root的ip访问权限
mysql> update user set host = '%' where user = 'root';

刷新
mysql> flush privileges;

3、数据库时区问题,有的同学安装后,发现时间戳等自动生成的时间小于当前时间8小时,这里我们可以进入mysql内部,执行sql指令查看当前的时间和time_zone配置

mysql> select now();
mysql> show variables like '%time_zone%'; 


解决方法一:通过mysql命令设置time_zone

优点:不需要重启MySQL服务,缺点:MySQL服务重启,设置就会消失

mysql> set time_zone = '+8:00';
mysql> set global time_zone = '+8:00';

解决方法二:通过cnf配置,我在上文中的cnf配置已经设置了时区,配置完后记得要重启,[mysqld]注意下原文件,一定不能没有

[mysqld]
#设置默认时区
default-time_zone='+8:00'

设置后我们再查看time_zone,问题就解决了

发布了22 篇原创文章 · 获赞 4 · 访问量 3018

猜你喜欢

转载自blog.csdn.net/weixin_43841693/article/details/103873112
今日推荐