Debian 12.6 内网独立数据库服务器专业部署与优化指南

Debian 12.6 内网独立数据库服务器专业部署与优化指南

本文详细指导如何在Debian 12.6系统上部署高性能MariaDB 10.6内网数据库服务器,特别针对2核1.5G内存配置优化,涵盖安全设置、性能调优、防火墙配置及阿里云ECS专属优化方案。

1. 系统安全基础配置

修改SSH端口增强安全性

# 备份原始SSH配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup # 修改SSH端口为12345 sudo sed -i 's/#Port 22/Port 12345/' /etc/ssh/sshd_config # 重启SSH服务 sudo systemctl restart ssh # 验证新端口连接(保持当前会话直至确认新端口可用) ssh -p 12345 your_username@服务器IP
重要提示:修改SSH端口后,请确保防火墙或安全组已正确配置,避免无法远程连接服务器。

2. MariaDB 10.6 安装与配置

安装MariaDB数据库服务

# 更新系统并安装MariaDB sudo apt update sudo apt upgrade -y sudo apt install mariadb-server mariadb-client -y # 启动并设置开机自启 sudo systemctl start mariadb sudo systemctl enable mariadb

安全初始化MariaDB

# 运行安全脚本 sudo mysql_secure_installation

按照提示设置root密码并完成安全配置。

3. 深度性能优化配置

创建专用优化配置文件

sudo nano /etc/mysql/mariadb.conf.d/99-internal-optimization.cnf

添加以下针对2核1.5G内存的优化配置:

[mysqld] # 基础设置 server-id = 1 log_bin = /var/log/mysql/mariadb-bin expire_logs_days = 0 max_binlog_size = 100M binlog_format = ROW # 禁用二进制日志(内网环境可选) skip-log-bin disable-log-bin # 内存优化核心设置 innodb_buffer_pool_size = 768M innodb_log_file_size = 128M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT # 连接和线程优化 max_connections = 150 thread_cache_size = 32 thread_stack = 192K thread_handling = pool-of-threads # 表设置 table_open_cache = 2000 table_definition_cache = 1000 open_files_limit = 65535 # InnoDB高级优化 innodb_file_per_table = 1 innodb_read_io_threads = 4 innodb_write_io_threads = 4 innodb_thread_concurrency = 0 innodb_buffer_pool_instances = 2 innodb_adaptive_hash_index = ON # 查询优化 query_cache_type = 0 query_cache_size = 0 tmp_table_size = 128M max_heap_table_size = 128M join_buffer_size = 2M sort_buffer_size = 2M read_buffer_size = 1M read_rnd_buffer_size = 1M # 性能监控 performance_schema = ON performance-schema-instrument = 'statement/sql/%=ON' performance-schema-consumer-statements-digest = ON # 网络和连接优化 skip_name_resolve = 1 connect_timeout = 60 wait_timeout = 600 interactive_timeout = 600 max_allowed_packet = 256M # 日志设置 slow_query_log = 1 slow_query_log_file = /var/log/mysql/mariadb-slow.log long_query_time = 2 log_queries_not_using_indexes = 0 log_slow_admin_statements = 1 log_slow_slave_statements = 1

4. 数据库与用户管理

创建数据库和用户账户

sudo mysql -u root -p

执行以下SQL命令:

-- 创建业务数据库 CREATE DATABASE aaaa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE bbbb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE cccc CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建远程root用户(限内网使用) CREATE USER 'root'@'%' IDENTIFIED BY '你的强密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; -- 创建专用应用用户 CREATE USER 'aaaa'@'%' IDENTIFIED BY 'aaaaa'; CREATE USER 'bbbb'@'%' IDENTIFIED BY 'bbbbb'; CREATE USER 'cccc'@'%' IDENTIFIED BY 'ccccc'; -- 授予相应数据库权限 GRANT ALL PRIVILEGES ON aaaa.* TO 'aaaa'@'%'; GRANT ALL PRIVILEGES ON bbbb.* TO 'bbbb'@'%'; GRANT ALL PRIVILEGES ON cccc.* TO 'cccc'@'%'; -- 刷新权限 FLUSH PRIVILEGES; EXIT;

配置远程访问

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address修改为:

bind-address = 0.0.0.0

5. 防火墙安全配置

方案A:使用UFW防火墙(传统方案)

# 安装UFW sudo apt install ufw -y # 设置默认策略 sudo ufw default deny incoming sudo ufw default allow outgoing # 允许特定内网IP访问服务端口 sudo ufw allow from 192.168.1.101 to any port 12345 sudo ufw allow from 192.168.1.101 to any port 3306 # 启用UFW sudo ufw enable # 查看防火墙状态 sudo ufw status verbose

