如何将服务器数据库设置支持异地访问
2017-07-03 本文已影响19人
5afd372c86ba
摘要
在服务器搭建数据库后,一般创建用户后可通过用户密码进行本地访问,如果此时需要使该数据库支持异地访问,比如用户在本地用Navicat等第三方数据库工具访问,则需要创建一个可支持异地访问登录的用户。
解决办法
- 进入服务器控制台(命令行);
- 设置当前数据库跳过授权验证:
修改my.cnf,去掉#skip-grant-tables前面的“#”,保存退出。
[root@XXX bin]# vi /etc/my.cnf
- 重启mysql服务
[root@XXX bin]# systemctl restart mysql
- 进入mysql命令行
[root@XXX bin]# mysql
- 执行添加用户授权的命令
更改"mysql" 数据库里的 "user" 表里的 "host"项,从"localhost"改称"%",即可支持远程登录。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cth19910127' WITH GRANT OPTION;
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
//输入如上命令后如果出现此错误,则继续输入一下命令
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; //重新再输一遍
Query OK, 0 rows affected (0.00 sec)
-
重新设置数据库登录需要授权验证,即是将第二部去掉的#skip-grant-tables前面的“#”重新补回来;
-
重启mysql
[root@XXX bin]# systemctl restart mysql
完成以上操作后,即可用root账户进行异地登录。