云服务器 域名备案 服务器 数据库 服务器安全 政策法规 域名相关 财务相关
文档下载 工单提交

帮助中心 > 数据库


设置root用户远程连接mysql数据库

默认情况下root不允许远程连接数据库,只可以本地连接,需要更改权限才能实现远程连接MYSQL数据库。
方法:
可以通过以下方式来确认是否可以远程连接数据:
在命令行中输入#mysql -h localhost -uroot –p  (登录MYsql数据库)
Enter password: ******  (输入密码)
显示:Welcome to the MySQL monitor.   Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.20a-debug
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
 
mysql> use mysql; (此数据库存放MySQL的各种配置信息)
显示:Database changed
mysql> select host,user from user; (查看用户的权限情况)
显示:
+-----------+------+-------------------------------------------+
| host       | user | password                                |
+-----------+------+-------------------------------------------+
| localhost | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| 127.0.0.1 | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| localhost |       |                                          |
+-----------+------+-------------------------------------------+

4 rows in set (0.01 sec)
列表可以看出,只能以localhost的主机方式访问。
解决方法:
mysql> Grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;(更改root用户可以远程登录的机器)
(%表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名;“password”指定远程连接的密码)
mysql> flush privileges;    (运行此句才生效,或者重启MySQL)
显示:Query OK, 0 rows affected (0.03 sec)
再次查看。。
mysql> select host, user, password from user;
显示:
+-----------+------+-------------------------------------------+
| host       | user | password                           |
+-----------+------+-------------------------------------------+
| localhost | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
| 127.0.0.1 | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
| localhost |       |                                          |
| %          | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441|
+-----------+------+-------------------------------------------+
4 rows in set (0.01 sec)

可以看出已经添加了一个新的用户