Navicat 连接 ProxySQL 错误分析:1044 - Access denied for user ‘root’@‘%’ to database ‘db_order_plus、’

🚨 错误分析:1044 - Access denied for user ‘root’@‘%’ to database ‘db_order_plus’

该错误表明 用户 rootMySQL 主库或从库 上没有对 db_order_plus 数据库 的访问权限。

即使您已经在 ProxySQL 中配置了用户,但如果 MySQL 主库或从库的权限不足,也会导致这个错误。


完整解决方案步骤

我将提供以下步骤来解决这个问题:

  1. 检查并授予 MySQL 主库和从库上的权限
  2. 检查 ProxySQL 的用户配置
  3. 重新加载 ProxySQL 配置
  4. 验证连接

🔧 步骤 1:在 MySQL 主库和从库上授予权限

请确保 root 用户主库从库 上有权限访问 db_order_plus 数据库

1️⃣ 登录 MySQL 主库
mysql -u root -p
2️⃣ 授予 root 用户权限

执行以下 SQL:

GRANT ALL PRIVILEGES ON db_order_plus.* TO 'root'@'%';
FLUSH PRIVILEGES;
3️⃣ 验证权限

执行以下命令,查看用户权限:

SHOW GRANTS FOR 'root'@'%';

正确的输出示例

GRANT ALL PRIVILEGES ON `db_order_plus`.* TO 'root'@'%'

🔧 步骤 2:检查 ProxySQL 的用户配置

确保 ProxySQL 中的 root 用户 配置正确,并可以访问 db_order_plus 数据库

1️⃣ 登录到 ProxySQL 管理接口
mysql -u admin -p -h 127.0.0.1 -P 6032
2️⃣ 查看用户配置

执行以下查询:

SELECT * FROM mysql_users;

确保用户配置正确,类似如下:

usernamepassworddefault_hostgroupdefault_schema
rootroot10db_order_plus
3️⃣ 更新用户配置

如果有必要,更新 root 用户 的配置:

UPDATE mysql_users SET default_schema='db_order_plus' WHERE username='root';

LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;

🔧 步骤 3:重新加载 ProxySQL 配置

确保 ProxySQL 加载了最新的用户配置。

在 ProxySQL 管理界面中执行:
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;

🔧 步骤 4:验证数据库是否存在

请确认 db_order_plus 数据库是否在主库和从库中存在。

在主库中执行:
SHOW DATABASES;

如果数据库不存在,请创建它:

CREATE DATABASE db_order_plus;

🔧 步骤 5:检查主从同步状态(如果使用主从架构)

确保 主库和从库 之间的用户和权限已经同步。

在从库中执行:
SHOW SLAVE STATUS\G

确保 Slave_IO_RunningSlave_SQL_Running 都是 Yes


验证连接

完成上述步骤后,在 Navicat 中重新连接 ProxySQL

参数
主机名127.0.0.1 或 ProxySQL 的 IP 地址
端口6033
用户名root
密码root

🎯 总结

步骤描述
授予用户权限在 MySQL 主库和从库上为用户授予权限
检查 ProxySQL 用户配置确保 ProxySQL 中的用户配置正确
重新加载 ProxySQL 配置确保 ProxySQL 加载了最新的用户配置
检查数据库是否存在确保目标数据库 db_order_plus 已创建
检查主从同步状态确保主库和从库之间的同步状态正常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值