1.彻底删除已安装mysql
1) yum remove mysql mysql-server mysql-libs mysql-server;
删除云服务
2) find / -name mysql
查找服务器上有什么跟mysql相关的,删除它
rm -rf /var/lib/mysql
3) rpm -qa|grep mysql
(查询出来的东东yum remove掉)
4) rm /etc/my.cnf
2.重新安装mysql
1) 下载mysql源安装包(连接应该是对的,我自己是下载后上传的)
wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
这里也可以下载后上传到服务器,因为我是centerOS7,所以选的是Linux 7那个,最开始选的8那个,一直报错找不到依赖库,血的教训
在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
传输本地文件到远程 ~表示root目录,xx的是远程的ip地址
scp mysql80-community-release-el7-3.noarch.rpm root@xx.xx.xxx.xxx:~
2) 安装mysql源
yum localinstall mysql80-community-release-el7-3.noarch.rpm
3) 检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
4) 安装MySQL
yum install mysql-community-server
设置远程连接在启动前修改/etc/my.cnf,将下面这句前的#去掉(没有这句话就加上)
default-authentication-plugin=mysql_native_password
设置这个是因为我这里用的navicat连接,而navicat的加密方式只支持以前的"mysql_native_password"
启动
systemctl start mysqld
查看启动状态
systemctl status mysqld
设置root账号和远程连接
1.修改root密码
1)查看系统随机生成的密码
grep 'temporary password' /var/log/mysqld.log
2)用随机密码登录
mysql -u root -p
3)用命令修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';#注意位数和种类至少大+写+小写+符号+数字
2.远程连接
1)选择 mysql 数据库(sql命令都是以 ';' 结束,不要写丢了)
use mysql;
2)在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;
可以看到root用户的host默认为localhost,只允许本地访问,不允许远程连接..
(root账户的plugin应该是mysql_native_password,设置my.cnf完成的,这里的图是别人的)
为了安全(网上都是这么说的),新创建一个用户用于远程连接
3)新建用户
#CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
# 这里的主机为localhost表示只能本机登录,%表示所有的机器都可以,也可以设置特定的ip才能登录
CREATE USER 'origin'@'%' IDENTIFIED BY 'Origin1111?'; #注意密码位数和种类至少大+写+小写+符号+数字
4)mysql8.0默认的加密方式是“caching_sha2_password”,而navicat只支持以前的"mysql_native_password"
前面没有设置my.cnf文件的,可以这样修改加密方式
ALTER USER 'origin'@'%' IDENTIFIED WITH mysql_native_password BY 'Origin1111?';
修改后可以执行select host,user,plugin from user;语句,查看新增用户的plugin是否是"mysql_native_password"
5)设置该账户可以远程登陆
GRANT ALL PRIVILEGES ON *.* TO 'origin'@'%';
6)刷新权限
flush privileges;
7)用navicat连接看是否可以远程登陆,默认端口为3306,如果不能,则查看防火墙是否开启了该端口。
查看防火墙开放端口:iptables-save
我这里已经开了.如果没开,则执行以下命令:
添加端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重载防火墙:firewall-cmd --reload
8)现在就可以用navicat连接了(其他的连接工具应该就那个加密方式不一样,我猜,哈哈)
参考链接
https://blog.csdn.net/zhuangweizhan/article/details/104289424
https://www.cnblogs.com/lylongs/p/11048714.html
https://www.linuxidc.com/Linux/2016-09/135288.htm