linux下mysql开启远程访问权限及防火墙开放3306端口

开启mysql的远程访问权限

默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。

主流的有两种方法,改表法和授权法。

相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法

1、登陆mysql

mysql -u root -p 

2、修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。

mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges; 

防火墙开放3306端口

1、打开防火墙配置文件

vi  /etc/sysconfig/iptables

2、增加下面一行

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

3、重启防火墙

service  iptables restart

注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前

附:个人配置

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
时间: 2024-10-11 06:08:43

linux下mysql开启远程访问权限及防火墙开放3306端口的相关文章

centos6.0如何开启远程访问权限及防火墙开放3306端口

在Linux中装上mysql之后,发现windows中用navicat连接数据库失败,这是由于默认mysql的用户是没有远程访问的权限的,因此当navicat程序跟mysql数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限才能正常访问mysql数据库. 主要的有两种方法,改表法和授权法,下面将分别介绍. 1.登陆mysql [java] view plain copy mysql -u root -p 2.改表法:修改mysql库的user表,将host项,从localhost改

Linux环境下Mysql开启远程访问权限

如何通过Window的数据库可视化工具远程连接装在Linux上的Mysql呢?可以按照以下步骤逐一确认! 检查监听端口是否存在 netstat -ntlp |grep mysql 检查Mysql配置配置 先执行:vim /etc/my.cnf [mysqld] port = 3306 bind-address = 0.0.0.0 # 这一行改成0.0.0.0 或者直接注释掉 socket = /tmp/mysql.sock datadir = /usr/local/mysql/var skip-

windows下mysql开启远程访问权限

1.mysql -u root -p 2.use mysql 3.GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; 4.flush privileges; 5.select host,user from user;

Linux下MySQL不能远程访问

最近在Linux上装了个MySQL数据库,可是远程连接MySQL时总是报出erro 2003: Can't connect to MySQL server on '211.87.***.***' (111),昨天查了好几个小时才找到解决方案,如下: 1.sudo gedit /etc/mysql.my.cnf 找到bind-address      =127.0.0.1 修改为bind-address   =0.0.0.0 2.sudo /etc/init.d/ mysql restart 在这

linux下mysql开启二进制日志

最近需要在linux系统下打开mysql的更新日志(即二进制日志),这样可以用来避免数据库因误操作或数据丢失,能够还原到操作之前.但是网上很多帖子都是复制黏贴,以至找了好几天都没有设置成功.大多按照网上方法都遇到,数据库重启失败. 试了好多方法,终于设置成功,十分感谢那篇神贴的作者. mysql的查询日志,慢查询日志,错误日志,网上的设置方法是正确的.但在二进制日志上设置有问题.正确的设置方法如下, 在/etc/my.cnf文件中[mysqld]下加上: server-id = 1  log-b

linux下mysql开启慢查询

mysql中最影响速度的就是那些查询很慢的语句.这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等.所以我们要找出这些语句,分析原因,加以优化. 1.方法1:用命令开启慢查询 1).查看默认慢查询的时间: mysql> show variables like "%long%"; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+

mysql 开启远程访问权限

MySQL 服务器 开启远程数据库访问权限 myuser -> 用户名 mypassword ->密码 % -> 任意ip 可修改为指定ip GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

Mysql开启远程访问权限

步骤一:登录数据库 1 mysql -u root -pvmwaremysql>use mysql; 步骤二: 一. 方法一:更新mysql库下user表的root条目 局域网段(特定IP): 1 mysql>update user set host = '192.168.0.49' where user = 'root'; 全网访问: 1 mysql>update user set host = '%' where user = 'root'; 二.方法二:直接添加一条语句也行 局域网

linux下mysql开启可访问

修改mysql配置连接信息 将bind-address注释 vim /etc/my.cnf 修改mysql用户授权 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) mysql>FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) 说明: