2013-07-08 75 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 

如果服務器在你的控制是不是,你將有要求訪問所述文件。

相關問題