云服务器(一).安装mysql 8.0并远程连接

目录:

  1. CentOS 8 安装MySQL 8.0

  2. Mysql8.0 3306端口无法远程连接

  3. 建议:通过yum安装mysql 更方便
    Linux下yum安装MySQL指定版本:Linux下yum安装MySQL yum安装MySQL指定版本_jerome-CSDN博客

在阿里云上搭建MySql8.0数据库服务,在阿里云上可以成功连接登陆使用,但用自己的电脑远程连接时却无法成功连接

经过资料查找,找出原因如下:

1、首先通过查看MySQL的的用户信息

可以看到host字段均为localhost,意思是只允许本地IP访问

执行 update mysql.user set host = '%' where user = 'root';

设置允许被任意IP地址访问

然后执行 flush privileges;

让改动生效

2、第二个原因是MySql 8.0版本修改了默认的加密规则,用Navicat连接会报错,解决办法为执行如下语句

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';

'root'@'%' 中root为用户名,'%'为user表host字段的值。'root123'为用户密码。

然后就远程连接了

三. Navicat连不上远程阿里云服务器MySQL数据库的几个原因

背景: 今天在天翼云CentOs里部署MySQL,用ssh连上可以进入数据库,但是本地Navicat就是连不上。如图:

过程:到处看帖子,各种尝试,过程如下:
1.有的帖子提醒要先开启mysql服务:systemctl satrt mysqld.service 这个等同于废话,肯定会先开服务再尝试连接的。
2.有的提醒要修改配置文件:vim /etc/my.cnf 将文件中的bind-address =127.0.0.1注释掉。但是我的文件压根就没有这句话,应该是版本不同,所以忽视。
3.有的提醒要授权给网络上其他主机访问数据库,这一点还是有用的:进入MySQL命令之后:
use mysql;
grant all privileges on * . * to ‘root’@’%’ identified by ‘你的密码’;
flush privileges;
这里%表示所以主机,而不只是localhost
4.有的提醒要修改一下密码:基本上没啥用
5.有的提示开放3306端口,我的服务器防火墙都是关闭的,不存在这个问题,但是为了排除,我由打开防火墙,开放3306端口。这一步其实有用,但是我弄错了地方。
6.最终解决方法是:在阿里云控制台里给服务器的安全组添加规则,开放3306端口。 这是把我坑惨了,之前不知道阿里云服务器自带防火墙(一般云服务器都自带防火墙),所以在CentOs里折腾防火墙一点用都没有,这里没开怎么也连不上。坑了我一个多小时,真是无语了。所以如果是用的阿里云服务器前面的方法都没解决的可以试试是不是安全组里没开放3306端口。 如图:


之前没开3306就不行,开了立马就好了!问题解决。
————————————————
版权声明:本文为CSDN博主「阿拉海底洞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ADDLHX/article/details/83620440

猜你喜欢

转载自blog.csdn.net/yiguang_820/article/details/118866105
今日推荐