这是换着花样的折腾本身。mysql
刚开始时在 Windows 上装个 PHPnow 玩 WordPress 等 PHP 程序就很知足了,后来呢,搞虚拟主机装 Linux 系统,把折腾转到虚拟主机上,如今依然是虚拟主机装 Linux 系统,而后在 Windows 里“远程”访问虚拟主机来折腾 WordPress,偶尔还想着搞个老机器独立装 Linux 系统连局域网,真正实现远程,也不知道这样折腾的意义何在,多是为了知足本身伪装有 VPS 的样子吧。sql
之前一直用 PhpMyAdmin 管理 Mysql 数据库,后来折腾虚拟主机后发现远程用 Navicat 管理数据库更方便,并且导入导出不会像 PhpMyAdmin 偶尔会出错,还有一个和 Navicat 相似的程序,图标是只小海豚的 SQLyog 也不错。数据库
使用 Navicat 的时候遇到过几回链接不上远程数据库的问题,每次解决完都没有把方法记下来,致使重装虚拟机后又获得处找方法,因此,想到博客长草,恰好除草一下。spa
- 肯定远程装了 Mysql 这是废话
mysql -u root -p
回车,输入密码回车,登陆- 受权远程用户登陆
- 对全部
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;
- 也能够受权指定的表,这就不搞的那么麻烦了,反正本地本身用。
- 对全部
- 重载受权表:
FLUSH PRIVILEGES;
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
这一句前加 #
将它注释掉,就能够了。虚拟机