2013-07-08 50 views
1

我必须更改max_allowed_packet大小MySQL中使用phpmyadmin,但我不知道该怎么做。当我尝试set global max_allowed_packet=10Mphpmyadmin它给这个错误如何在phpmyadmin中设置max_allowed_pa​​cket?

#1227 - Access denied; you need the SUPER privilege for this operation 

我不能让SUPER特权,因为服务器在我的控制是没有的。

那么,我该如何改变它?

回答

1

你不能。

要动态改变它,就像你试过的SET一样,你需要SUPER权限,这是没有办法解决的。这是一件好事,因为1.设置是全局性的,这意味着它会影响所有的连接,以及2.它可能危及服务器(例如,它使服务器更容易服务器)。如Zak建议的,要永久设置它,您需要访问MySQL配置文件并能够重新启动服务。

但是,真正的问题是,为什么你需要这么高的限制。除非你试图导入大型转储,否则需要这样的限制几乎总是表明首先设计错误的东西。如果您正在导入转储,请尝试一次导入较小的位。

+0

我在我的表中有一个BLOB字段,我试图保存一个10MB的文件,我得到这个max_allowed_pa​​cket错误。那我该如何拯救? – user1390378

+0

您可能想重新考虑将这些大文件全部存储在数据库中(请检查[此问题](http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay)将它们作为普通文件存储的优点)。除此之外,没有直接的解决方法。我能想到的唯一(丑陋的)破解就是将文件分成更小的块,并将每个块存储在一个带有3列的单独表中:主要实体的外键,序列号和blob。 – RandomSeed

+0

我想建议您在自己的计算机上安装WAMP,LAMP,MAMP或其他需要的软件。在自己的计算机上完成所有工作,然后将信息导出/导入服务器。通过这种方式,您可以控制可以上传的文件的大小以及服务器的管理员可以处理导入的内容。 –

3

您必须设置这个在MySQL以及..一般来说这里找到:

/etc/mysql/my.cnf 

例子:

max_allowed_packet  = 16M 

如果服务器在你的控制是不是,你将有要求访问所述文件。

相关问题