Linux系统中的3306端口通常是MySQL数据库服务的默认端口。开启3306端口意味着允许外部或内部网络访问MySQL服务。
开启3306端口主要涉及两种类型:
使用iptables或firewalld来配置防火墙规则。
使用iptables:
# 允许3306端口的TCP流量
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# 保存规则
sudo iptables-save使用firewalld:
# 开放3306端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload编辑MySQL配置文件my.cnf或my.ini,确保允许远程连接。
编辑配置文件:
sudo nano /etc/mysql/my.cnf找到并修改以下行:
[mysqld]
bind-address = 0.0.0.0重启MySQL服务:
sudo systemctl restart mysql授权远程访问:
登录MySQL并授权远程访问:
mysql -u root -p
# 在MySQL shell中执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;确保防火墙规则已正确保存并重新加载。
sudo iptables-save
sudo firewall-cmd --reload确保MySQL服务已重启,并且配置文件中的更改已生效。
sudo systemctl restart mysql确保MySQL用户有权限访问3306端口,并且密码正确。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;通过以上步骤,你可以成功开启Linux系统中的3306端口,并确保MySQL服务允许远程访问。