在Ubuntu服务器中如何允许远程访问MySQL
时间:2020-07-27 12:59:14 来源:igfitidea点击:
在本教程中,我们将学习如何允许远程访问Ubuntu Server中的MySQL服务器。
对于教程,我正在使用Ubuntu Server 20.04,但我们可以在任何先前版本的Ubuntu Linux上使用它。
在Ubuntu启用MySQL Server远程连接
默认情况下,Ubuntu上的MySQL Server在本地接口上运行,这意味着不允许远程访问MySQL服务器。
要启用到MySQL Server的远程连接,我们需要更改MySQL配置文件中的“绑定地址”的值。
首先,打开“/etc/mysql/mysql.conf.d/mysqld.cnf”文件(/etc/mysql/my.cnf在ubuntu 14.04和早期版本中)。
vim /etc/mysql/mysql.conf.d/mysqld.cnf
在'[mysqld]'下找到下面行,
bind-address = 127.0.0.1
并改成
bind-address = 0.0.0.0
然后,重新启动Ubuntu MySQL服务器:
systemctl restart mysql.service
现在Ubuntu Server将允许远程访问MySQL服务器,但仍然需要配置MySQL用户允许从任何主机访问。
例如,当我们创建MySQL用户时,我们应该允许从任何主机访问。
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
或者允许特定的IP地址,
CREATE USER 'username'@'192.168.1.100' IDENTIFIED WITH mysql_native_password BY 'password';
排除ubuntu mysql远程访问
要确保在所有接口上侦听MySQL Server,请按如下方式运行“netstat”命令。
netstat -tulnp | grep mysql
输出应显示MySQL Server在套接字上运行0.0.0.0:3306'而不是'127.0.0.1:3306'。
我们还可以尝试从远程主机“Telnet”到MySQL端口3306.
例如,如果Ubuntu Server的IP地址为192.168.1.10,则从远程主机执行,
telnet 192.168.1.10 3306
我们还可以从远程计算机运行“nmap”命令,以检查MySQL端口3306是否已打开到远程主机。
nmap 192.168.1.10
输出应列出MySQL端口3306,状态应打开。
如果MySQL端口3306未打开,则存在阻止端口3306的防火墙。