dabian11中的mariadb应该是10.5版本,没必要就千万必要升级了,不吃资源的稳定版本是最佳方案。
查看当前maraidb版本:
apt show mariadb-server

初次登陆以空密码方式登陆:
# 无密码登录
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
innodb_buffer_pool_size = 384M1G 机器安全上限,负责缓存数据表索引;严禁超过 512M,否则 OLS+PHP 会挤压内存触发 OOM 被杀。max_connections = 80OLS 网站并发不大,默认 150 太高,防止大量空闲连接吃掉内存。innodb_flush_log_at_trx_commit = 2平衡性能与数据安全;网站场景推荐,断电最多丢失 1 秒数据。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.*












没有回复内容