我试图通过phpMyAdmin导入一个大的sql文件…但它一直显示错误
“MySql服务器已经消失”
怎么办呢?
我试图通过phpMyAdmin导入一个大的sql文件…但它一直显示错误
“MySql服务器已经消失”
怎么办呢?
当前回答
确保mysqld进程不会因为systemd这样的服务管理器而重新启动。
我在《流浪》中遇到过这个问题。配置调整没有帮助。原来这是系统杀死我的服务每次当它占用太多的内存。
其他回答
我更新了“max_allowed_packet”到1024M,但它仍然不能工作。结果发现我的部署脚本正在运行:
mysql --max_allowed_packet=512M --database=mydb -u root < .\db\db.sql
如果要这样做,请确保从命令行显式地指定一个更大的数字。
当我导入16gb的SQL文件时,我有这个错误和其他相关的错误。对我来说,编辑my.ini并在[mysqld]部分中设置以下内容(基于几个不同的帖子):
max_allowed_packet = 110M
innodb_buffer_pool_size=511M
innodb_log_file_size=500M
innodb_log_buffer_size = 800M
net_read_timeout = 600
net_write_timeout = 600
如果你在Windows下运行,转到控制面板,服务,并查看MySQL的详细信息,你会看到my.ini在哪里。然后在编辑并保存my.ini后,重新启动mysql服务(或重新启动计算机)。
如果您正在使用HeidiSQL,您还可以使用它来设置其中的一些或全部。
对我来说,这个解决方案不可行,所以我执行了
SET GLOBAL max_allowed_packet=1073741824;
在我的SQL客户端。
如果不能改变MYSql服务运行,你应该停止服务,并改变my.ini文件中的变量。
例如:
max_allowed_packet=20M
我得到一个类似的错误。要解决这个问题,只需打开my.ini文件,在第36行更改最大允许数据包大小的值。max_allowed_packet = 20M
我也有同样的问题
$image_base64 = base64_encode(file_get_contents($_FILES['file']['tmp_name']) );
$image = 'data:image/jpeg;base64,'.$image_base64;
$query = "insert into images(image) values('".$image."')";
mysqli_query($con,$query);
在phpmyadmin的\xampp\mysql\bin\my.ini文件中,我们只得到
[mysqldump]
max_allowed_packet=110M
这只是mysqldump -u root -p dbname。我通过替换上面的代码来解决我的问题
max_allowed_packet=110M
[mysqldump]
max_allowed_packet=110M