(困扰很久的问题)用在windows操作系统上用Navicat远程连接CentOS中的Mysql,连接不上;

Constantly 发布于 2016/07/28 17:06
阅读 2K+
收藏 1
1、搭建的环境:
    宿主机操作系统:Windows8.1
    虚拟机版本:Vmvaer10.0
    虚拟机内操作Linux版本:CentOS-6.5-x86_64
    数据库版本(在CentOS中安装):MySQL-5.6.16-1.el6.x84_64
Navicat版本:PremiuSoft Navivat Premium 9.1
2、需要解决的问题
       用在windows操作系统上用Navicat远程连接CentOS中的Mysql。已经
3、连接时提示的错误
     2003——can't connect to mysql server on IP(10060)
5、已经排查的地方(已经查过几遍了)
     1)、网络通畅:宿主机与CentOS的网络是通的,是通过NAT模式连接的。
2)、权限问题已经解决;在Navicat所用到的连接用户的权限已经给了。
3)、防火墙问题:防火墙已经关了,且3306端口是可以通过的。
4)、服务问题:MySQL的服务也是启动的。
5)、配置文件问题:当时在配置文件中加skip-name-resolve,然后连接是成功的,后来重启虚拟机
     又连接不上了。后来又添加了lower_case-table_names=1,然后连接又成功一次,后来电脑重启
 又连接不上了。现在一直是连接不上的。。。。。。。。。。。。。。。。。。。。。
 
6、下面是我的配置文件(原始的)
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading192.16.# and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M


# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin


# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....


# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 


 


加载中
0
szf
szf

说原理吧,很多人以为mysql的用户名密码认证是 username/password这样。

其实不是的。

虽然程序上输入的是username, 但事实上mysql认证时是使用 username@host或username@IP再加上密码来匹配的。

于是,在本机命令行mysql -u root 事实上匹配的是 root@localhost.

因此mysql可以加个 user1@%的帐号,用于匹配任意远程主机上用user1用户的登录会话请求。

Constantly
Constantly
我是新手啊,具体怎么做啊?
0
l
lizhi.zero

mysql 没有开启远程连接吧

0
巴林的狗尾草
巴林的狗尾草

我就晕了,在本地telnet {IP} 3306试试能上去么?

能的话,你连接mysql用的哪个用户?用户给远程权限了么?你搞了很多,但是没看到你开数据库用户权限的地方,默认是不开远程权限的。

0
-Jacen-
-Jacen-
远程访问问题
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit;
Constantly
Constantly
%权限已经有了,我已经执行grant。。。。。。。。。。。option成功的。
0
淡定的米哥
淡定的米哥
没有设置远程访问MySQL权限,百度一大把。
0
zakari
zakari
应该把你修改的地方一起发上来,怕你修改不正确,同样觉得是权限问题
0
p2ng
p2ng
是你centos上的mysql没有开通%访问权限吧。...赶紧登陆centos修改一下。
0
eechen
eechen
数据库还开通远程访问,这不是作死么?
最安全的做法还是老老实实在my.cnf里的[mysqld]下配置:
bind-address=127.0.0.1
绑定只允许本地IP访问.
注意:此时程序连接的时候最后用127.0.0.1而不是localhost连接,否则Windows7等上会出现延迟.

管理的话通过ssh端口转发来进行.
举例说明,ssh客户端转发本地端口13306到服务器3306,openssh命令如下:
ssh  -L 13306:127.0.0.1:3306 user@ip -N
然后你在本地用客户端phpMyAdmin等连接127.0.0.1:13306即可远程管理MySQL数据库服务器.
0
逐浪人
逐浪人

首先本地测试无关安全问题怎么方便怎么来

修改my.cnf使mysql监听在任意ip地址

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

重启mysql

在本机测试是否可以使用指定账户在远程主机连接mysql,注意把下面账户密码和ip换成你自己的

 mysql -uroot -p123456 -h192.168.1.68



逐浪人
逐浪人
网卡属性高级 把硬件校验和关闭试下吧
逐浪人
逐浪人
主机ping虚拟机能通吗? 在宿主机 telnet测试下端口 telnet 192.168.25.128 3306
Constantly
Constantly
iptables selinux之前都有关闭。还是不行,刚刚我又检查了一遍还是不行。
逐浪人
逐浪人
把iptables和selinux都关掉,那个ip是mysql的ip地址
Constantly
Constantly
我用 mysql -uroot -p123456 -h192.168.25.128是可以登录成功的。
下一页
0
yanInsert
yanInsert
命令行连接可以吗?  如果命令行都不可以的话估计就是主机设置的问题。 。
Constantly
Constantly
查看user表权限都是给%的,主机有哪些设置呢?
Constantly
Constantly
命令行登录时可以的。
返回顶部
顶部