mysql 数据库远程连接不上,用mysql 自带的、navicat工具都不能连上。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 数据库远程连接不上,用mysql 自带的、navicat工具都不能连上。相关的知识,希望对你有一定的参考价值。
mysql数据库在云服务器上,然后我们公司做了一些访问限制,3306端口开放了,但还是访问不了,navicat能连接上整个数据库,但是单独连接一个库就会出错,如下图,这个还需要改哪些访问限制呢,已经联系云服务器客服试过了,可以访问。
mysql> use mysqlDatabase changed
mysql> select host, user, password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| % | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+-----------+------+-------------------------------------------+
2 rows in set (0.00 sec)
如果远程登录是root用户就要在host这一列设置为%,如果是localhost的话,远程就无法用root用户登录。 参考技术A 直接输命令访问
远程访问服务器上的MySQL数据库,发现root远程连接不上
远程访问服务器上的MySQL数据库,发现root远程连接不上,提示错误:“1045-Access denied for user root@...”
解决办法如下,执行命令:
mysql> use mysql;
mysql> select host,user from user;
查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况.
是的话,就要修改它的host为%,表示任意IP地址都可以登录.
GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'数据库密码\' WITH GRANT OPTION;
mysql> flush privileges;
把缓存flush掉.在使用update语句修改用户记录后,需要FLUSH语句告诉服务器重载授权表.
还不成功?
1.启动mysql 的cmd命令
2.使用“use mysql”命令,选择要使用的数据库,修改远程连接的基本信息,保存在mysql数据库中,因此使用mysql数据库。
3.使用“GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'数据库密码\' WITH GRANT OPTION;”命令可以更改远程连接的设置。
4.使用“flush privileges;”命令刷新刚才修改的权限,使其生效。
5.使用“select host,user from user;”查看修改是否成功。
6.之后还是发现访问不了。于是进服务器本地访问看了一下。
上边截图中,最后一行 % root 的password改成和第一个一样就行。
之后就可以访问了。
其他连接不上问题:
防火墙端口添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
保存设置
/etc/init.d/iptables save
查看状态
/etc/init.d/iptables status
临时关闭防火墙服务器
iptables stop
开启防火墙服务
service iptables start
开机不再启动防火墙服务
chkconfig iptables off
以上是关于mysql 数据库远程连接不上,用mysql 自带的、navicat工具都不能连上。的主要内容,如果未能解决你的问题,请参考以下文章