Lost connection to MySQL server at 'reading authorization packet', system error: 0

1.进入Mysqld

如果已经设置Mysql/Bin环境变量,直接在CMD里输入命令,如果没有设置Mysql环境变量,去Mysql安装目录的Bin文件夹里运行

F:\AppServ\MySQL\bin\mysql.exe -u root -p

其中root是用户名,然后就可以进入Mysql命令行环境了

2.以后的每一句Mysql命令,每次都要以分号;为结束标识,而不是以回车。

3.注意,,每次都需要重启Mysql才可以使设置生效!!

当然了,如果你直接在Mysql安装目录的 my.ini加上设置值,则可以在Mysql启动时加载设置。比如connect_timeout = 120

然后是需要更改什么参数解决这个问题

当WEB服务器负载高的时候,经常会出现这种错误,

原因:

MySQL默认connect_timeout是5秒,超过了这个时间MySQL的server端就会返回“Bad handshake”。

解决办法:

1.大多数时候设置"set global connect_timeout=60;"是可以解决问题的;

我们可以通过执行“SHOWSTATUS LIKE 'aborted%'”,可以观察到 Variable_name Value
Aborted_clients 6
Aborted_connects 15010

觉得是否要增加connect_timeout的时间,"Aborted_connects"将会随着服务端放弃客户端初始连接而增加。如果"Aborted_connects"很大,并且不断增加,就需要增加"connect_timeout".

2.在MySQL的配置文件中[mysqld]添加"skip-name-resolve",减少域名解析的时间
3.部署服务器端的网络要好,至少大于100Mbps/s
4.如果是在调用mysql_query的时候出现的问题,那就需要把"net_read_timeout"的时间调成30秒,或者60秒,或者更大的值
5.如果还不能解决问题,那估计是你的SQL语句中含有BLOB这种大类型,我们就需要增加"max_allowed_packet"的值了

(0)

相关推荐

  • Lost connection to MySQL server at 'reading authorization packet', system error: 0

    1.进入Mysqld 如果已经设置Mysql/Bin环境变量,直接在CMD里输入命令,如果没有设置Mysql环境变量,去Mysql安装目录的Bin文件夹里运行 F:\AppServ\MySQL\bin\mysql.exe -u root -p 其中root是用户名,然后就可以进入Mysql命令行环境了 2.以后的每一句Mysql命令,每次都要以分号:为结束标识,而不是以回车. 3.注意,,每次都需要重启Mysql才可以使设置生效!! 当然了,如果你直接在Mysql安装目录的 my.ini加上设置

  • MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)

    最近服务器很不稳定,于是重装了mysql 和php 服务,但是接着却遇到了很头疼的麻烦. 远程连接mysql是总是提示: 复制代码 代码如下: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 很明显这是连接初始化阶段就丢失了连接的错误. google半天大多是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句. 但是我的配置文件并没有配

  • Lost connection to MySQL server during query的解决

    Error: Lost connection to MySQL server during query 错误信息很明显了,在查询的时候丢失了和MYSQL数据库服务器的连接. MYSQL不稳定.

  • MySQL server has gone away 问题的解决方法

    mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入). 产生这个问题的原因有很多,总结下网上的分析: 原因一. MySQL 服务宕了 判断是否属于这个

  • 解决mysql报错:Data source rejected establishment of connection, message from server: \"Too many connectio

    目录 报错 原因 解决 查看mysql版本 查看当前mysql最大连接数限制 确定连接数不够原因 修改最大连接数 命令设置 修改my.cnf文件 总结 最近在做压力测试嘛,需要逐步增加用户量做验证,每个用户单独创建数据库进行连接,就要不断去创建数据库,这个报错也很容易理解,mysql连接数不够用了 报错 报错信息如下: "SQLState":"08004","vendorCode":1040,"detailMessage":&

  • php 不能连接数据库 php error Can't connect to local MySQL server

    测试的php文件 <?php $link=mysql_connect('localhost','root','zz') or die(mysql_error()); mysql_select_db('test') or die('no db'); mysql_query('SET NAMES utf8'); echo 99; ?> 运行后报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 但在 命令行中

  • php 不能连接数据库 php error Can't connect to local MySQL server

    测试的php文件 <?php $link=mysql_connect('localhost','root','zz') or die(mysql_error()); mysql_select_db('test') or die('no db'); mysql_query('SET NAMES utf8'); echo 99; ?> 运行后报错 Can't connect to local MySQL server through socket '/tmp/mysql.sock' 但在 命令行中

  • Can't connect to MySQL server on localhost (10061)解决方法

    首先检查MySQL 服务没有启动>如果没有启动,则要启动这个服务. 昨天,重起服务器后出现MySQL 'localhost' (10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法.大体如下: 解决办法: 第一步 删除c:\windows\下面的my.ini 第二步 打开c:\mysql\bin\winmysqladmin.exe 输入用户名 和密码 第三步 在dos下 输入 mysqld-nt -remove 删除服

  • master and slave have equal MySQL server ids

    蚊子今天下午搭了一主三从的mysql复制,结果所有服务器都配置好后,发现从上报如下的错误 复制代码 代码如下: Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-i

  • MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket

    在安装好了MySQL之后,使用了新的配置文件后,MySQL服务器可以成功启动,但在登陆的时候出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket,即无法通过socket连接到mysql服务器,同时提供了socket文件的位置.下面是这个问题的描述与解决办法. 1.故障现象 复制代码 代码如下: [root@SZDB mysqldata]# mysql -uroot -p123456 Warning: U

随机推荐