第一步:
vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1
注释掉这行,如:#bind-address = 127.0.0.1
或者改为: bind-address = 0.0.0.0
允许任意IP访问;
或者自己指定一个IP地址。
重启 MySQL:sudo /etc/init.d/mysql restart
- 默认mysql是无法远程连接,需要修改mysql.user的Host字段,默认Host字段的的数据都是’127.0.0.1′ 只能本地连接数据库,可以修改为’%’,然后flush privileges;这样就可以远程访问了。如果这因为这个原因而无法远程访问的错误提示是:ERROR 1045 (28000): Access denied for user ‘yushan’@’192.168.119.102′ (using password: YES)。。
- 我在linux上安装了mysql,远程使用windows连接,结果提示:ERROR 2003 (HY000): Can’t connect to MySQLserver on ‘192.168.119.105’ (10061),找到这一句: bind-address = 127.0.0.1 ,将其注释掉,然后sudo service mysql restart 重启动。可以连接了!
- 如果是windows平台的mysql服务器无法被远程连接,可以禁用windows防火墙(net stop sharedaccess),mysql平台:/etc/init.d/iptables stop
- 确认/etc/mysql/my.cnf文件skip-networking 选项也被注释掉。skip-networking的作用是禁用tcp/ip连接,彻底杜绝mysql远程连接。现在新版本都没有开启skip-networking。
第二步:
授权用户能进行远程连接
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
第一行命令解释如下,*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对应的密码,这里密码自己替换成你的mysql root帐号密码。
第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。