首页主机资讯Ubuntu MariaDB网络配置与优化

Ubuntu MariaDB网络配置与优化

时间2025-12-22 23:39:04发布访客分类主机资讯浏览999
导读:Ubuntu MariaDB网络配置与优化 一 基础网络配置 修改 MariaDB 监听地址 编辑配置文件:/etc/mysql/mariadb.conf.d/50-server.cnf,在 [mysqld] 段将 bind-addres...

Ubuntu MariaDB网络配置与优化

一 基础网络配置

  • 修改 MariaDB 监听地址
    编辑配置文件:/etc/mysql/mariadb.conf.d/50-server.cnf,在 [mysqld] 段将 bind-address 设为 0.0.0.0(监听所有 IPv4)或指定内网地址;如需仅本地使用可保留 127.0.0.1。同时确保未启用 skip-networking(该选项会禁用 TCP 网络)。修改后重启服务:sudo systemctl restart mariadb。完成后可用 ss -tulnp | grep 3306netstat -an | grep 3306 检查监听是否生效。
  • 防火墙放行
    使用 ufwsudo ufw allow 3306/tcpsudo ufw reload;如使用 firewalldsudo firewall-cmd --permanent --add-service=mysql & & sudo firewall-cmd --reload
  • 创建远程访问账户与授权
    登录数据库:sudo mysql -u root -p,创建用户并授权(示例:用户 remote_user、密码 your_password、允许来自任意主机 %):
    CREATE USER ‘remote_user’@‘%’ IDENTIFIED BY ‘your_password’;
    GRANT ALL PRIVILEGES ON . TO ‘remote_user’@‘%’ WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    如需仅允许内网网段,可将 ‘%’ 替换为如 ‘192.168.1.%’
  • 连接测试
    从客户端测试:mysql -h < 服务器IP> -u remote_user -p。若仍失败,复核监听地址、防火墙与账户主机限制。

二 安全与访问控制

  • 运行安全初始化:sudo mysql_secure_installation,按提示设置 root 密码、移除匿名用户、禁止 root 远程登录、删除 test 数据库等。
  • 最小权限原则:避免使用 ‘root’@‘%’ 远程登录,按业务创建专用账户并限制来源网段与库表权限。
  • 网络最小化暴露:仅在内网开放 3306/TCP,必要时通过跳板机或 SSH 隧道访问;云环境建议配合 安全组仅放通可信来源。

三 网络与连接性能优化

  • 连接与会话
    • 合理设置 max_connections(避免过大导致线程争用与内存膨胀),并结合应用连接池(如 HikariCP、连接复用)控制实际并发。
    • 适度提高 thread_cache_size,减少线程创建/销毁开销。
  • 超时与缓冲
    • 调整 wait_timeoutinteractive_timeout,避免空闲连接长期占用。
    • 根据业务负载调整 max_allowed_packet,避免大包被截断或报错。
  • 日志与诊断
    • 启用 slow_query_loglong_query_time,配合 EXPLAINSHOW PROCESSLIST 定位慢查询与阻塞会话。
  • 存储与引擎
    • 使用 InnoDB 并优先配置 innodb_buffer_pool_size(建议为可用内存的约 50%–70%,视负载与实例共存情况微调)。
    • 适度增大 innodb_log_file_size 提升写吞吐;在允许一定持久性权衡的场景下,可将 innodb_flush_log_at_trx_commit=2 提升性能。
  • 监控与容量
    • 使用 mysqladmin statusSHOW STATUSSHOW PROCESSLIST 与系统工具(如 top/htop、iostat、ss)持续观察连接数、线程、I/O 与查询延迟,结合容量规划逐步调优。

四 快速排障清单

  • 服务与监听:确认 sudo systemctl status mariadb 为 active;用 ss -tulnp | grep 3306 检查是否在 0.0.0.0:3306 监听。
  • 防火墙/安全组:核对 ufw/firewalld 或云安全组已放行 3306/TCP,来源网段正确。
  • 账户权限:确认存在允许远程的来源主机(如 ‘user’@‘%’‘user’@‘192.168.1.%’),并已 FLUSH PRIVILEGES
  • 端口连通性:从客户端执行 mysql -h -u -p;必要时在服务器侧抓包或临时关闭防火墙验证。
  • 错误码速查:ERROR 1130 (HY000) 多为来源主机未被授权;ERROR 2003 多为端口不通或监听地址不当。

五 推荐的配置片段与核对项

  • 配置片段(/etc/mysql/mariadb.conf.d/50-server.cnf 的 [mysqld] 段,按需调整)
    • bind-address = 0.0.0.0
    • port = 3306
    • skip-networking = 0
    • max_connections = 200
    • thread_cache_size = 50
    • wait_timeout = 300
    • interactive_timeout = 300
    • slow_query_log = 1
    • slow_query_log_file = /var/log/mysql/mariadb-slow.log
    • long_query_time = 1
    • innodb_buffer_pool_size = 4G(示例值,建议为内存的 50%–70%)
    • innodb_log_file_size = 256M
    • innodb_flush_log_at_trx_commit = 2
    • max_allowed_packet = 64M
  • 修改后执行:sudo systemctl restart mariadb 并用 ss -tulnp | grep 3306 复核监听。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB网络配置与优化
本文地址: https://pptw.com/jishu/777926.html
Ubuntu MariaDB故障排查思路 Ubuntu MariaDB主从复制配置教程

游客 回复需填写必要信息