2014-11-04 52 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