You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB 10.6通过Socket连接失败:Access Denied问题求助

MariaDB Socket连接权限拒绝问题排查与解决

一、先修复mariadb.socket启动失败问题

从状态输出可知,mariadb.socket启动失败是因为mariadb.service已在运行,socket激活机制被拒绝。执行以下命令修复:

sudo systemctl stop mariadb.service
sudo systemctl restart mariadb.socket
sudo systemctl start mariadb.service

或者直接让systemd通过socket激活管理服务:

sudo systemctl stop mariadb.service
sudo systemctl enable --now mariadb.socket

二、排查unix_socket认证失败问题

1. 确认用户认证配置

登录MariaDB(用root或有权限的账号),执行SQL检查用户的认证插件:

SELECT user, host, plugin FROM mysql.user WHERE user = 'xuserbackup';

确保plugin字段返回unix_socket。如果不是,重新执行创建命令并刷新权限:

GRANT ALL PRIVILEGES ON *.* TO `xuserbackup`@`localhost` IDENTIFIED VIA unix_socket WITH GRANT OPTION;
FLUSH PRIVILEGES;

2. 检查套接字文件权限

查看/run/mysqld/mysqld.sock的权限和归属:

ls -l /run/mysqld/mysqld.sock

正常应归属mysql:mysql,权限至少允许目标用户访问。如果权限异常,执行:

sudo chown mysql:mysql /run/mysqld/mysqld.sock
sudo chmod 777 /run/mysqld/mysqld.sock

注:生产环境可将xuserbackup加入mysql组,再把套接字权限设为srwxrwxr-x,更安全。

3. 匹配系统用户与数据库用户

unix_socket认证要求执行mysql命令的系统用户与数据库用户名一致,或该系统用户被授权。因此需切换到xuserbackup系统用户执行连接命令:

sudo -u xuserbackup mysql --protocol=socket -S /run/mysqld/mysqld.sock

三、验证连接

完成上述操作后,重新执行连接命令,确认是否能成功登录。

内容的提问来源于stack exchange,提问作者Mortred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:11:09