MySQL安装时默认不允许其他机器远程访问,因此需要对MySQL做一些修改。
这篇文章说的很全:
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
主要步骤
1,首先找到mysql的配置文件,默认位置是/etc/mysql/my.cnf。找到bind-address参数,默认为:
bind-address=127.0.0.1 -- 即仅运行本地访问
将127.0.0.1修改为你希望可以访问mysql的那台机器的ip。例如你希望从10.55.11.10访问这个mysql server,则改为:
bind-address=10.55.11.10
如果希望从任意一台机器都可以访问mysql,则改为:
bind-address=0.0.0.0
修改配置文件后需重启mysql,可以用这个命令查看端口监听的情况:
sudo netstat -tap | grep mysql
值得注意的一点,在修改/etc/mysql/my.cnf时,默认该文件的权限是644。我图方便改成了777以后,Mysql启动时报错:
warning: World-writable config file /etc/my.cnf is ignored
关于这点请参考这个帖子:
http://www.linuxquestions.org/questions/linux-enterprise-47/i-have-rhel-5-0-and-mysql-start-problem-my-mysql-server-doesnt-start-700553/#post3430610
2,创建数据库用户
CREATE USER 'UserName'@'%' IDENTIFIED BY 'coyote'; GRANT ALL PRIVILEGES ON *.* 'UserName'@'%' WITH GRANT OPTION;
上面的'%'表示该用户可以从任意机器远程登录到mysql,但注意的是这种用户只能远程访问mysql,也就是说在mysql运行的机器上用该用户是无法登录的。
其他需要注意的问题
--------------------------------------------------------------------------------------------------------
文中提到的修改linux防火墙的步骤,对于ubuntu来说应该用ufw,请参考:
https://help.ubuntu.com/8.04/serverguide/firewall.html
还有一个bug,关于my.cnf丢失的问题:
https://bugs.launchpad.net/ubuntu/+source/mysql-dfsg-5.1/+bug/573318?comments=all