Linux 下配置 MySQL 远程访问


Linux 下配置 MySQL 远程访问的设置网上介绍很多,但是自己实际操作是还是遇到了很多麻烦,记录一下(红色的地方是需要注意的 )。

第一步和Winddows下配置mysql的远程登录一样,一般执行如下语句就行:   

  1. use mysql;      
  2. GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;      
  3. GRANT ALL ON *.* TO admin@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION;     
  4. flush privileges  
实际上创建了一个用户 用户名:admin  密码:admin  远程访问的时候就用这个用户名和密码登录。

第二步 是打开防火墙 

简单关闭防火墙不好用。 

先停止防火墙 service iptables stop 然后修改 /etc/sysconfig/iptables

添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  

  1. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   
  2. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT   
  3.   
  4. -A INPUT -j REJECT --reject-with icmp-host-prohibited   
  5. -A FORWARD -j REJECT --reject-with icmp-host-prohibited  

需要注意的是添加的位置必须在

  1. -A INPUT -j REJECT --reject-with icmp-host-prohibited   
  2. -A FORWARD -j REJECT --reject-with icmp-host-prohibited  

上方。 

然后启动防火墙:

service iptables start

第三步 如果还是有问题可以修改如下的配置 /etc/my.cnf

[mysqld]   下面添加

  1. skip-name-resolve   
  2. bind-address=0.0.0.0  

如果找不到my.cnf 文件,拷贝my-small.cnf 到/etc 改名my.cnf就可以了

不知到 my-small.cnf 的位置就用 find / -name my-small.cnf

相关内容