开启mysql的远程连接权限
1. 链接本机的mysql(用ssh登录终端,输入如下命令):
mysql -uroot -p
2. 输入密码登陆进去后,输入如下的语句,执行。
mysql>grant all privileges on *.* to ‘user‘@’%‘ identified by ‘password‘ with grant option;
#user是用户名,%表示任意主机,password是密码
mysql>flush privileges;
查看权限命令:
mysql> use mysql;
mysql> select user, host from user;
如下结果, 说明开启了任意主机远程连接权限
navicat for mysql 连接ubuntu里的mysql出现这个错误: 2003 - Can't connect to MySQL server on '192.168.0.112' (10038)
测试步骤:
1. windows上ping 192.168.0.112可以ping通
2. windows上telnet 192.168.0.112 3306发现失败 (关于安装启动telnet服务, 点这里)
3. 检查ubuntu里mysql服务: ss -na|grep 3306
由此可见, mysql监听的是3306端口, 但是地址不对, 这样只监听了本机地址
要监听所有地址, 应将/etc/mysql/my.conf里的[mysqld]结点下的bind-address 属性改为 0.0.0.0, 如下
#shell命令如下: :~$ cd /etc/mysql :/etc/mysql$ sudo chmod a+w my.conf #将my.conf权限改为可写 :/etc/mysql$ vi my.conf #用vim编辑my.conf :/etc/mysql$ sudo chmod a-w my.conf #将my.conf权限改为只读 :/etc/mysql$ sudo restart mysql #重启服务器
修改完后再次检查ubuntu里mysql服务: ss -na|grep 3306
再次用navicat 测试连接, 连接成功~