linux系统mysql的远程访问

一、创建用户设置权限

以root身份登录mysql

[root@ ~]mysql -uroot -p

[root@ ~]Enter password: xxxxxx

创建用户

mysql>create user 'wanglinyong'@'%' identified by 'wanglinyong9527';

授权

mysql>grant all privileges on *.* to 'wanglinyong'@'%' identified by 'wanglinyong9527' with grant option;

其中’wanglinyong’@’%’是允许该用户在任何主机上远程连接,如果只允许在某一台主机上连接,可指定ip

mysql>grant all privileges on *.* to 'wanglinyong'@'10.xx.xx.x' identified by 'wanglinyong9527' with grant option;

授权之后记得要刷新权限

mysql>flush privileges;

二、Navicate远程连接测试

1.如果连接失败,提示:

1045-Access denied for user'wanglinyong'@'ip'(using password:YES)

则表示密码输入错误。

2.如果提示:

ERROR 2003(HY000): Can’t connect to MySQL server on xxxxx

如果服务器是阿里云的,可能没有开通3306端口,要去服务器上添加安全组,增加3360端口即可

3.Navicate连接成功后,只有information_schema一个数据库

在linux系统以root用户登录

先查一下其他数据库是否被删除

mysql>show databases;

如果还在,查看下mysql库的用户表

mysql>select host,user from mysql.user;

结果如下:

+----------------+-----------------+
| host           | user            |
+----------------+-----------------+
| %              | wanglinyong     |
| localhost      | mysql.session   |
| localhost      | root            |
+----------------+-----------------+
3 rows in set (0.00 sec)

说明wanglinyong用户允许在任何远程主机登录

然后查看,远程登录的用户是否有权限

mysql> show grants for 'wanglinyong'@'%';

结果不是

GRANT ALL PRIVILEGES ON *.* TO 'wanglinyong5112'@'%' WITH GRANT OPTION 

说明权限不够,重新授权

mysql>grant all privileges on *.* to 'wanglinyong'@'%' identified by 'wanglinyong9527' with grant option;

刷新权限:

mysql>flush privileges;

重新连接应该就OK了!

注意

如果还不行, vi /etc/mysql/mysql.conf.d/mysqld.cnf,检查下是否有

bind-address = 127.0.0.1

如果有,请把它注释掉(加#号注释)。如果找不到mysqld.cnf,有的可能在 /etc/my.cnf文件内

保存退出后重启mysql服务

sudo /etc/init.d/mysql restart

或者

systemctl restart mysqld

更多博客内容详见我的博客 Wang's Blog


-------------本文结束 感谢您的阅读-------------


猜你喜欢

转载自blog.csdn.net/abcwanglinyong/article/details/80036929
今日推荐