不想浪费大家时间,我这文章记录了我在vagrant上架的mysql远程连接不上的问题,不过我在整理时发现这个下面这个链接,如果我一开始能找到这个我就不会绕那么多弯了。不想看我是怎么一步步调错过程的请直接看下面地址,我也将内容复制到了地址下面了。自己调试过程有点长,当记录吧,有兴趣的可以看下,也许对你有帮助
vim /etc/my.cnf

注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1
保存退出。
mysql -uroot -p123456

为需要远程登录的用户赋予权限:

复制代码代码如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;
 
远程登录命令:

mysql -h 223.4.92.130 -uroot -p(-h后跟的是要登录主机的ip地址)
 
 
 

 
 我的实现操作调试过程上面看懂了解决问题了可以下面的不用看。
 
 
我的实际情况说明
用第三方的软件去登陆服务器上的数据库mysq,第三软件为navicat
 
 
环境:mac os 10.11.5   vagrant centos7  box是德国的(语言找过来了应该影响不大) lnmp 一键安装版本
 
原因:要将数据库的结构同步到另一个数据库   实现方法用navicat 这个软件进行(数据结构同步自行搜索)
 
问题:安装并破解navicat 后一直登陆不了mysql 提示不能远程连接 (mac下的破解过过程自己搜索)
 
错误提示:
 
 
首先我的目标ip地址是192.168.10.10(本地的测试服务器)使用vagrant 架设,安装了centos7.
 
navicat 的连接信息
 
 
 
这样填写提示连接不上,192.168.10.10不能连接?
我再试了下ssh连接
 
 
得到的提示是192.168.10.10这个mysql没有远程连接权限。(ps:我的是mac环境用过Sequel Pro.app 的ssh 连接是没有问题的当时3306端口我都没有开启呢)
 
是不是centos7的端口没有开呢?
sudo firewall-cmd --query-port=3306/tcp  //永久开放3306端口
sudo firewall-cmd —reload  //重启防火墙
 
重新用navicat 的ssh 连接方法尝试,结果是跟上面提示一样,连接失败192.168.10.10不允许远程连接
直接用navicat 常规连接试下(常规指直接用mysql的ip 账号密码登录)提示改变了
 
端口开启后提示是有改变的。看来还得继续解决
 
前面有提示到192.168.10.10没有远程连接权限是不是mysql的账号不允许远程连接呢?百度 google了下mysql 远程连接.
常规的几种方法(自行查找下吧)
1.修改mysql 内的mysql数据库 user表下, root 账号下host为localhost 改为%
 
网上多数都教用命令行去修改(ps:直接phpmyadmin修不就好了吗?为什么非要用命令行修改,后来才知道,不过还是被坑了一把后面说)
#mysql -uroot -p
填写密码
use mysql
update user set host = '%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key ‘PRIMARY’   //这是报错吗?
select host, user from user; //查看下数据表
 
报错但,这个修改算是成功了。
 
再一次尝试用navicat 做常规连接 结果是
再来一次ssh 结果是
 
第二种方法:
授权法
GRANT ALL PRIVILEGES ON *.* TO ‘用户名'@'%' IDENTIFIED BY '用户密码' WITH GRANT OPTION;    //增加一个账号,任何ip都可以连接这到个mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@‘192.168.10.10' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; //设置root用户可以通过192.168.10.10这个ip登陆 ip地址自己填写
好吧我就填写了ip地址的方法。还是失败。
 
第三种方法:
修改my.cnf 将远程打开  //mysql 5.0版前后有区别,一般网上找到的修改是5.0后的修改方法。
注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1
//5.0版本前是找不到bind-address的 那就注释掉 #skip-networking  //我本地本来就是注释了的。
 
因为常规连接时报的是192.168.10.1这个vagrant 的桥接网关吧(ps:我是这样理解的有错大家指出来),没有远程连接mysql的权限?
用telnet 192.168.10.10 3306 得到的也是192.168.10.1没有mysql 远程连接权限的报错
 
为什么是192.168.10.1   是因为vagrant的环境有问题吗?一直都是这样想
后来又是各种试吧,但一直不行。最后看到百度经验里的一篇文章,文章上的mysql是在windowns上的,也是修改ip地址允许的方法。死马当活马医吧,照做一次,当时root 的host改成了%了 ,我就以为是192.168.10.1这个真的没有权限远程吗?所以再加了一个192.168.10.1这个ip上去  ,不同的地方是下面这个命令
flush privileges;   //重新加载权限,让修改的权限生效
//重新加载权限。。。。对好多文章都没有加入重新加载权限这一条,我重启linux后mysql 也没有给我重新加载权限(当时没有去试重新启动mysql,有兴趣的可以自行试下)
妹的搞了一大圈就是因为修改了权限没有重新加载,我们这种不太懂mysql内操作的怎么办。
 