方案B:阿里云ECS安全组方案(推荐)

阿里云用户专属优化:如果您使用阿里云ECS,强烈建议使用安全组替代UFW。安全组在阿里云网络底层实现,完全不消耗实例资源,可为您的2核1.5G内存服务器节省约5%的系统资源。

安全组配置步骤:

  1. 登录阿里云控制台 → ECS实例
  2. 进入「网络与安全」→「安全组」
  3. 为您的实例所在安全组添加入站规则:
    • 授权策略:允许
    • 协议类型:自定义TCP
    • 端口范围:12345(SSH)
    • 授权对象:192.168.1.101/32
    • 优先级:1
  4. 同样添加3306端口(MariaDB)的规则
  5. 确保默认规则为拒绝所有入站访问

检查与卸载系统防火墙(如使用阿里云安全组)

# 检查已安装的防火墙组件 sudo ufw status sudo iptables -L -n -v --line-numbers sudo systemctl status firewalld 2>/dev/null || echo "Firewalld未安装" dpkg -l | grep -E "^(ii|rc) (ufw|iptables-persistent|firewalld)" # 停止并禁用UFW(如已安装) sudo ufw disable sudo systemctl stop ufw sudo systemctl disable ufw # 清空iptables规则(如已配置) sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X sudo rm -f /etc/iptables/rules.v4 /etc/iptables/rules.v6 # 卸载防火墙软件包(可选) sudo apt-get remove --purge ufw iptables-persistent firewalld -y sudo apt-get autoremove -y
重要警告:只有在阿里云安全组已正确配置并测试无误后,才能卸载系统防火墙。错误配置可能导致服务器直接暴露在公网中。

6. 服务重启与验证

# 重启MariaDB应用配置 sudo systemctl restart mariadb sudo systemctl enable mariadb # 检查服务状态 sudo systemctl status mariadb # 检查错误日志 sudo tail -f /var/log/mysql/error.log # 验证远程连接(从192.168.1.101测试) mysql -u root -p -h 数据库服务器IP

7. 高级维护与监控

创建自动化维护脚本

sudo nano /usr/local/bin/mysql-optimizer.sh

添加以下内容:

#!/bin/bash # 内网数据库自动维护脚本 /usr/bin/mysql -u root -p你的密码 -e "FLUSH TABLES;" /usr/bin/mysql -u root -p你的密码 -e "FLUSH QUERY CACHE;" /usr/bin/mysql -u root -p你的密码 -e "RESET QUERY CACHE;" # 每周优化所有数据库 if [ $(date +%u) -eq 1 ]; then for db in aaaa bbbb cccc; do /usr/bin/mysql -u root -p你的密码 -e "OPTIMIZE TABLE $db.wp_options, $db.wp_posts, $db.wp_postmeta;" done fi echo "$(date): 内网数据库优化完成" >> /var/log/mysql-optimizer.log

设置定时任务:

sudo chmod +x /usr/local/bin/mysql-optimizer.sh sudo crontab -e

添加:

0 3 * * * /usr/local/bin/mysql-optimizer.sh 0 4 * * 1 find /var/log/mysql -name "*.log.*" -mtime +7 -delete

8. 性能测试验证

# 安装测试工具 sudo apt install sysbench -y # 创建测试数据库 sudo mysql -u root -p -e "CREATE DATABASE sbtest;" # 运行基准测试 sysbench oltp_read_write --table-size=1000000 --mysql-db=sbtest \ --mysql-user=root --mysql-password=你的密码 prepare sysbench oltp_read_write --table-size=1000000 --mysql-db=sbtest \ --mysql-user=root --mysql-password=你的密码 \ --time=300 --max-requests=0 --threads=8 run sysbench oltp_read_write --table-size=1000000 --mysql-db=sbtest \ --mysql-user=root --mysql-password=你的密码 cleanup

优化总结与建议

关键优化点

  1. 内存优化:768MB InnoDB缓冲池,充分利用可用内存
  2. 并发优化:针对多连接场景优化线程和连接参数
  3. I/O优化:调整日志和缓存设置减少磁盘I/O
  4. 网络优化:使用阿里云安全组节省系统资源
  5. 维护自动化:定期优化确保长期稳定性

注意事项

  • 生产环境建议保留二进制日志用于数据恢复
  • 定期监控数据库性能,根据实际负载调整参数
  • 设置自动化备份策略,确保数据安全
  • 阿里云安全组配置后,务必测试规则有效性
  • 考虑使用监控工具如Percona Monitoring and Management

通过以上配置,您的内网MariaDB数据库服务器将在保证安全性的同时,实现最佳性能表现。


本文著作权归万事屋所有,转载请保留出处:https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