Navicat 远程链接 Mysql 2003 错误

Navicat 远程链接 Mysql 2003 错误

navicat-for-mysql

这是换着花样的折腾本身。mysql

刚开始时在 Windows 上装个 PHPnow 玩 WordPress 等 PHP 程序就很知足了,后来呢,搞虚拟主机装 Linux 系统,把折腾转到虚拟主机上,如今依然是虚拟主机装 Linux 系统,而后在 Windows 里“远程”访问虚拟主机来折腾 WordPress,偶尔还想着搞个老机器独立装 Linux 系统连局域网,真正实现远程,也不知道这样折腾的意义何在,多是为了知足本身伪装有 VPS 的样子吧。sql

之前一直用 PhpMyAdmin 管理 Mysql 数据库,后来折腾虚拟主机后发现远程用 Navicat 管理数据库更方便,并且导入导出不会像 PhpMyAdmin 偶尔会出错,还有一个和 Navicat 相似的程序,图标是只小海豚的 SQLyog 也不错。数据库

使用 Navicat 的时候遇到过几回链接不上远程数据库的问题,每次解决完都没有把方法记下来,致使重装虚拟机后又获得处找方法,因此,想到博客长草,恰好除草一下。spa

  1. 肯定远程装了 Mysql 这是废话
  2. mysql -u root -p回车,输入密码回车,登陆
  3. 受权远程用户登陆
    • 对全部 root 用户受权:
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
    • 对指定 IP 的 root 用户受权:
      GRANT ALL PRIVILEGES ON *.* TO root@'指定的IP地址' IDENTIFIED BY 'root用户密码' WITH GRANT OPTION;
    • 也能够受权指定的表,这就不搞的那么麻烦了,反正本地本身用。
  4. 重载受权表:FLUSH PRIVILEGES;
  5. exit 退出 Mysql

到这里基本都没问题,不过设置好后 Navicat 链接数据库仍是会提示 2003 错误:2003——can't connect to mysql server on localhost(10061) 缘由是有一步我总是忘记,总是忘记,总是忘记(容易忘记的事情说 3 遍)。code

打开 /etc/mysql/mysql.cnf 在文件最底部添加:
bind-address= 0.0.0.0
或者是打开 /etc/mysql/mysql.conf.d/mysqld.cnf 找到文件里的:
bind-address= 127.0.0.1 把它改为 bind-address= 0.0.0.0
由于第一个有优先级,因此我是直接在 /etc/mysql/mysql.cnf 文件里添加。server

这样 Navicat 就能够无碍的“远程”访问数据库了,效果就是文章开头的那个图,改起来很直观方便。get

2016.9.6更新博客

最后一步不知道什么鬼,之前添加那句没问题,此次又忽然不行,加了后重启 mysql 服务报错,只能经过 /etc/mysql/mysql.conf.d/mysqld.cnf 里,在 bind-address= 127.0.0.1 这一句前加 # 将它注释掉,就能够了。虚拟机