2014-11-04 76 views
1

這是一個重複的問題。無論如何,與這個問題有關的答案並沒有幫助我。請幫我解決這個問題。紅寶石 - MySQL服務器已消失(Mysql2 ::錯誤)

MySQL查詢:

insert_query = %{INSERT INTO my_table (`my_column`) VALUES("#{my_value}");}.gsub(/\s+/, ' ') 

client = Mysql2::Client.new(:host => 'localhost', :username => "#{ENV['MYSQLUSERNAME']}", :password => "#{ENV['MYSQLPASSWORD']}") 
client.query("USE `my_database`;") 
client.query(insert_query) 

同時插入值到my_column,我得到一個錯誤「'查詢':MySQL服務器已消失」(Mysql2 ::錯誤)。 my_column具有MEDIUMTEXT數據類型,它就會在其中存儲編碼的字符串值。如果(在紅寶石使用Base64.encode64)編碼的字符串的字符計數是然後我面對錯誤的更多(超過1,00,000或1,00,00,000)。但是,如果編碼的字符串長度較少,那麼它運行良好。我曾嘗試建立WAIT_TIMEOUT和max_allowed_pa​​cket的。反正沒有幫助我!

在此先感謝!

回答

1

爲了解決這個,你應該增加在/etc/my.cnf文件的最大數據包大小限「max_allowed_pa​​cket的」(如果文件不存在,你可以創建一個)。

您可以設置:max_allowed_packet = 128M

,然後重新啓動mysql的

+0

不過它提供了同樣的錯誤。 :( – 2014-11-04 14:22:42

+0

你嘗試增加'connect_timeout'? – 2014-11-04 14:27:12

+0

是的,但同樣沒有工作,我是否需要設置這些變量的/etc/my.cnf進入或/etc/mysql/my.cnf? – 2014-11-04 14:36:16