zoukankan      html  css  js  c++  java
  • 解决MySql数据库远程访问Access denied for user: xxx@%' to database ‘datatest’ 问题

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

    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
    检查地址,端口,数据库名称,用户名,密码这五个参数是否正确

  • 相关阅读:
    Linux下几种文件传输命令 sz rz sftp scp
    jqGrid subGrid配置 如何首次加载动态展开所有的子表格
    MySQL使用规范
    Navicat连接MySQL报错2059
    微信小程序
    完美解决 ios10 及以上 Safari 无法禁止缩放的问题
    html5利用getObjectURL获取图片路径上传图片
    Vue的单页应用中如何引用单独的样式文件
    用JS添加和删除class类名
    APP中的 H5和原生页面如何分辨、何时使用
  • 原文地址:https://www.cnblogs.com/shisanye/p/15686648.html
Copyright © 2011-2022 走看看