mysql远程访问

经常的,我们遇到这种情况:在单机下使用mysql进行测试、开发都没有问题,但是一旦将应用与数据库服务器分离,就发生不能连接到mysql的情况。这是由于默认情况下mysql账户不支持远程访问而导致的,所以需要调整一下mysql的用户信息。

首先连接至mysql,查看mysql的用户表:

#-p部分填写root的密码
mysql -u root -p qwer1234
--查询mysql用户表
select host, user from user;

结果如下所示:

+———–+——+——————————————-+
| host      | user | password                                  |
+———–+——+——————————————-+
| localhost | root | *D75CC763C5551A420D28A227AC294FADE26A2FF2 |
+———–+——+——————————————-+

这里边可能存在多条记录。

接下来有以下几种方式能够达到我们远程访问mysql的目的:

1、通过授权实现

GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注意密码需要填写正确,否则对原来的root用户不会修改成功,并且也会产生其他奇怪的问题(如数据库怎么也连接不上了,这时候要把刚才的user表里的数据清理一下)

另外上边语句的含义其实就是授权root用户在任意服务器(由%指定,也可@后接具体的服务器ip来达到指定ip才能访问mysql的目的)上均可访问mysql。

2、通过直接改表实现

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

重启mysql。

这里边容易发生user表数据冲突,所以在更改之前一定要确认好更新所影响的范围。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注