连接MySQL数据库时常见故障问题的分析与解决_lgxzzz的 ...
来源:http://www.tudoupe.com时间:2021-12-26
Mysql 网络友好型大象经常遇到问题,表明 Mysql 无法连接。 特别贴纸记录了这些问题的发生和原因。
首先,扔砖头给自己
归纳如下:
错误: 无法连接到 Mysql
=============================================================================
ERROR 1045 (2800)(2800): 用户“usera”@“localhost” 访问 (密码: YES)
ERROR 1045 (2800)(2800): 用户“usera”@“localhost” 访问 (密码:NO)
以下是对可能造成这两类不正确资料的情况的初步审查:
当使用 Mysql 连接命令或连接工具连接到远程数据库时,可以返回两种形式的错误信息,详情见下文命令连接。
当连接命令与 Mysql 连接时, 如果向密码提供 -p 参数, 或者如果未指定 -p 参数, 但下一个输入密码时输入字符串, 则返回字符串 。
如果没有提供 -- p 参数, 或者没有 -- p 参数, 但输入下一个密码时没有输入字符, “错误 1” 返回“ 错误 2 ” 如下:
C:Documents and SettingsAdministrator>mysql -uroot -h 192.168.8.88 -proot //带-p参数,并指明密码
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
C:Documents and SettingsAdministrator>mysql -uroot -h 192.168.8.88 -p //带-p参数,在下一步进行密码输入
使用字符串输入输入输入您的密码 : / / /
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
C:Documents and SettingsAdministrator>mysql -uroot -h 192.168.8.88 //不带-p参数
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: NO)
C:Documents and SettingsAdministrator>mysql -uroot -h 192.168.8.88 -p //带-p参数,在下一步进行密码输入
输入您的密码: // 没有字符串输入
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: NO)
上述比较得出一个结论:当使用 Mysql 命令时,如果密码输入行为存在,字符被输入,则验证出错后,错误消息已返回,为了(使用密码:? ))中?的关键字,则返回的是YES,如果您还没有密码输入, 您需要密码输入 。或无密码字符输入,则返回的是NO。
除上述实验比较外,还进行了以下登录比较,并记录了返回的误差指示类型,并验证了上述摘要:
一. 使用现有用户而不输入密码。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: NO)
二. 使用不存在的用户,不输入任何密码。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: NO)
三. 使用现有用户并准确地输入密码。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
四. 使用密码不正确的现有用户。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
五. 使用一个不存在的用户,但从数据库输入密码。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
第六,输入数据库中不存在的密码,使用不存在的用户。
ERROR 1045 (28000): Access denied for user 'root'@'192.168.8.123' (using password: YES)
ERROR 1045 (2800) : 用户“root” 访问@, (using password: ?)中?的
重要词是 " 是 " 或 " 是 " 或 "否 " 。目标不是用户的存在。密码是否正确,它由它登录的时间决定。用户的密码没有字符串输入 。如果没有,这篇文章是我们 MySQL 数据库特别覆盖的一部分。如果返回这类数据有问题,应该是(密码:NO)。如果用户输入字符串作为密码,返回的则是
(using password: YES)。
访问用户“usera”@“localhost” 。
原因1:没有客户远程访问用户账户。
检查 :
用户“ user” @ “ IP” 如何受益; 或分享 Mysql. user 的用户; 验证用户账户的存在?
mysql> show grants for 'jtsec'@'192.168.8.123' ;
ERROR 1141 (42000): There is no such grant defined for user 'jtsec' on host '192.168.8.123'
mysql>
主机上没有为用户“ jtsec” 指定这种 Grant 。
jtsec用户没有jtsec用户或远程访问授权。
mysql> select user,host from mysql.user;
+-------+---------------+
| user | host |
+-------+---------------+
| root | localhost |
+-------+---------------+
1 rows in set (0.00 sec)
mysql>
只有一个用户日志, root, 没有jtsec 的条目, 表明jtsec 在数据库中没有账户 。
第1步:建立用户账户。
mysql> grant all privileges on *.* to 'jtsec'@'192.168.8.123' identified by 'jtsec' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for 'jtsec'@'192.168.8.123';
+---------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for jtsec@192.168.8.123 |
+---------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jtsec'@'192.168.8.123' IDENTIFIED BY PASSWORD '*0B4AB716B6BE11F89101577836F3016D8EEAA217' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select user,host from mysql.user;
+-------+---------------+
| user | host |
+-------+---------------+
| jtsec | 192.168.8.157 |
| root | localhost |
+-------+---------------+
2 rows in set (0.00 sec)
mysql>
原因2:存在用户账户,但无权从客户远程访问IP地址。
检查 :
以 ROOT 管理员身份登录后, 显示“ 用户” @ “ IP” 的赠款 ;
mysql> show grants for 'root'@'192.168.8.123' ;
ERROR 1141 (42000): There is no such grant defined for user 'root' on host '192.168.8.123'
mysql>
主机'上没有为用户“ root ” 指定这种 Grant 。
据称,没有根用户(因为是 MySQL 超级用户而被排除在外),也没有根用户授权远程访问数据库。
将根用户的本地访问许可与以下内容进行比较:
mysql> show grants for 'root'@'localhost' ;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
相反,您可以直接引用 Mysql 的用户列表( 选择用户, 主机来自 Mysql. user; 记录每个用户的访问信息 ) 。
mysql> select user,host from mysql.user;
+-------+---------------+
| user | host |
+-------+---------------+
| root | localhost |
+-------+---------------+
1 rows in set (0.00 sec)
mysql>
仅一个带有用户值根和主机值本地主机的日志,显示根用户只能在当地访问数据库。
程序:给予根用户远程访问授权,允许其访问特定客户IP或所有IP(主机价值%)。
授权使用用户 root 和 密码 root 用于所有 IP 的远程数据库访问
mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
再次进行授权的查询
mysql> show grants for 'root'@'%' ;
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
再次查询授权表记录
mysql> select user,host,password from mysql.user;
+-------+---------------+-------------------------------------------+
| user | host | password |
+-------+---------------+-------------------------------------------+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------+---------------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql>
原因3:允许用户账户访问的密码错误
选中 : 以 ROOT 管理员身份登录后, 第二用户、 主机和 Mysql 密码 。 我不知道你在说什么, 但我不确定你在说什么 。
mysql> select user,host,password from mysql.user;
+-------+---------------+-------------------------------------------+
| user | host | password |
+-------+---------------+-------------------------------------------+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| jtsec | 192.168.8.123 | |
| jtsec | 192.168.8.123 | *0B4AB716B6BE11F89101577836F3016D8EEAA217 |
+-------+---------------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql>
根据搜索结果,根账户与远程访问密码具有相同的本地访问权限。
此 IP 的 jtse 账户有两个远程数据库访问密码, 其中之一是空的( 记录 3) 。
换句话说,使用基于 IP 的客户机的jtsec 账户远程访问数据库有两种可能性:
* 0B4AB716B6BE11F8910577836F3016D8EAA217(安全),
其余输入内容不正确 。
程序:只要有正确的访问密码,进入就足够了。
===================================================================================
2003 错误 (HY00): 在“ ( 10065) ” 上无法连接到 MySQL 服务器
原因是 MySQL 服务器的防火墙失败 。
检查 Linux 的 Pips 规则, 以确定 MySQL 数据库的默认通讯端口 3306 是否尚未发布 。
处理 :
添加相应的放行规则
我在/电子/卫星组合/表格中插入了以下代码:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
或尝试关掉防火墙
chkconfig ip6tables off
chkconfig iptables off
问题描述:
C:Documents and SettingsAdministrator>mysql -uroot -h 192.168.8.88 -proot
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.8.88' (10065)
C:Documents and SettingsAdministrator>
===================================================================================
2003 (HY00): 无法连接到“ hostxx”( 10061) 上的 MySQL 服务器 。
原因是Mysqld数据库服务尚未启动。
在 Unix/ Linux 上检查 Windows 的任务管理器或 ps-aux grep mysql 的任务管理器。 已启动确认服务 。
启动我的sqld服务。
===================================================================================
错误1130:主机 x. 我不知道你在说什么。xx没有被授权 与这个 MySQL 服务签约。
理由:客户无法远程访问Mysql。
选中 : 如果与 Mysql 库用户表相对应的主机包含客户机的 IP 地址(% 允许远程连接而不限制 IP), 请询问本地的 Mysql 服务器 。
将 Mysql 库中的用户表更改如下: 更新用户设置主机 = '%', 用户 = 'XX' ; feto 权限
===================================================================================
错误 1045 (2800) : 用户“ usera” @ localhost 拒绝访问 (密码: NO)
原因:未建立用户账户,远程登录时的登录命令不包括密码项目。
检查: 如何处理“ usera” @ “ localhost” 的赠款; 从 Mysql. user 中选择用户; 确认用户账户的存在 。
第1步:建立用户账户。
===================================================================================
2003 (HY00): 无法连接到“ hostxx”( 10061) 上的 MySQL 服务器 。
原因是 Mysqld 客户端与服务端不匹配 。
在此情况下,客户与远程服务器端口不匹配。
启动我的sqld服务。
===================================================================================
错误 2002 (HY00): 无法通过 locket '/var/lib/mysql/mysql.Sock's 11 连接到本地 MySQL 服务器
原因是 Mysqld的 Mysqld. Sock 不在正确的地方。
处理 :
I'm not sure, d/init.d/mysql 状态
2. 修改权限符号R Mysql:msyql/var/lib/mysql。
3. 编辑/etc/my.cnf (注:数据库第一)
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[client]
socker=/var/lib/mysql/mysql.sock
4.启动数据库
===================================================================================
常用检查步骤。
一、 PING 主机名或 PING 189. I don't know what you're talking about what you're talking. x 确认服务器IP级别通信没有问题。 如果 PING继续, (2) PING不寻求网络专家的帮助 。
二. TELNET 主机名 3306 验证服务器 TCP 级别通信正常运行 。 (您的端口号码可能不是 3306 ) 如果一般规则是真实的, 请检查 Mysqld 是否已经在运行, 防火墙是否堵塞了端口 。
三. 检查用户权限、 显示权限.. 或者第二用户、 主机和 Mysql 密码。 我不知道你在说什么, 但我不确定你在说什么。
===================================================================================
Mysql-u root-p may not 登录使用原密码, 尽管它可以不用原密码使用, 而且必须远程登录原密码 。
错误 1045 (2800) : 用户“ root” @ “ localhost” 拒绝访问 (密码: 是)
原因:不确定;无法确定 Mysql 的新密码管理政策是否会得到实施。
选中 : Mysql- u 根密码登录为空, 远程 Navica Mysql 缺少密码, 密码正确 。
目前,删除本地登录密码。
环境版本: Mysql 14.14 Disrib 5.one.56, 读号6.2的debian-linux-gnu (i486) 。
问题分析(lioncode):Start -->
Mysql.com 存储 MySQL 数据库用户信息。 用户表包含用户名、 密码、 核定范围( 可授权登录的IP、 可进行的那种数据库活动)等信息 。
对于根用户,需要审查表中的适当项目,上述现象的搜索结果如下:
假设在出现这一问题之前,表中的数据如下:
mysql> select user,host,password from mysql.user;
+-------+---------------+-------------------------------------------+
| user | host | password |
+-------+---------------+-------------------------------------------+
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------+---------------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql>
表格中的数据可能看起来是这样的:
mysql> select user,host,password from mysql.user;
+-------+---------------+-------------------------------------------+
| user | host | password |
+-------+---------------+-------------------------------------------+
| root | localhost | |
| root | % | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------+---------------+-------------------------------------------+
2 rows in set (0.00 sec)
mysql>
第一组信息解释了为什么使用原密码在当地登录不可行,但可以在没有密码的情况下登录。
本地登录密码为*81F5E21E35407D884A6CD4A731AEBF6AF-209E1B(加密),远程登录密码为*81F5E21E35407D884A6CD4A731AEBF6AF-209E1B(加密)。
但出于某种原因,本地登录密码被清空,所以无法使用原密码登录。
第二个信息部分解释了为什么远程访问必须用原密码输入的原因。
因为根用户本地登录密码设置和根远程登录密码设置是两个独立的数据集,所以更改本地登录密码并不影响远程登录密码。
<-- End
==================================================================================
错误: 无法连接到 Mysql windows
2003 (HY00): 无法连接到“ hostxx”( 10061) 上的 MySQL 服务器 。
理由:当大量 tcp 港口同时开放时,其中只有一小部分是短暂的, Mysql 可能运行错误的港口,而时间是等待的。
选中 : 默认情况下, 在 Windows 中打开了 5,00 个临时端口, 其使用寿命仅为 120 秒, 导致港口关闭时延迟 120 秒 。
尽量减少不需要的 tcp 港口数量。
修改注册表
==================================================================================
我不知道是否有人 在同一艘船上。
Lost connectiion to MySQL server during query.
根据互联网,答案仍未解决,业主知道吗?
==================================================================================
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
什么问题??
Author: lioncode
CMP: JTSEC-RD
Date: 2012-08-28 18:14
Project: jtsec_one-way_dbsync
Version: v1.0.0
上一篇:win10显示更新出现问题怎么办
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
