mysql升级到8.0版本

作者: 小疯子 分类: 数据库 发布时间: 2020-03-24 13:50

参考链接

https://www.cnblogs.com/daixh/articles/10799901.html
https://www.cnblogs.com/Guhongying/p/10908553.html 这个更更优一些

升级过程

1. 卸载残留的mysql

yum remove mariadb (centos7)
查看命令:
yum list mysql

rpm -qa mysql
卸载命令:
yum remove mysql

rpm -e mysql*
卸载命令不好使就手动将查询出的mysql的目录给rm -rf掉

2. 安装yum repo文件,并更新yum

其实就是用rpm来更新yum包,为下一步安装mysql作准备
step1. 使用wget ,在linux上下载(没有wget的,使用 yum -y install wget安装wget,版本根据centos来centos7就是el7-xxx,目前拥有的版本到https://repo.mysql.com/ 上找)

下载命令:    wget https://repo.mysql.com//mysql80-community-release-el7.noarch.rpm

step2. 使用下载的yum源升级yum包

    命令:rpm -Uvh mysql80-community-release-el7.noarch.rpm 

step3. 查看可以使用的mysql版本

    使用命令:  yum repolist all | grep mysql 

step4. 更新 yum 命令

    yum clean all
    yum makecache

3. 使用yum安装mysql

step1. 准备工作:更改yum仓库中mysql版本

上一步的step3可以看到哪些enabled哪些disabled

我的enabled正好是80-community所以就没有尝试以下更改enabled操作了
如果想修改可以使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态。

禁用:yum-config-manager --disable mysql80-community 
启用:yum-config-manager --enable mysql57-community

或者可以编辑 mysql repo文件,将禁用版本的enable修改成 0,需要启用的修改为 1.

cat /etc/yum.repos.d/mysql-community.repo

step2. 使用yum安装mysql

yum install mysql-community-server

4. mysql命令

step1. 开启mysql服务

systemctl start mysqld.service

step2. 获取初始密码登录mysql

cat /var/log/mysqld.log | grep password

step3. 修改初始密码和其他指令操作

这里有个默认的密码规则要求以保证安全(但是自己用的话喜欢简洁好记的),参考:https://www.cnblogs.com/ivictor/p/5142809.html

validate_password.policy的取值有以下几种(注意,如果出现“Unknown system variable ‘validate_password_policy‘ ”的话,是因为MySQL8由原来的validate_password_policy改成了validate_password.policy)

Policy: Tests Performed
0 or LOW: Length
1 or MEDIUM: Length; numeric, lowercase/uppercase, and special characters
2 or STRONG: Length; numeric, lowercase/uppercase, and special characters; dictionary file
所以修改为只要满足长度的级别

mysql> set global validate_password.policy=0;
我们还是保持默认的1,把密码整的复杂点就行了
修改密码命令:(ps:8.0版本好多命令就变了具体使用看官方文档https://dev.mysql.com/doc/refman/8.0/en/)

use mysql
ALTER USER **‘root‘@‘localhost‘** IDENTIFIED WITH mysql_native_password BY ‘密码‘;

注意那个mysql_native_password加上要保持原有的密码,否则就进行加密,导致navicat工具访问不了。
root用户就使用localhost本服务器可以访问,添加个新用户让别的ip也能访问:

CREATE USER ‘用户名’@’%’ IDENTIFIED WITH mysql_native_password BY ‘BQscm@1234’;

赋予用户权限:

GRANT ALL ON mydb.* TO ‘someuser‘@‘somehost‘;
grant all on *.* to ‘用户名‘@‘%‘;

更改已有用户的访问ip:

use mysql
update user set host=‘%‘ where user=‘root‘;   //mysql 8.0

ps: 因为单引号我的博客不支持有乱码问题,所以使用了‘作为单引号,复制命令时请更改为英文单引号。

1+