首页主机资讯Ubuntu MariaDB连接问题怎么排查

Ubuntu MariaDB连接问题怎么排查

时间2026-01-20 04:45:04发布访客分类主机资讯浏览891
导读:Ubuntu MariaDB 连接问题排查清单 一 快速自检 确认服务是否运行:执行sudo systemctl status mariadb,若未运行则sudo systemctl start mariadb;修改配置后记得sudo s...

Ubuntu MariaDB 连接问题排查清单

一 快速自检

  • 确认服务是否运行:执行sudo systemctl status mariadb,若未运行则sudo systemctl start mariadb;修改配置后记得sudo systemctl restart mariadb
  • 本地能否登录:执行mysql -u root -p,能登录说明数据库本体与本地认证基本正常。
  • 远程还是本机:本机直连失败多为账户/权限/套接字;远程失败优先排查网络与访问授权。
  • 明确报错关键词:如ERROR 2003 (HY000)ERROR 1045 (28000)10061、或Plugin ‘unix_socket’ is not loaded,可快速定位方向。

二 常见错误与对应处理

症状与错误码 可能原因 处理要点
服务未启动或端口未监听 MariaDB 未运行/未监听 3306 systemctl 启动;必要时查看监听与端口占用
ERROR 2003 (HY000) Can’t connect to MySQL server 服务未启动、网络不通、端口未放行、配置绑定到 127.0.0.1 启动服务;放通 3306;检查 bind-address
Navicat 10061 / Can’t connect to MySQL server 远程未授权、端口不对、防火墙/安全组拦截 授权远程用户;确认端口 3306;放行防火墙/安全组
ERROR 1045 (28000) Access denied 用户名/密码错误、host 不匹配、plugin 认证方式限制 核对凭据;检查用户 host 字段;必要时调整 plugin 与密码
Plugin ‘unix_socket’ is not loaded root 默认用 unix_socket 插件,仅本地 socket 可登录 改用 socket 登录或切换为 mysql_native_password 认证

三 分步排查流程

  1. 服务与端口
  • 查看状态:sudo systemctl status mariadb;未运行则启动。
  • 监听端口:执行ss -lntp | grep 3306netstat -tulpen | grep 3306,确认 mysqld 在 0.0.0.0:3306127.0.0.1:3306 监听。
  1. 本地登录验证
  • 执行mysql -u root -p;若报Plugin ‘unix_socket’ is not loaded,可先以 socket 登录(如 sudo mysql)后执行:
    • 查看插件与账户:SELECT Host,User,plugin FROM mysql.user WHERE User=‘root’;
    • 切换为密码认证:UPDATE mysql.user SET plugin=‘mysql_native_password’ WHERE User=‘root’; (按需设置密码)
    • 使权限生效:FLUSH PRIVILEGES;
  1. 远程连接三要素
  • 配置监听:编辑**/etc/mysql/mariadb.conf.d/50-server.cnf**,将bind-address改为0.0.0.0(或注释掉该行),然后重启。
  • 账户授权:在 mysql 中执行(示例创建新用户并授权指定库):
    • CREATE USER ‘dbadmin’@‘%’ IDENTIFIED BY ‘StrongPass!’;
    • GRANT ALL PRIVILEGES ON my_db. TO ‘dbadmin’@‘%’; *
    • FLUSH PRIVILEGES;
  • 防火墙/云安全组:
    • UFW:sudo ufw allow 3306/tcp
    • firewalld:sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent & & sudo firewall-cmd --reload
    • 云服务器需同时在安全组放行 3306 入站。
  1. 连通性测试
  • 本机:mysql -h 127.0.0.1 -P 3306 -u dbadmin -p
  • 远程:mysql -h < 服务器IP> -P 3306 -u dbadmin -p
  • 端口探测:nc -vz < 服务器IP> 3306telnet < 服务器IP> 3306
  1. 日志定位
  • MariaDB 错误日志:查看**/var/log/mysql/error.log**,可快速发现启动失败、权限拒绝、绑定地址等问题。

四 安全与最佳实践

  • 避免直接用root@‘%’;为应用创建最小权限专用账户,并限制来源 host(如公司网段)。
  • 仅在内网或受控网络开放 3306;公网访问建议使用SSH 隧道或跳板机,降低暴露面。
  • 修改bind-address与授权后务必重启并复核日志;变更前做好配置与数据备份。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB连接问题怎么排查
本文地址: https://pptw.com/jishu/786675.html
Debian进程与其他系统进程如何协同工作 Debian进程升级后如何测试

游客 回复需填写必要信息