相关疑难解决方法(0)

MySQL错误1153 - 获得的数据包大于'max_allowed_pa​​cket'字节

我正在导入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 max-allowed-packet

417
推荐指数
10
解决办法
40万
查看次数

SQL错误1406列的数据太长

我试图在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&#233;tails</a></li><li>Panavision Prague - <a href="#" id="offices_linkPanavisionPrague">D&#233;tails</a></li><li>Panavision Manchester - <a href="#" id="offices_linkPanavisionManchester">D&#233;tails</a></li><li>Panavision Alga &amp; Cinecam - <a href="#" id="offices_linkPanavisionAlga">D&#233;tails</a></li><li>Panavision Rh&ocirc;ne-Alpes - <a href="#" id="offices_linkPanavisionRhoneAlpes">D&#233;tails</a></li><li>Panavision Marseille - <a …
Run Code Online (Sandbox Code Playgroud)

mysql longtext

8
推荐指数
2
解决办法
6万
查看次数

发送STMT_PREPARE数据包时出错.PID = 2

我不知道为什么我遇到这个错误.

我有以下脚本:

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

php mysql laravel eloquent laravel-4

7
推荐指数
2
解决办法
1万
查看次数

避免 Node.js 中 EPIPE 错误的最大查询长度

我正在使用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 个月内尚未分配给某人。

那么保证交付的查询的实际大小是多少?

bulkinsert load-data-infile node.js node-mysql

6
推荐指数
1
解决办法
4308
查看次数

PHP - 获取数据包长度

我目前正在处理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)

php sockets udp

4
推荐指数
1
解决办法
1913
查看次数

com.mysql.jdbc.PacketTooBigException

我有一个大问题!当我这样做:

 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_pa​​cket变量修改为32MB.停止并重新启动服务器但是eclipse给了我同样的错误!

我能做什么?

java mysql database database-connection jdbc

3
推荐指数
2
解决办法
3万
查看次数

有没有办法通过PHP更改wait_timeout和max_allowed_pa​​cket?

可能重复:
如何检查和设置max_allowed_pa​​cket mysql变量

我有一些数据库问题,我想增加我的max_allowed_packet计时器和减少wait_timeout.有没有办法通过PHP设置它ini_set ( 'memory_limit', '32M' );或类似的东西?

php mysql

3
推荐指数
1
解决办法
1万
查看次数