centos 7默认源不提供mariadb 10.6,需添加阿里云镜像源(/etc/yum.repos.d/mariadb.repo)后执行yum install -y mariadb-server mariadb-client,再运行mariadb-secure-installation配置安全选项、systemctl enable --now mariadb启动服务。

直接装系统默认源里的 mariadb-server 通常拿不到 10.6,CentOS 7/8、Rocky 9 等发行版仓库里多是 10.3–10.5。想稳定用上 10.6,必须换源或手动部署——但别急着下二进制包,先看你的发行版和需求是否真需要它。
用官方 YUM/APT 仓库装 MariaDB 10.6(推荐给 CentOS/RHEL/Alma/Rocky)
这是最省心、服务单元和路径都预设好的方式,比自己写 systemd 文件或改 socket 路径靠谱得多。
- 先确认系统架构:
uname -m得到x86_64或aarch64,再选对应镜像 - 以 CentOS 7 + 阿里云镜像为例,创建
/etc/yum.repos.d/MariaDB.repo,内容必须严格匹配架构和版本:[mariadb] name = MariaDB baseurl = https://mirrors.aliyun.com/mariadb/yum/10.6/centos7-amd64 gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1
-
yum clean all && yum makecache刷新后,执行yum install -y MariaDB-server MariaDB-client(注意大小写:是MariaDB-server,不是mariadb-server) - 启动前务必检查
/var/log/mariadb/mariadb.log是否为空——如果初始化失败,日志里会明确报libaio.so.1缺失或datadir权限不对
Debian/Ubuntu 用户别硬套 YUM 配置
APT 源结构不同,apt install mariadb-server 默认装的是 10.5 或更低。要上 10.6,得用 MariaDB 官方 APT setup 脚本:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 运行
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.6 - 脚本会自动添加源、导入 GPG 密钥、更新
sources.list.d,之后apt update && apt install -y mariadb-server就能装上 10.6 - 注意:Ubuntu 22.04+ 的
systemd默认禁用mysql用户的 home 目录,若初始化时报chown: invalid user: ‘mysql:mysql’,先确认用户存在:id mysql,不存在就补useradd -r -s /sbin/nologin -M mysql
mysql_secure_installation 不只是设密码
这一步跳过等于把数据库裸奔在公网,尤其当你改过 bind-address 或开了远程访问。
- 它实际干四件事:删匿名用户、删
test库、禁止root@%登录、重置root@localhost密码 - 如果执行时卡在 “Set password for user root?”,说明你之前已设过密码且没清空
~/.my.cnf,先rm -f ~/.my.cnf再试 - 输出最后出现
Thanks for using MariaDB!才算真正完成;若中途报ERROR 2002 (HY000): Can't connect to local MySQL server through socket,大概率是 socket 路径不一致,见下一条
Socket 连接失败:查 socket 路径比重启服务更有效
90% 的 “Can’t connect through socket” 都不是服务没起来,而是客户端和服务端对不上路。
- 查服务端监听的 socket:
sudo grep "socket" /etc/my.cnf /etc/mysql/my.cnf 2>/dev/null,常见路径是/var/lib/mysql/mysql.sock - 查客户端默认找哪:
mariadb --help | grep "Default options",输出里带socket的那行才是它实际去哪找 - 临时修复:加软链,例如服务端在
/var/lib/mysql/mysql.sock,客户端却找/var/run/mysqld/mysqld.sock,就运行sudo ln -sf /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock - 长期方案:统一改配置,在
[client]和[mysqld]段都显式写socket = /var/lib/mysql/mysql.sock
真正麻烦的不是装不上,而是装完发现 mysql -u root -p 进不去、systemctl status mariadb 显示 active but not running、或者远程连了三次都超时——这些基本都卡在 socket、用户权限、或安全脚本没跑完。盯住日志和路径,比反复重装快得多。










