mysql在ubuntu上的网络配置是什么
小樊
33
2025-12-14 07:43:20
MySQL 在 Ubuntu 的网络配置要点
一 配置文件与关键参数
配置文件查找顺序可用命令查看:mysql --help | grep ‘Default options’ ,常见路径包括:/etc/mysql/my.cnf 、/etc/my.cnf 、~/.my.cnf 。Ubuntu 上服务器主配置通常在:/etc/mysql/mysql.conf.d/mysqld.cnf (或旧版在 /etc/mysql/my.cnf )。关键网络参数位于 [mysqld] 段:
bind-address :监听地址;127.0.0.1 仅本机,0.0.0.0 监听所有地址,或指定内网 IP(如 192.168.1.100 )。
port :监听端口,默认 3306 。
其它常用项:datadir (数据目录,常见 /var/lib/mysql )、socket (套接字,常见 /var/run/mysqld/mysqld.sock )、character-set-server 、collation-server 、max_connections 、innodb_buffer_pool_size 。修改后需重启使生效。
二 本地与远程访问的推荐做法
本地连接(默认):保持或设置 bind-address = 127.0.0.1 ,仅通过 localhost 或 127.0.0.1 访问,使用 Unix 套接字或本地端口,安全性更高。
远程连接(按需开启):
将 bind-address 设为 0.0.0.0 (或指定服务器内网 IP),允许来自其他主机的连接。
配置用户权限,至少创建一个可远程连接的账户(避免使用 root 远程):
登录 MySQL:mysql -u root -p
创建并授权(示例允许某网段):
CREATE USER ‘remote_user’@‘192.168.1.%’ IDENTIFIED BY ‘StrongPass!’;
GRANT ALL PRIVILEGES ON . TO ‘remote_user’@‘192.168.1.%’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如需从任意主机连接(安全性较低,仅测试或受控网络):将主机部分设为 ‘%’ 。
防火墙放行:如使用 ufw ,执行:sudo ufw allow 3306/tcp ;如使用云服务器,还需在安全组放行 3306/tcp 。
重启服务:sudo systemctl restart mysql 。完成后可用客户端测试:mysql -h <服务器IP> -u remote_user -p 。
三 常用命令与验证
服务状态与启停:sudo systemctl status mysql 、sudo systemctl start|restart mysql 。
监听地址与端口验证:
查看端口监听:sudo ss -tlnp | grep 3306 (应看到 0.0.0.0:3306 或指定 IP 的监听)。
本机 IP 获取:hostname -I 或 ip addr show 。
远程连通性测试(从客户端):mysql -h <服务器IP> -u <用户> -p ,或使用 telnet <服务器IP> 3306 检查端口可达性。
日志排查:MySQL 错误日志默认在 /var/log/mysql/error.log ,配置或权限错误时可优先查看。
四 安全与最佳实践
最小权限原则:为远程访问创建专用账户 ,按库/表/列授予所需权限,避免使用 root 远程登录。
限制来源网段:优先使用 ‘user’@‘192.168.1.%’ 这类网段限制,而非 ‘%’ 。
加密传输:在公网或不可信网络中启用 SSL/TLS 加密连接。
防火墙与云安全组:仅开放必要来源 IP 和端口 3306/tcp ,并及时修补系统及 MySQL 漏洞。