方法一:
创建一个与root相同权限的账户,并且将主机名设为想要远程访问的主机IP。
mysql> grant all on *.* to serveruser1@'172.16.12.1' identified by '000000' with grant option;
这个其实就是授权并创建用户的操作。
mysql> select host,user,authentication_string from user;
+--------------+-------------+-------------------------------------------+
| host | user | authentication_string |
+--------------+-------------+-------------------------------------------+
| localhost | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| 172.16.12.10 | clientuser1 | *032197AE5731D4664921A6CCAC7CFCE6A0698693 |
| 172.16.12.1 | serveruser1 | *032197AE5731D4664921A6CCAC7CFCE6A0698693 |
+--------------+-------------+-------------------------------------------+
4 rows in set (0.00 sec)
user这个表的数据太多,所以只看着几个就足够了。
host就是连接的主机,user,就是访问时用的用户名,authentication_string,这个翻译过来时用户什么验证字符串, 就是密码,不过是加密的。
现在看上边的表,可以用172.16.12.10主机和172.16.12.1 主机进行远程访问了。
方法二:
直接改表
mysql> update user set host = '%' where user = 'root';
将root的host字段变为%,这个%表示任意一个主机就可以访问root。
mysql> select host,user,authentication_string from user;
+--------------+-------------+-------------------------------------------+
| host | user | authentication_string |
+--------------+-------------+-------------------------------------------+
| % | root | *032197AE5731D4664921A6CCAC7CFCE6A0698693 |
+--------------+-------------+-------------------------------------------+
这样就能直接用root访问了。