From cbb5838be1e32d33b16b047594ea73a64880e4fd Mon Sep 17 00:00:00 2001
From: Stefan Galinski <stefan@sgalinski.de>
Date: Tue, 21 Jul 2015 16:00:38 +0200
Subject: [PATCH] [BUGFIX] Fix a couple of MySQL installation issues

---
 recipes/default.rb               | 31 ++++++++------
 templates/default/my-5.5.cnf.erb | 73 ++++++++++++++++++++++++++++++++
 templates/default/my-5.6.cnf.erb |  2 +-
 3 files changed, 92 insertions(+), 14 deletions(-)
 create mode 100644 templates/default/my-5.5.cnf.erb

diff --git a/recipes/default.rb b/recipes/default.rb
index b33d7e4..bb946f1 100644
--- a/recipes/default.rb
+++ b/recipes/default.rb
@@ -297,15 +297,13 @@ mysql_service 'default' do
 	action [:create, :start]
 end
 
-# overwrite the configuration only for MySQL 5.6 (disables the strict checks)
-if node['typo3_site']['mysql_version'] === '5.6'
-	mysql_config 'default' do
-		source "my-#{node['typo3_site']['mysql_version']}.cnf.erb"
-		action :create
-	end
+mysql_config 'default' do
+	source "my-#{node['typo3_site']['mysql_version']}.cnf.erb"
+	action :create
 end
 
 mysql_client 'default' do
+	version node['typo3_site']['mysql_version']
 	action :create
 end
 
@@ -362,14 +360,21 @@ node['typo3_site']['sync_databases'].each do |database_data|
 			action :run
 		end
 
-		# this would be better, but currently buggy in the database cookbook
-		# https://github.com/opscode-cookbooks/database/issues/128
-		mysql_database 'Import Dump for ' + database_data['database_name'] do
-			connection connection_info
-			database_name database_data['database_name']
-			sql { ::File.open(database_data['dump_local']).read }
-			action :query
+		# load the dump
+		bash 'Import Dump for ' + database_data['database_name'] do
+			code <<-EOF
+				mysql -h 127.0.0.1 -u root -proot #{database_data['database_name']} < #{database_data['dump_local']}
+			EOF
+			action :run
 		end
+
+		# causes still strange issues that leads to crashes of the MySQL server
+		# mysql_database 'Import Dump for ' + database_data['database_name'] do
+		# 	connection connection_info
+		# 	database_name database_data['database_name']
+		# 	sql { ::File.open(database_data['dump_local']).read }
+		# 	action :query
+		# end
 	end
 
 	if database_data['post_install_queries']
diff --git a/templates/default/my-5.5.cnf.erb b/templates/default/my-5.5.cnf.erb
new file mode 100644
index 0000000..94c96c5
--- /dev/null
+++ b/templates/default/my-5.5.cnf.erb
@@ -0,0 +1,73 @@
+# Chef generated my.cnf for instance mysql-default
+
+[client]
+default-character-set          = utf8
+port                           = 3306
+socket                         = /run/mysql-default/mysqld.sock
+
+[mysql]
+default-character-set          = utf8
+
+[mysqld]
+user                           = mysql
+pid-file                       = /run/mysql-default/mysqld.pid
+socket                         = /run/mysql-default/mysqld.sock
+port                           = 3306
+datadir                        = /var/lib/mysql-default
+tmpdir                         = /tmp
+log-error                      = /var/log/mysql-default/error.log
+!includedir /etc/mysql-default/conf.d
+
+[mysqld_safe]
+socket                         = /run/mysql-default/mysqld.sock
+
+[mysqld]
+key_buffer_size = 32M
+
+max_allowed_packet  = 16M
+max_connections     = 214
+thread_cache_size   = 200
+
+query_cache_limit   = 4M
+query_cache_size    = 128M
+query_cache_type    = 1
+
+tmp_table_size          = 128M
+max_heap_table_size     = 128M
+
+table_definition_cache  = 800
+join_buffer_size        = 4M
+
+table_open_cache = 200
+open_files_limit = 512
+
+#myisam-recover         = BACKUP
+myisam_sort_buffer_size = 32M
+myisam_recover_options = BACKUP
+
+innodb_buffer_pool_size   = 512M
+innodb_flush_method = O_DIRECT
+innodb_thread_concurrency = 0
+innodb_read_io_threads = 64
+innodb_write_io_threads = 64
+
+log_warnings = 2
+slave_net_timeout = 60
+
+collation_server = utf8_unicode_ci
+character_set_server = utf8
+
+long_query_time = 3
+slow_query_log = 1
+slow_query_log_file = /var/log/mysql-default/log-slow-queries.log
+
+[mysqldump]
+quick
+quote-names
+max_allowed_packet	= 128M
+
+[isamchk]
+key_buffer		= 32M
+
+[mysql]
+default-character-set=utf8
diff --git a/templates/default/my-5.6.cnf.erb b/templates/default/my-5.6.cnf.erb
index eb48840..1e224dd 100644
--- a/templates/default/my-5.6.cnf.erb
+++ b/templates/default/my-5.6.cnf.erb
@@ -44,7 +44,7 @@ slow_query_log_file = /var/log/mysql-default/log-slow-queries.log
 [mysqldump]
 quick
 quote-names
-max_allowed_packet	= 64M
+max_allowed_packet	= 128M
 
 [isamchk]
 key_buffer		= 32M
-- 
GitLab