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。