说说阿里云上centOS7装mysql8遇见的坑!!!使用navicat登录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tingfengzheshuo/article/details/81634077

先吐槽一句,真特么坑

把踩坑过程写出来,避免后来人再入坑啦

1,先到mysql官网上查看当前可用的mysql版本 官网地址

点击download按钮,进入新界面,可以看到最新的版本

可以看到,最新版本的包是 mysql80-community-release-el7-1.noarch.rpm 记下这个包名,要用到

2,使用Xshell连接阿里云,到自己想到的目录下

运行指令下载rpm文件,http地址中的rpm就是你刚才找到的文件名称

wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

然后运行

yum -y install mysql80-community-release-el7-1.noarch.rpm

3, 安装     

运行下面指令

yum -y install mysql-community-server

不出意外的话,你会遇见第一个坑,会有报错,缺少libmysqlclient.so.18 或者libsasl2.so.2()(64bit)之类的错误,很多网上的解决方案其实有很多误导性,这个问题其实是8的包配置文件是为centOS6准备的,而不是7,所以要把配置文件改掉才行

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

按i进入编辑模式,把里面路径里的6全部改成7(把对应8的版本中的路径改掉也可以, 如果你不知道哪个对应8,那就老实的全改掉吧)

然后按esc后再输入:wq!退出vim

然后再运行命令

yum -y install mysql-community-server

这个时候你会发现就不会遇见依赖问题了,安装过程中会遇见问y/n,输入y继续

4, 等待安装完成后,启动mysql

service mysqld start

5, 查看mysql状态

service mysqld status

6, 查看初始密码

grep 'temporary password' /var/log/mysqld.log

7, 使用6中查到的密码登录mysql

mysql -uroot -p

8, 修改密码,不修改密码,mysql会限制操作,密码要超过8位,大小写字母 数字 特殊字符都要有

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';(注意要切换到mysql数据库,使用use mysql)

9, 允许远程访问

update user set host = '%' where user ='root';

10, 到你的阿里云管理后台上在安全组规则中给你的服务器开启3306端口

到这个时候,整个数据库就没什么问题了

但是如果你用navicat连接mysql可能就会遇见问题了

可能会遇见报错如下

Authentication plugin 'caching_sha2_password' cannot be loaded

这是因为mysql80中把默认的密码验证方式改成了caching_sha2_password而你的navicat不支持

你可以运行如下指令试试

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

如果运行这个指令报错

Your password does not satisfy the current policy requirements

的话,那你可能就需要创建一个默认使用老密码验证方式的账号了

首先你要把默认的密码验证方式改为老的方式

运行如下指令

vim /etc/my.cnf

进入编辑状态

找到包含如下字符串的一行

default_authentication_plugin=mysql_native_password

把前面的#删除使这句话不是注释状态,然后保存

调用指令重启mysql

service mysqld restart

重启后在创建的用户就是默认mysql_native_password密码验证方式

由于mysql高版本的sql语句语法升级,所以这里也踩了不少坑

先创建用户

create user '用户名'@'%' identified by '密码';

其中%代表任意地址可登陆

给与用户权限,这里是给了所有权限,先执行use mysql

grant all privileges on * to 用户名;

执行select plugin from user;会看到,有一个验证类型是mysql_native_password的账户已经被添加了,这个账户就是我们创建的账户

现在在navicat上使用这个用户名和密码就可以登录啦

猜你喜欢

转载自blog.csdn.net/tingfengzheshuo/article/details/81634077
今日推荐