如何限定只能从特定IP访问Mysql数据库

6人浏览 / 0人评论 / 添加收藏

Access denied for user 'root'@'10.20.10.10' to database 'xxdb' errorCode 1044.

生产环境运行报错如上,是通过该ip无法访问数据库,没有权限。那如何通过特定ip来访问数据库,其他ip则限制访问数据库。

  • MySQL 地址:10.20.10.10:3306
  • 含义:使用 root 账号,从 IP 10.20.10.13 访问数据库 xxdb,权限被拒绝
  • ❗注意:不是密码错误!密码错是 1045;1044 是账号没有该数据库的访问权限

关键点

  1. root 账号允许从 10.20.10.13 登录 MySQL,但没有给 xxdb 库授权
  2. druid 线程反复创建连接失败,服务数据库池初始化失败。

登录 MySQL 服务器执行授权(在 10.20.10.10 机器上 mysql 客户端执行)

 

-- 授予 root@应用服务器IP 对 xxdb 的全部权限 

GRANT ALL PRIVILEGES ON xxdb.* TO 'root'@'10.20.10.13'; 

FLUSH PRIVILEGES;

如果想允许 root 从任意 IP 访问:

GRANT ALL PRIVILEGES ON ywmalldb.* TO 'root'@'%';
FLUSH PRIVILEGES;

查看当前 root 账号权限确认:

SHOW GRANTS FOR 'root'@'10.20.10.13';

 

全部评论