第 1 行的 ERROR 2006 (HY000):MySQL 服务器已消失
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13323833/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ERROR 2006 (HY000) at line 1: MySQL server has gone away
提问by Sangeeta
ERROR 2006 (HY000) at line 1: MySQL server has gone away
第 1 行的 ERROR 2006 (HY000):MySQL 服务器已消失
I am facing the same problem. I am trying to restore mysqldump file to my machine. The file have size of 2.7 MB. I am getting "ERROR 2006 (HY000) at line 1: MySQL server has gone away" error. I increased size of max_allowed_packet and wait_timeout. But nothing worked.
我面临同样的问题。我正在尝试将 mysqldump 文件恢复到我的机器上。该文件的大小为 2.7 MB。我在第 1 行收到“错误 2006 (HY000):MySQL 服务器已消失”错误。我增加了 max_allowed_packet 和 wait_timeout 的大小。但没有任何效果。
Following are the content of my file (my-medium.ini), please suggest me where I am wrong. My installation have various ini files, and I have modified, my-large, my-medium, my-small, my-huge, my-innodb-heavy-4G. Thanks in advance!!
以下是我的文件(my-medium.ini)的内容,请指出我错在哪里。我的安装有各种ini文件,我修改过,我的大,我的中,我的小,我的大,我的innodb-heavy-4G。提前致谢!!
# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is C:\mysql\data) or
# ~/.my.cnf to set user-specific options.
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 512M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
wait_timeout = 6000
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# where you replace <host>, <user>, <password> by quoted strings and
# <port> by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables' values below will be ignored and
# overridden by the content of the master.info file, unless you shutdown
# the slave server, delete master.info and restart the slaver server.
# For that reason, you may want to leave the lines below untouched
# (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id = 2
#
# The replication master for this slave - required
#master-host = <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user = <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password = <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port = <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin
# Point the following paths to different dedicated disks
#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C:\mysql\data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:\mysql\data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 512M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
采纳答案by Sangeeta
I just found that this error was happening because I was using "windows power-shell" instead of command prompt :)) Solved!!!
我刚刚发现发生此错误是因为我使用的是“windows power-shell”而不是命令提示符:)) 解决了!!!
回答by user1906383
Change 3 settings in my.cnf file
更改 my.cnf 文件中的 3 个设置
Under [mysqld]
在 [mysqld] 下
max_allowed_packet = 64M
wait_timeout = 6000
Under [mysqldump]
在 [mysqldump] 下
max_allowed_packet = 64M
That should fix it
那应该解决它
回答by strictlyk3v
This usually means that you have "incompatibilities with the current version of MySQL Server", see mysql_upgrade. I ran into this same issue and simply had to run:
这通常意味着您“与当前版本的 MySQL 服务器不兼容”,请参阅mysql_upgrade。我遇到了同样的问题,只需要运行:
mysql_upgrade --password
The documentation states that, "mysql_upgrade should be executed each time you upgrade MySQL".
该文档指出,“每次升级 MySQL 时都应执行 mysql_upgrade”。
回答by ALi Maken
Under [mysqld]
I have tried the following:
在[mysqld]
我已经尝试了以下内容:
max_allowed_packet = 2096M
restarted mysqld and it did not work, however what worked for me is to set max_allowed_packet
globally from command line and then run the export from dump, it went through without any issues.
重新启动 mysqld 并且它不起作用,但是对我max_allowed_packet
有用的是从命令行全局设置然后从转储运行导出,它没有任何问题。
You can start from smaller packet size depending on database, I also did reimport my database with same size.
您可以根据数据库从较小的数据包大小开始,我也确实重新导入了具有相同大小的数据库。
For Export:-
出口:-
mysqldump --opt --user=confluenceUser --password='<passwd>' --max_allowed_packet=2147483648 confluencedb | gzip > confluencedb.sql.gz
For Import:-
进口:-
mysql> SET GLOBAL max_allowed_packet=2147483648;
Query OK, 0 rows affected, 1 warning (0.00 sec)
zcat confluence.sql.gz | mysql -uconfluence -p<passwd> confluencedb
回答by Selay
Answers above can help, just adding my suggestion in addition as you can just bypass restrictions by directing using source command to import. As an alternative to mysql -u username -p database_name < file.sql, you can first login to mysql, select database and then import by source as below.
上面的答案可以提供帮助,只需添加我的建议,因为您可以通过使用 source 命令进行导入来绕过限制。作为mysql -u username -p database_name < file.sql的替代,您可以先登录mysql,选择数据库,然后按源导入,如下所示。
mysql -u username -p
mysql> use db_name;
mysql> source path-to/file.sql;