ERROR 2013 (HY000): Lost connection to MySQL server的解决方法
来源:互联网 发布:破解版java游戏大全 编辑:程序博客网 时间:2024/06/05 11:48
(1)<a target=_blank href="http://www.cnblogs.com/smallstone/archive/2010/04/29/1723838.html" style="color: rgb(202, 0, 0); text-decoration: none;">http://www.cnblogs.com/smallstone/archive/2010/04/29/1723838.html</a>
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);"><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; line-height: 25px;"></span><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span id="" style="color: rgb(0, 128, 192);">1、进入mysql,创建一个新用户root,密码为root</span>:</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> 格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码"; grant select,update,insert,delete on *.* to <a target=_blank href="mailto:root@192.168.1.12" style="color: rgb(0, 51, 153); text-decoration: none; padding-bottom: 2px; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: rgb(0, 51, 153);">root@192.168.1.12</a> identified by "root";</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> <span style="color: rgb(0, 128, 192);">原先数据表结构</span></p><blockquote style="border: 2px solid rgb(239, 239, 239); color: rgb(51, 51, 51); margin-left: 25px; padding: 5px 10px; margin-top: 10px; margin-bottom: 10px; font-style: italic; background-color: initial;"><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);">mysql> use mysql;Database changedmysql> select host,user,password from user;+-----------+------+-------------------------------------------+| host | user | password |+-----------+------+-------------------------------------------+| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |+-----------+------+-------------------------------------------+</span></p></blockquote><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> <span style="color: rgb(0, 128, 192);">执行上述语句后结果</span></p><blockquote style="border: 2px solid rgb(239, 239, 239); color: rgb(51, 51, 51); margin-left: 25px; padding: 5px 10px; margin-top: 10px; margin-bottom: 10px; font-style: italic; background-color: initial;"><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);">mysql> use mysql;Database changedmysql> select host,user,password from user;+--------------+------+-------------------------------------------+| host | user | password |+--------------+------+-------------------------------------------+| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B || 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |+--------------+------+-------------------------------------------+2 rows in set (0.00 sec)</span></p></blockquote><p id="" style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);"> </span></p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> 可以看到在user表中已有刚才创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> <span style="color: rgb(0, 128, 192);">(1)</span>有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);">2、实现远程连接(授权法)</span></p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> 将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。 update user set host = ’%’ where user = ’root’;</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"> 将权限改为ALL PRIVILEGES</p><blockquote style="border: 2px solid rgb(239, 239, 239); color: rgb(51, 51, 51); margin-left: 25px; padding: 5px 10px; margin-top: 10px; margin-bottom: 10px; font-style: italic; background-color: initial;"><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);">mysql> use mysql;Database changedmysql> grant all privileges on *.* to root@'%' identified by "root";Query OK, 0 rows affected (0.00 sec)</span></p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="color: rgb(0, 128, 192);">mysql> select host,user,password from user;+--------------+------+-------------------------------------------+| host | user | password |+--------------+------+-------------------------------------------+| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B || 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B || % | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |+--------------+------+-------------------------------------------+3 rows in set (0.00 sec)</span></p></blockquote><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;">这样机器就可以以用户名root密码root远程访问该机器上的MySql.</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;"><span style="color: rgb(0, 128, 192);">3、实现远程连接(改表法)</span></p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;">use mysql;</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;">update user set host = '%' where user = 'root';</p><p style="margin: 5px auto; padding-top: 0px; padding-bottom: 0px;">这样在远端就可以通过root用户访问Mysql.</p><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">
通过上面的方法,在mysql的user表中建立了一个用户后,刷新权限,就可以通过远程连接mysql了(通过用户的客户端的机器连接到服务器上面的mysql服务器),不过依然出现了下面的错误:当通过 TCP/IP 连接 MySQL 远程主机时,出现 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令行中直接打 mysql 命令,能够顺利连上 MySQL,执行查询语句也比较正常,但如果执行 STOP SLAVE; 命令时就随机出现 ERROR 2013 (HY000): Lost connection to MySQL server during query 问题。而如果把操作命令写到脚本文件再去执行该脚本文件的话,则必然出现 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
要是无论通过什么途径远程访问都出现错误可以认为是系统有防火墙之类的限制,但现在这种奇怪的抽筋现象让人百思不得其解。最后找到的解决方法是在 my.cnf 里面的 [mysqld] 段增加一个启动参数skip-name-resolve问题消失,原因如下:
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">http://www.ixpub.net/thread-1326843-1-1.html
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">所谓反向解析是这样的:mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。添加skip-name-resolve以后就跳过着一个过程了。
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);"><img src="http://hi.csdn.net/attachment/201109/15/0_13160497342mzG.gif" alt="" style="border: none; max-width: 100%;" />
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">添加上述的参数后,就直接跳过了。希望对同行有帮助。
0 0
- ERROR 2013 (HY000): Lost connection to MySQL server的解决方法
- ERROR 2013 (HY000): Lost connection to MySQL server的解决方法
- ERROR 2013 (HY000): Lost connection to MySQL server during query
- ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error:
- ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error:
- MySQL升级后:ERROR 2013 (HY000): Lost connection to MySQL server during query
- Mysql 错误解决:ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet'
- mysql升级报错:ERROR 2013 (HY000): Lost connection to MySQL server during query
- mysql连接远程数据库出现 ERROR 2013 (HY000) Lost connection to MySQL server at 'reading authorization packet',
- mysql5.5一插入数据就提示ERROR 2013 (HY000): Lost connection to MySQL server during query
- MySQL error 2013 : Lost connection to MySQL server during query
- mysql5.5一插入数据就提示ERROR 2013 (HY000): Lost connection to MySQL server during query,且mysql服务自动关闭
- 关于MySQL的2013-Lost connection to MySQL server at 'warting for initial communication packet'.error 0
- MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决
- Mysql导入Sql文件时报Error Code: 2013 - Lost connection to MySQL server during query
- 解决MySQL Error (2013): Lost connection to MySQL server at waiting for initial communication packet
- mysql无法连接远程数据库(ERROR 2013:Lost connection to MySQL server)
- MySQL error: 2013, “Lost connection to MySQL server at 'reading initial communication packet', syste
- 判断程序是否处于后台的方法
- Android 双缓冲技术
- Android之ViewPager(引导界面)(0)
- 如何理解中断的上半部和下半部
- linux下配置IP地址
- ERROR 2013 (HY000): Lost connection to MySQL server的解决方法
- 安卓屏幕适配(各种方案组合)
- ios学习笔记:从Java转ios项目总结
- 工厂方法模式(FactoryMethod)——创建型模式
- springmvc+mybatis 使用 POIFSFileSystem 读取excel中的日期 问题
- ListView的性能优化之convertView和viewHolder
- oracle如何查询表空间信息
- Android aapt使用方法
- apple watch学习