服务器配置Mysql远程连接
正常情况
在服务器执行:
mysql -u root -p
use mysql;
create user 'root'@'%' identified by '123456';
注:这是直接创建远程用户的方式,与修改root的host为%不同。
特殊情况
遇到了一个特殊情况,就是很久之前服务器的mysql配置过了远程访问,但是忘记了密码,然后跳过密码修改密码后,远程链接被拒。
原因分析
⚡首先回顾忘记密码后修改密码的操作
(以下是在服务器上的操作)
- 在mysql的配置文件中的
[mysqld]
下添加skip-grant-tables
,来跳过权限认证 - mysql不输密码直接登录
-
use mysql; set password for root@localhost = password('123456'); flush privileges;
⚡来看一下报错
(在本地的操作)
ERROR 1045 (28000): Access denied for user ‘root’@‘27.xxx.xxx.xxx’ (using password: YES)
根据报错推断是密码错误。这里有个小问题,很多人第一眼看到会很奇怪,为什么报错返回的ip与输入的远程服务器地址不同,这里说明一下,报错返回的ip是本地ip,这一点在访问web应用后可以证明。
⚡下面只能登陆远程服务器继续操作了,奇怪的是在服务器可以直接使用修改后端密码登陆
让我们看一下用户表
mysql> select user, host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
解释下为什么有两个root用户:
MySQL的权限为用户名和主机名共同定义,可以理解为user和host相同才为同一个。
root@localhost:表示只有本地可以访问
root@%:表示任意ip都可以访问
不难看出,问题就在于改密码的时候,由于使用的命令是set password for root@localhost = password('123456');
,修改的是本地访问的密码,而远程连接的密码未变。那么问题来了,本地连接用新密码,远程连接用旧密码可以吗,即本地和远程连接的密码不同?
试了一下,报错:ERROR 2026 (HY000): SSL connection error: socket layer receive error。
但是,如果在服务器,先修改本地密码为123,再修改远程密码为123456,经测试,本地和远程,用各自对应的密码时可以登录成功。
所以好像可以在本地访问的时候用简单的密码,比如123456,远程的时候用复杂密码。。。
解决方案
方案一:
在服务器修改密码时,执行完
set password for root@localhost = password('123456');
再执行
set password for 'root'@'%' = password('123456');
方案二(推荐):
修改密码时直接执行:(密码会统一)
update user set password=password("123456") where user="root";
# mysql5.7以上版本需要执行下面的命令
update user set authentication_string=password("123456") where user="root";
flush privileges;
远程和本地同一账户使用不同密码
经过测试是可以实现的。首先登录服务器,执行:
mysql -u root -p
# 如果没有远程账户,先创建,当然如果本地用户改成了远程host,也可以创建本地账户
create user 'root'@'%' identified by '123456';
#create user 'root'@'localhost' identified by '123456';
本地连接密码改为123
set password for 'root'@'localhost' = password('123');
远程连接密码改为123456
set password for 'root'@'%' = password('123456');
刷新
flush privileges;
来源:CSDN
作者:皮卡皮卡~
链接:https://blog.csdn.net/y_universe/article/details/104306953