连接MySQL数据常见问题

错误信息1 :ERROR 1045 (28000): Access denied for user ‘usera‘@‘localhost‘ (using password:YES)
错误信息2  :ERROR 1045 (28000): Access denied for user ‘usera‘@‘localhost‘ (using password:NO) 

总结

总结:对于 ERROR 1045 (28000): Access denied for user ‘root‘@‘127.0.0.1‘  此类错误返回时, (using password: ?)中?的

关键字是YES还是NO,关键不在于用户是否存在,密码是否正确,它的结果取决于登录时,用户对于密码有没有字符串的输入,如果没有,MySQL数据库验证后,若出错返回此类信息,则应是 (using password: NO),若用户对密码有字符串的输入,返回的则是

(using password: YES)。
原因1 : 客户端远程访问的用户账号并未创建

检查

以管理员ROOT登录后,show grants for ‘user‘@’IP‘; 或者 select user from mysql.user; 确认用户账号是否存在。

mysql> show grants for ‘test‘@‘127.0.0.1‘;
ERROR 1141 (42000): There is no such grant defined for user ‘test‘ on host ‘127.0.0.1‘
mysql>

返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘test‘ on host ‘127.0.0.1‘
说明,没有jtsec用户,或者没有对jtsec用户进行在192.168.8.123远程访问的授权。

解决

mysql>  grant all privileges on *.* to ‘test‘@‘127.0.0.1‘ identified by ‘test‘ with grant option;

mysql> flush privileges;

mysql> show grants for ‘test‘@‘127.0.0.1‘;

mysql> select user,host from mysql.user;
原因2 : 用户账号存在,但未对其所在的客户端的IP进行远程访问授权允许

检查

以管理员ROOT登录后 show grants for ‘user‘@‘IP‘;

mysql> show grants for ‘root‘@‘127.0.0.1‘;

ERROR 1141 (42000): There is no such grant defined for user ‘root‘ on host ‘127.0.0.1‘

返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘root‘ on host ‘127.0.0.1‘
说明,没有root用户,或者没有对root用户进行在127.0.0.1远程访问的授权。

mysql> show grants for ‘root‘@‘localhost‘;
或者直接查询mysql的user用户表select user,host from mysql.user;
mysql> select user,host from mysql.user;

解决

进行root用户的远程访问授权,可以授权到指定的客户端IP,也可以授权为所有IP都可访问(host值为%)。

授权为所有IP都使用用户root,密码root,来远程访问数据库

mysql> GRANT ALL PRIVILEGES ON *.* TO‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;

mysql> flush privileges;

再次进行授权的查询

mysql> show grants for ‘root‘@‘%‘;

再次查询授权表记录
mysql> select user,host,password from mysql.user;
注意:
mysql5.7用下面这条语句查询
mysql> select user,host,authentication_string from mysql.user;
原因3 : 用户账号授权访问的密码不正确

检查

以管理员ROOT登录后, select user,host, authentication_string  from mysql.user;
mysql> select user,host, authentication_string from mysql.user;

解决

使用正确的访问密码进行访问即可。
时间: 2024-10-17 19:24:44

连接MySQL数据常见问题的相关文章

Java基础103 Hibernate技术连接MySQL数据和Oracle数据库的配置方法

1.Hibernate技术连接MySQL数据 User.hbm.xml 配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernat

在PHP系统里连接MySQL 数据访问,+ + + + + 数据删除

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

远程连接mysql数据慢的问题

由于公司没有服务器,买的阿里云的服务器用于开发,所以就在本地连接服务器的mysql. 连接很慢,打开表也很慢,一开始没多想,以为是网络慢而已. 最近,开发经常要使用navicat连接数据库,实在是太慢了,5.6秒打开一个表,所以去网上搜了搜看是否有解决办法. 发现了这个参数 skip-name-resolve 添加到my.ini里,果然远程连接很快了,不过问题也来了,本地连不上了. 原来这个参数是 “禁止掉DNS的查询” ,所以原来的使用localhost连接就不行了,需要换成127.0.0.1

关于jdbc连接MySQL数据问题

1.解压MySQL后配置环境变量 MYSQL_HOME:D:\win7\Program Files(x86)\mysql-5.6.21-win32(mysql根目录) 添加path:%MYSQL_HOME%\bin 2.配置mysql-connector-java-5.1.22 这个需要特别注意 最简单的 而且不会出错的方法是将mysql-connector-java-5.1.22-bin.jar放在tomcat/lib下 然后在Eclipse 找到一个project右键属性 如图所示 添加Li

连接Mysql提示Can’t connect to local MySQL server through socket的解决方法

mysql,Mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误: 1 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 这是由于修改mysql服务的了socket文件mysql.sock位置,而导致无法通过mysql socket文件连接到mysql服务引起的,具体解决办法如下:1.查看mysql服务的sock

【知了堂学习笔记】Eclipse,Myeclipse连接MySQL数据库和Oracle数据库

一.连接MySQL数据库 1.由于Eclipse,Myeclipse都没有连接MySQL数据的架包,我们需要自行下载MySQL连接架包 mysql-connector(官方链接:http://dev.mysql.com/downloads/connector/j/5.0.html),下载版本最好是最新版. 2.下载好后,复制到你的项目里任何位置,然后右键架包选择 Build path -> add to Build path,然后点击项目的Libraries里的Referenced Librar

Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是由于MySQL不准许远程连接. 修改方法如下: 1:在服务端MySQL文件夹下找到my.ini文件.修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项) 2:重新启动MySQL服务. 测试连接情况: 如果没有给

PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can&#39;t connect to local MySQL server through socket &#39;MySQL&#39; (2)

如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2) 测试代码如下: <?php try { $dsn = 'mysql:dbname=php-note;host=localhost;port=3306;charset=utf8'; $username = 'root'; $password = 'root'; new PDO( $dsn,

ASP 连接 MySQL 数据库两种方法

一般都是用myodbc来连接.首先,在系统中安装 Mysql 的ODBC数据库驱动.如安装稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connector/odbc/3.51.html. 下载安装好后.在控制面板-->管理工具-->数据源 (ODBC)中的“驱动程序”页中如果有MySQL ODBC 3.51 Driver就说明驱动已经安装成功,就可以开始写程序了. 下面是我测试时使用的程序,里面有说明就不再介绍了. 方法一: <% '设置M