下面是在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限的完整攻略:
修改MySQL配置文件
在Linux系统中,MySQL的配置文件通常是/etc/mysql/mysql.conf.d/mysqld.cnf
,我们需要修改该文件中的bind-address
配置项。首先,使用任意文本编辑器打开该文件。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到该文件中以下行:
# bind-address = 127.0.0.1
将该行前面的注释符#
去掉,并将127.0.0.1
改成0.0.0.0
,保存并退出。
bind-address = 0.0.0.0
这样,MySQL就会允许任意IP地址连接,而不仅仅是本地IP地址。
修改防火墙配置
如果已经开启了系统防火墙,还需要开放3306端口。首先,查看防火墙状态:
sudo ufw status
如果防火墙处于活动状态,可以使用以下命令开放3306端口:
sudo ufw allow 3306/tcp
更改MySQL的远程连接用户权限
默认情况下,MySQL仅允许本地用户连接,所以我们需要更改MySQL的远程连接用户权限。使用以下命令进入MySQL:
sudo mysql -u root -p
然后执行以下命令:
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '<password>';
%
表示允许任意IP连接MySQL,<password>
为MySQL的root用户密码,这里需要替换成实际的密码。这个命令允许root用户从任何主机连接到MySQL服务器,并且拥有所有权限。
重启MySQL服务
最后,需要重新启动MySQL服务,以使配置生效:
sudo service mysql restart
现在,MySQL已经开放了3306端口和远程访问权限。
示例说明
假设你想让一台远程主机访问你的MySQL服务器。你需要先修改MySQL的配置文件,然后重启MySQL服务:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld.cnf文件中修改bind-address
,将127.0.0.1
改为0.0.0.0
:
bind-address = 0.0.0.0
保存并退出后,重启MySQL服务:
sudo service mysql restart
然后,你需要在防火墙中开放3306端口:
sudo ufw allow 3306/tcp
最后,你需要通过授予root
用户远程连接权限,允许远程主机连接到你的MySQL服务器。使用以下命令:
sudo mysql -u root -p
在MySQL中执行以下命令:
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '<password>';
其中,%
表示允许任意IP连接MySQL,<password>
为MySQL的root用户密码。
现在,你的MySQL服务器可以被远程主机连接了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限 - Python技术站