您的位置:首页 > 数据库 > MySQL

允许ubuntu下mysql远程连接

2014-11-27 11:37 246 查看

第一步:

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帐号密码。

   第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息