我正在导入MySQL转储并收到以下错误.
$ mysql foo < foo.sql
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes
Run Code Online (Sandbox Code Playgroud)
显然,数据库中有附件,这使得插入非常大.
这是在我的本地机器上,从MySQL软件包安装MySQL 5的Mac.
我在哪里可以更改max_allowed_packet以导入转储?
还有什么我应该设置的吗?
刚刚运行mysql --max_allowed_packet=32M …导致了同样的错误.
我试图在MySQL中执行下面的查询,但每次都得到SQL错误1406数据太长时间的列错误.列数据类型是longtext.有任何想法吗?
UPDATE `my_db`.`my_table` SET `content` = '<div id="primaryContent"><div id="offices_map"></div><!-- #offices_map --><div id="offices_mapControlPanel" class="cf"><ul id="offices_continentLinkList"><li><a href="#" rel="Africa">AFRIQUE</a></li><li><a href="#" rel="Asia">ASIE</a></li><li><a href="#" rel="Australasia">AUSTRALASIE</a></li><li><a href="#" rel="Europe" id="offices_europeLink" class="current">EUROPE</a></li><li><a href="#" rel="NorthAmerica">AMERIQUE DU NORD</a></li><li class="last"><a href="#" rel="SouthAmerica">AMERIQUE DU SUD</a></li></ul><ul id="offices_mapLegend"><li id="offices_mapLegendRedPointer">Bureaux Panavision</li><li id="offices_mapLegendYellowPointer">Agents Panavision</li></ul></div><!-- #offices_mapLegend --><div id="offices_ownedOfficesContactDetails" class="cf"><h2>Bureaux Panavision</h2><ul class="cf"><li class="first"><strong>Panavision Greenford</strong> - pour l''Europe et l''Afrique - <a href="#" id="offices_linkPanavisionGreenford">Détails</a></li><li>Panavision Prague - <a href="#" id="offices_linkPanavisionPrague">Détails</a></li><li>Panavision Manchester - <a href="#" id="offices_linkPanavisionManchester">Détails</a></li><li>Panavision Alga & Cinecam - <a href="#" id="offices_linkPanavisionAlga">Détails</a></li><li>Panavision Rhône-Alpes - <a href="#" id="offices_linkPanavisionRhoneAlpes">Détails</a></li><li>Panavision Marseille - <a …Run Code Online (Sandbox Code Playgroud) 我不知道为什么我遇到这个错误.
我有以下脚本:
foreach($brands as $brand){ // about 600items for this loop
....
....
DB::table('mailing_list')->insert(array(
'email' => $email,
'source' => $source,
'source_url'=> $brand->external_url,
'facebook_url' => $facebook_url,
'instagram_id' => $instagram_username,
'instagram_url' => $instagram_url,
'instagram_followers' => $instagram_followers
));
}
它始终在同一个项目中打破
Error while sending STMT_PREPARE packet. PID=2 (SQL: insert into `mailing_list` (`email`, `source`, `source_url`, `facebook_url`, `instagram_id`, `instagram_url`, `instagram_followers`) values (some@email.com, source, www.url.com, https://www.facebook.com/url, some_username, http://instagram.com/url, 501))
在我执行29个查询之前,现在是34个.
我想更好地理解这个错误:它可能是单个条目打破它,但即使我发布的数据是胡言乱语,实际的看起来很好.
我做了什么:
set_time_limit(3600);
DB::connection()->disableQueryLog();
DB::reconnect(Config::get('database.default')); // this one after each foreach loop
我正在使用felixge/node-mysql模块从 node.js 与 MySQL 数据库进行交互。我在一次请求中向数据库插入大量数据时遇到了问题INSERT。
尽管这里描述了如何使用大型 INSERT 查询向数据库添加 500,000 条记录,但我的脚本因数据量更小而失败,并出现以下错误:
{ [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall:
'write', fatal: true }
Run Code Online (Sandbox Code Playgroud)
我认为这个错误在某种程度上与mysql-node 的 github Load data infile failed with EPIPE for large files中的问题#359有关,该问题自创建以来的最后 5 个月内尚未分配给某人。
那么保证交付的查询的实际大小是多少?
我目前正在处理PHP中的套接字和数据包,并且不知道从哪里开始获取数据包的长度.我试过这个来自GitHub的回购(不记得是哪一个):
private function get_packet_length($socket) {
$a = 0;
$b = 0;
while(true) {
$c = socket_read($socket, 1);
if (!$c) {
return 0;
}
$c = ord($c);
$a |= ($c & 0x7F) << $b++ * 7;
if ($b > 5) {
return false;
}
if (($c & 0x80) != 128) {
break;
}
}
return $a;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这不起作用?我得到int(1).
编辑
private function get_packet_length($socket) {
$a = 0;
$b = 0;
while(true) {
$c = socket_read($socket, 10240);
if (!$c) {
return …Run Code Online (Sandbox Code Playgroud) 我有一个大问题!当我这样做:
String query = "SELECT * FROM utente WHERE confermato=1 and Username='" + username
+ "' AND Password='" + password + "'";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("ind_server/nome_db","user","password");
Run Code Online (Sandbox Code Playgroud)
Eclipse给了我这个错误:
Packet for query is too large (4739923 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
Run Code Online (Sandbox Code Playgroud)
那么,首先:这个查询真的那么大?-.-之后:我必须在ssh中使用哪些命令?这是我第一次有这个东西!提前致谢!
我在服务器上没有root权限!
我试过用这个:
mysql>set global max_allowed_packet=32*1024*1024;
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:ERROR 1227(42000):访问被拒绝; 您需要此操作的SUPER权限
编辑
现在我已将max_allowed_packet变量修改为32MB.停止并重新启动服务器但是eclipse给了我同样的错误!
我能做什么?
我有一些数据库问题,我想增加我的max_allowed_packet计时器和减少wait_timeout.有没有办法通过PHP设置它ini_set ( 'memory_limit', '32M' );或类似的东西?