Mysql远程连接

搞了一天的mysql远程连接, 也算是踩过坑了,这里记录一下

如果你的mysql无法被远程连接,那么请依次检查如下条件:

1. 服务器的防火墙(安全组)放行端口

如果mysql服务在云服务器上运行, 那么请检查云服务器是否将端口3306开放。 如果没有开放请设置为通行状态。。
这里不同的云服务器厂商的截图不同,我这里给出华为云的安全组设置

华为云:
在这里插入图片描述

2. 启动mysql的远程连接服务

在命令台中使用mysql -uroot 进入你的mysql数据库。

mysql -uroot 

选择mysql库

use mysql

检查user表中的host和User信息。

select host,User from user;

如果你的root字段对应的host是localhost,那么代表root账户只能本地登录。

+-----------+------------------+
| host      | User             |
+-----------+------------------+
| localhost | root             |
| localhost | debian-sys-maint |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+

可以将host字段更改为%表示允许所有ip登录root账号。

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

更改后使用查表命令检查一下

select host,User from user;

更改后应该为如下:

+-----------+------------------+
| host      | User             |
+-----------+------------------+
| %         | root             |
| localhost | debian-sys-maint |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+

3. 更改密码验证方式

如果mysql版本是5.7或更低,无需考虑本条。

在mysql版本8.0版本后, 使用sha2方式来验证密码。 就导致我们不能正确连接。需要设置为允许密码连接。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值