一、问题描述
在服务器上安装了MySQL数据库,但是在本地无法进行远程访问。
二、解决方法
这是由于 mysql 限制了远程连接,只需要将下 user 表中 Host 字段中的 localhost 改为‘%’就可以开启远程连接。当然改完记得重启下服务。
三、具体实现
- 先登录到服务器上连接本地数据库
mysql -h localhost -u root -p123
- 选择要使用的数据库:mysql
use mysql
- 执行如下命令更改远程连接的设置(123 为密码)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
注意:如果执行报错:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'hangge1234' WITH GRANT OPTION' at line 1
可以使用如下命令:grant all privileges on *.* to 'root'@'%';
- 执行如下命令刷新刚才修改的权限,使其生效。
flush privileges;
- 执行如下命令查看修改是否成功。
select host,user from user;
- 如果修改不成功可以手动修改User表
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
- 强制刷新
flush privileges;
- 重新查询
select host,user from user;
四、禁止远程连接
如果我们又需要关闭远程连接功能,只需要登录 MySQL 后执行如下命令即可。
drop user 'root'@'%';