然后呢,打算自己总结下问题写这个文章吧,想将问题重现一次来做测试,将root 允许192.168.10.1这个删除了尝试,navicat还是可以连接,再删除了任何ip都能访问那一条设置还是能用navicat常规连接,当时就快疯了,为什么?最后再将root host %改回localhost   flush privileges; (ps:一定要重置下配置好的权限) 问题终于重现了。
 
最后吐槽一下百度 firewall-cmd 关闭端口的方法,出来的结果不是开端口呢就是直接将firewall这个防火墙关了,去google 用相同的关键字一查第一条就是我要找的结果
sudo firewall-cmd --permanent --remove-port=3306/tcp  //关闭centos7 3306这个端口
当然不要忘记要重启防火墙生效哦
sudo firewall-cmd --reload
 
 
 
 
 
 

mysql 不能远程连接的更多相关文章

  1. [转]配置mysql允许远程连接的方法

    配置mysql允许远程连接的方法 vim /etc/my.cnf注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1保存退出.mysq ...

  2. MySQL数据库远程连接

    12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...

  3. MySql实现远程连接

    MySql实现远程连接 1.进入mysql,创建一个新用户root,密码为root: 格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密 ...

  4. 开启本地MySql数据库远程连接

    解决MySQL不允许从远程访问的方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 33 ...

  5. mysql允许远程连接授权方法

    mysql数据库和apache不在同一台服务器时,需要远程连接mysql,这就要对mysql进行远程连接授权,为了安全只允许某些ip可以连接: 假如你想root用户从ip 192.168.2.12连接 ...

  6. Mysql开启远程连接方法

    分类: 数据库开发技术 解决MySQL不允许从远程访问的方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要 ...

  7. Linux下mysql的远程连接(转)

    转载:http://www.cnblogs.com/fnlingnzb-learner/p/5830661.html 如果Mysql是按上篇的方法进行安装和设置的话,那进行远程连接就会稍微简单一点.我 ...

  8. MySQL数据库远程连接很慢的解决方案

    在开发机器上链接mysql数据库很慢,但是在数据库服务器上直接链接数据库很快.猜测应该是远程链接解析的问题,在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL ...

  9. linux搭建的LNMP环境下的mysql授权远程连接

    用phpstudy搭建的lnmp环境下mysql授权远程连接 简单高效 这是因为mysql 里的优先级不是所有人(提前检查防火墙是关闭状态)1.使用phpstudy安装的mysql没有放置到可以直接调 ...

随机推荐

  1. 使用js对中文进行gbk编码

    使用js对中文进行gbk编码 分类: JS/JQUERY2013-02-09 11:29 436人阅读 评论(0) 收藏 举报 最近遇到一个问题,需要通过js来从一个utf-8编码的页面传递一个含中文 ...

  2. 想学React Native?你只需要一个App!(11月5号更新)

    最近有点空闲时间,顺手研究下react-native,2013年的时候在老师的指导下使用jQuery Mobile做过手机应用,那个运行速度慢呀!让我对WebApp和PhoneGap这一类的跨平台Ap ...

  3. Windows Azure 微软公有云体验(二) 存储成本比较分析

    Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...

  4. cvSaveImage的第三个参数

    http://stackoverflow.com/questions/801054/opencv-cvsaveimage-jpeg-compression-factor   #define CV_IM ...

  5. windows 端搭建nfs 服务器

    因为最近虚拟机桥连模式总是用不了会出问题,所以今天花了半个小时研究了一下在Windows主机下搭建一个nfs服务器进行文件传输. 其实步骤很简单,如下: 1. 下载NFS Windows服务器软件,我 ...

  6. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10(转)

     在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html&g ...

  7. Delphi版本号对照(转)

    Delphi版本号对照 VER10  :Turbo Pascal 1VER20  : Turbo Pascal 2VER30  : Turbo Pascal 3VER40  : Turbo Pasca ...

  8. Centos系统使用代理上网时 yum的代理设置

    yum的存在使centos上软件的安装.配置.升级.卸载变得十分的方便,但是当安装centos的机器是通过代理服务器访问外网的话,yum的 使用就变得无从下手了,以下介绍以下怎样为yum配置代理地址及 ...

  9. http keepalive

    转载自: http://www.92csz.com/17/1152.html http keepalive 在http早期 ,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就 ...

  10. Linux 命令 - chown: 更改文件的所有者和所属群组

    chown 命令用来更改文件或者目录的所有者和所属群组.使用这个命令需要超级用户的权限. 命令格式 chown [OPTION]... [OWNER][:[GROUP]] FILE... chown ...