Debian11中默认安装的mariadb设置root密码,并优化适配1G内存的Openlitespeed web服务器 - 技术宅银魂 - 科技改变生活 - 万事屋

Debian11中默认安装的mariadb设置root密码,并优化适配1G内存的Openlitespeed web服务器

dabian11中的mariadb应该是10.5版本,没必要就千万必要升级了,不吃资源的稳定版本是最佳方案。

查看当前maraidb版本:

apt show mariadb-server

20260813015602726-image

初次登陆以空密码方式登陆:

# 无密码登录
mariadb -u root

执行 SQL 修改密码(MariaDB 10.5 语法)

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';
FLUSH PRIVILEGES;
exit;

完事,重启mariadb:

systemctl restart mariadb

对了对了,核心是要优化这个Mariadb10.5适配1G内存的web服务器。

默认配置路径在这里:

# 默认主配置
/etc/mysql/mariadb.conf.d/50-server.cnf

先做个备份:

cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.bak

然后编辑:

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

根据下面这个配置改

[mysqld]
# 基础
user            = mysql
pid-file        = /run/mysqld/mysqld.pid
socket          = /run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

# 字符集
character-set-server = utf8mb4
collation-server     = utf8mb4_unicode_ci

# 关闭DNS解析,提速
skip-name-resolve

# InnoDB核心(1G内存重点)
default-storage-engine = InnoDB
innodb_buffer_pool_size = 384M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_autoinc_lock_mode = 2

# 查询缓存(MariaDB10.5 query cache已废弃,不要开启)
query_cache_type = 0
query_cache_size = 0

# 连接设置
max_connections = 80
wait_timeout = 300
interactive_timeout = 300

# 排序/临时表
sort_buffer_size = 2M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
join_buffer_size = 1M
tmp_table_size = 64M
max_heap_table_size = 64M

# 慢查询日志(调试用,稳定后可关闭)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
log-queries-not-using-indexes

# 二进制日志,不需要主从同步建议关闭
#server-id               = 1
#log_bin                 = /var/log/mysql/mariadb-bin
#log_bin_index           = /var/log/mysql/mariadb-bin.index
#expire_logs_days        = 7
  1. innodb_buffer_pool_size = 384M 1G 机器安全上限,负责缓存数据表索引;严禁超过 512M,否则 OLS+PHP 会挤压内存触发 OOM 被杀。
  2. max_connections = 80 OLS 网站并发不大,默认 150 太高,防止大量空闲连接吃掉内存。
  3. innodb_flush_log_at_trx_commit = 2 平衡性能与数据安全;网站场景推荐,断电最多丢失 1 秒数据。
  4. tmp_table_size = max_heap_table_size = 64M 防止大临时表写入磁盘,同时限制单表内存占用。

重启生效 + 检查是否正常启动

systemctl restart mariadb
systemctl status mariadb

配套 OLS + PHP 侧配合建议(防止争抢内存)

memory_limit = 128M
max_execution_time = 120
opcache.enable=1
opcache.memory_consumption=64
opcache.max_accelerated_files=4000

还有,如果非必要,可以考虑关闭log-bin日志,这玩意真心吃硬盘

找到这一段(之前注释过,确认保持注释状态)

#server-id               = 1
#log_bin                 = /var/log/mysql/mariadb-bin
#log_bin_index           = /var/log/mysql/mariadb-bin.index
#expire_logs_days        = 7

最稳当的是在上面内容下面加skip-log-bin

#server-id               = 1
#log_bin                 = /var/log/mysql/mariadb-bin
#log_bin_index           = /var/log/mysql/mariadb-bin.index
#expire_logs_days        = 7
skip-log-bin

如果存在 `log_bin = ON`、`log_bin_basename` 这类参数也要一并注释

好了,重启mariadb

systemctl restart mariadb

登录 mariadb:

mariadb -u root -p

执行 SQL:

SHOW VARIABLES LIKE 'log_bin';

输出必须是:

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

顺带一嘴,清理旧bin文件(如果有)

rm -f /var/log/mysql/mariadb-bin.*

 

 

请登录后发表评论

    没有回复内容

万事屋新帖