Ubuntu下设置mysql用于远程访问
2012-12-10 21:49
471 查看
第一步: 激活网络设置
编辑my.cnf,修改内容从以下行:
[mysqld]
你所需要:
1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
2. 增加行bind-address =
192.169.169.128,替代192.169.169.128 为你mysql服务器的ip。
保存并关闭配置文件
重启mysql服务器:
$sudo /etc/init.d/mysql restart
或者
先停止mysql服务,sudo stop mysql
再启动mysql服务,sudo start mysql
第二步: 创建一个用于远程访问的用户并授权
例如,你想suseroot使用root从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO suseroot@'%'
IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户suseroot从ip为192.168.1.6的主机连接到mysql服务器,并使用root作为密码
GRANT ALL PRIVILEGES ON *.* TO 'suseroot'@'192.168.1.6'IDENTIFIED BY 'root'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
第三步:配置防火墙
如果系统装有防火墙iptables,得设置下
修改防火墙配置文件:
vi /etc/sysconfig/iptables
增加下面一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
如果想开通21等端口,只需要将3306换成21等要开放的端口就可以了。
附:iptables
==============================================
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
================================================
这时就可以从外网访问Mysql了。
配置防火墙也可以用这个命令:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
---------------------------------
第四步 测试
在另外一台虚拟机里,测试
$ mysql -ususeroot–h192.168.168.128 –proot
编辑my.cnf,修改内容从以下行:
[mysqld]
你所需要:
1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
2. 增加行bind-address =
192.169.169.128,替代192.169.169.128 为你mysql服务器的ip。
保存并关闭配置文件
重启mysql服务器:
$sudo /etc/init.d/mysql restart
或者
先停止mysql服务,sudo stop mysql
再启动mysql服务,sudo start mysql
第二步: 创建一个用于远程访问的用户并授权
例如,你想suseroot使用root从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO suseroot@'%'
IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户suseroot从ip为192.168.1.6的主机连接到mysql服务器,并使用root作为密码
GRANT ALL PRIVILEGES ON *.* TO 'suseroot'@'192.168.1.6'IDENTIFIED BY 'root'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
第三步:配置防火墙
如果系统装有防火墙iptables,得设置下
修改防火墙配置文件:
vi /etc/sysconfig/iptables
增加下面一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
如果想开通21等端口,只需要将3306换成21等要开放的端口就可以了。
附:iptables
==============================================
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
================================================
这时就可以从外网访问Mysql了。
配置防火墙也可以用这个命令:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
---------------------------------
第四步 测试
在另外一台虚拟机里,测试
$ mysql -ususeroot–h192.168.168.128 –proot
相关文章推荐
- Ubuntu/kali上安装MySQL,设置远程访问详细教程
- 设置Ubuntu上的MySQL可以远程访问
- Ubuntu下mysql设置远程访问
- 阿里云ECS主机 Ubuntu下设置Mysql 5.7.17为远程访问
- Ubuntu 16.04 设置允许root用户MySQL远程访问权限
- Ubuntu 14.04 server 设置mysql允许远程访问
- Ubuntu 16.04 设置MySQL远程访问权限
- 设置Ubuntu下MySQL的远程访问
- Ubuntu Server 16.04 安装MySQL并设置远程访问
- Ubuntu 设置开放 MySQL 服务远程访问教程
- Ubuntu 设置开放 MySQL 服务远程访问教程
- Ubuntu 16.04 设置MySQL远程访问权限
- linux,Ubuntu设置MySQL远程访问权限
- 设置Ubuntu上的MySQL可以远程访问
- Ubuntu 16.04 安装mysql并设置远程访问
- 设置Ubuntu上的MySQL可以远程访问
- ubuntu server下设置mysql的远程访问权限
- Ubuntu安装mysql及设置远程访问方法
- 设置Ubuntu上的MySQL可以远程访问
- Ubuntu 16.04 设置MySQL远程访问权限