怎样用 Navicat for MySQL 连接上Linux服务器上配置好的mysql数据库
登录mysql的root账户将权限授予其他电脑,输入
GRANT
ALL
PRIVILEGES
ON
TO
'root'@'%'
IDENTIFIED
BY
'123456'
WITH
GRANT
OPTION;。登录密码为123456,自己设置,还有mysql的端口一般为3306,不是3306的话,自己去查输入show
global
variables
like
'port';。另外还需要开放服务器的3306(不是的话查到什么端口就开放什么端口)端口。
首先MySQL只允许本地连接登录,如果要远程登录需要修改数据库中user表 中的host内容改成%或指定ip。%是任意的IP都可以远程连接上的。完成这个修改就可以远程连接上了,不过值得注意的是:需要给服务器数据库登录名root账号设置一个密码,不然无法远程连接。如果还不能连接上,可看一下防火墙是否允许了3306商品访问
先看看我改成%,让所有的ip可以连接到,如图下:
/opt/lampp/bin/mysql -uroot -p 进入数据库操作,这里是使用了root登录数据库,root没有密码可直接mysql可以进去
看到user表中host已经被修改成了,可以通过sql语句修改host的内容。这样就可以远程连接上了
UPDATE user SET host='%' WHERE user='root';
排除网络或防火墙问题
先看是否能ping通远程服务器,ping 1921681211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 1921681211 3306,如果连接失败,配置防火墙。
配置防火墙,开启3306端口
vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)/etc/initd/iptables restart(重启防火墙使配置生效)2检查MySQL配置
如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:
netstat -apn|grep 3306tcp6 0 0 127001:3306 ::: LISTEN 13524/mysqld注意地方,这说明3306被绑定到了本地。检查一下mycnf的配置,这里可以配置绑定ip地址。
bind-address=addr
不配置或者IP配置为0000,表示监听所有客户端连接。
ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。
3检查用户访问权限
MySQL建用户的时候会指定一个host,默认是127001/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。
最后,别忘了重启mysql使配置生效。
以上几个原因,你看一下是否适用你的情况
ip、端口、用户名、密码这些信息应该是云服务器的提供商给你的。或者你自己在云服务器上安装配置mysql,上传数据库或者脚本。那么和在本地配置是一样的原理。有问题可以联系tjyundingyun,很高兴为您解答
0条评论