先吐槽一句,真特么坑
把踩坑过程写出来,避免后来人再入坑啦
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上使用这个用户名和密码就可以登录啦