Ubuntu MariaDB网络配置要点
默认情况下,MariaDB仅监听本地回环接口(127.0.0.1),需修改配置文件调整绑定地址。编辑/etc/mysql/mariadb.conf.d/50-server.cnf
(Ubuntu下MariaDB主配置文件路径),找到bind-address
参数,将其值从127.0.0.1
改为0.0.0.0
(允许所有网络接口连接)或服务器具体IP(仅允许特定IP段连接)。修改后需重启MariaDB服务使配置生效:sudo systemctl restart mariadb
。
Ubuntu系统默认启用ufw
防火墙,需开放MariaDB的默认端口(3306)以允许外部连接。执行以下命令:
sudo ufw allow 3306/tcp
(允许TCP协议的3306端口);
sudo ufw reload
(重新加载防火墙规则使变更生效)。
若使用iptables
,可添加规则:sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
。
默认root用户仅允许本地登录,需创建专门用于远程访问的用户并授予相应权限。登录MariaDB:sudo mysql -u root -p
,执行以下SQL命令:
remote_user
、your_password
替换为实际用户名和密码):CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
*.*
表示所有数据库的所有权限,可根据需求限制为特定数据库,如test_db.*
):GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
。根据应用需求调整MariaDB的最大连接数,避免因连接数不足导致拒绝服务。编辑/etc/mysql/mariadb.conf.d/50-server.cnf
,在[mysqld]
部分添加或修改max_connections
参数(如设置为500):max_connections = 500
。
可选:调整空闲连接超时时间,释放闲置资源(如wait_timeout = 28800
、interactive_timeout = 28800
,单位为秒,表示8小时后自动关闭空闲连接)。修改后重启服务:sudo systemctl restart mariadb
。
mysql -u root -p
命令登录MariaDB,确认本地连接正常。mysql -h <服务器IP> -u remote_user -p
命令尝试远程连接,若提示“ERROR 1045 (28000): Access denied”需检查用户权限;若提示“Can’t connect to MySQL server”需排查防火墙、绑定地址或网络连通性问题。ping <服务器IP>
检查客户端与服务器的网络连通性;使用telnet <服务器IP> 3306
测试3306端口是否可达(若无法连接,需检查防火墙或服务器端口是否监听)。配置完成后,需确认MariaDB服务处于运行状态:sudo systemctl status mariadb
(显示“active (running)”表示正常)。若服务未启动,使用sudo systemctl start mariadb
启动;若需开机自启,执行sudo systemctl enable mariadb
。