解决MySql数据库远程访问Access denied for user: xxx@%' to database ‘datatest’ 问题

本文介绍了当遇到MySQL远程访问权限错误时的排查步骤及解决方案,包括检查用户访问权限、配置用户权限、刷新权限以及验证配置正确性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日常记录:在新建项目的时候出现了这个问题:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user: 'sariel@%' to database 'datatest'

主要有几点原因

第一:用户是否能够远程访问到这个数据库,具体可以用Navicat for MySQL之类的工具先进行访问,

也可以考虑https://jingyan.baidu.com/article/4f7d57128e965f1a201927e4.html(我倒是没用过这种方法)

若访问失败,则是因为这个用户没有访问权限导致。

在数据库服务器上,登录数据库

 

mysql -uroot -p

然后执行

GRANT ALL PRIVILEGES ON *.* TO sariel@’%’ IDENTIFIED BY ’000000′;

参数说明: ALL PRIVILEGES表示赋给远程登录用户的权限,ALL PRIVILEGES表示所有的权限,可以单独或组合赋select,update,insert,delete权限;

  *.*:第一个*表示要赋权的数据库名,*表示全部数据库了,第二个*表示数据库下的表名,同理,*表示全部表,也可以根据需求限制表;

sariel表示要赋权的用户;

%表示远程登录的IP,如果要限制登录IP的话,这里就添允许登录的IP,比如192.18.1.99等,%表示不限制IP);

000000是用户远程登录的密码。

如果出现:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%’ IDENTIFIED BY ’000000′' at line 1

表示你是复制粘贴过去的,注意单引号的格式,采用英文半角。

最后执行:FLUSH PRIVILEGES;

再次测试,如果能访问成功,代表数据库可以被远程连接。

 

再次启动服务进行测试,如果依旧出现这个问题,检查jdbc.properties中的参数

jdbc.url=jdbc:mysql://localhost:3306/datatest?useUnicode=true&characterEncoding=utf8
jdbc.username = sariel
jdbc.password = 000000
检查地址,端口,数据库名称,用户名,密码这五个参数是否正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SarielAngel

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

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

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

打赏作者

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

抵扣说明:

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

余额充值