Hi,
Bear with me for a minute, as I'm pretty novice, but have a serious problem not being able to restore my site - even from a snapshot backup. Hence, I'm quite worried that I'm facing a very serious issue.
I enabled this module a few days ago and ran the available indexes, switched to the "fast" database engine, and today the site totally crashed. It seemed fine for a day, but now it is having major problems from this module. In fact I've been on a tech support call with Media Temple for an hour on a dedicated virtual server 4.0 and they think that innodb crashed. They recommend I reinstall my server (way beyond my novice skills).
Initially the site crashed and I couldn't even get into Plesk. It was giving me an error the the socket was not found somewhere withing the var directory. That error hasn't come back. I tried rebooting and restarting the mysqld service from within Parallels and the error changed to the following.
ERROR: PleskMainDBException
MySQL query failed: Unknown table engine 'InnoDB'
0: common_func.php3:145
db_query(string 'SELECT * FROM misc
WHERE param = 'mysql41_compatible'
AND val <> RTRIM(TRIM('\0' FROM val))')
1: common_func.php3:197
db_fetch(string 'SELECT * FROM misc
WHERE param = 'mysql41_compatible'
AND val <> RTRIM(TRIM('\0' FROM val))')
2: MySQL5FixBinaryColumns.php:20
MySQL5FixBinaryColumns::run()
3: auth.php3:127
My hosting co (MT) simply said I should reinstall my server, but I'm a bit worried that this won't fix it and it is a lot for a novice.
My site is totally out of commission and I can't roll back to a snapshot - can someone please help me figure out what is going on.
This is the only module I've added recently and the error happens to be mention the DB engine innodb. That is why I'm here.
I've also provided the my.cnf files here for reference in case that matters because I know there is some connection to Innodb and I have been playing around with changing variables in relation to SQL tuner lately.
my.cnf
[mysqld]
max_connections = 80
max_user_connections = 80
key_buffer = 16M
key_buffer_size = 32M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 3M
table_cache = 256
thread_cache_size = 32
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_connect_errors = 1000
query_cache_limit = 2M
query_cache_size = 2M
query_cache_type = 1
tmp_table_size = 16M
max_heap_table_size = 16M
max_allowed_packet = 32M
join_buffer_size = 32M
innodb_buffer_pool_size=32M
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log_slow_queries = /var/log/mysql/mysql-slow.log
# To enable the InnoDB Plugin, uncomment the 2 next lines
#ignore-builtin-innodb
#plugin-load=innodb=ha_innodb_plugin.so
# To enable InnoDB-related INFORMATION_SCHEMA tables
# Join the following options to above directive
;innodb_trx=ha_innodb_plugin.so
;innodb_locks=ha_innodb_plugin.so
;innodb_cmp=ha_innodb_plugin.so
;innodb_cmp_reset=ha_innodb_plugin.so
;innodb_cmpmem=ha_innodb_plugin.so
;innodb_cmpmem_reset=ha_innodb_plugin.so
set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
set-variable = innodb_buffer_pool_size=2M
set-variable = innodb_additional_mem_pool_size=500K
set-variable = innodb_log_buffer_size=500K
set-variable = innodb_thread_concurrency=2
Thank you for your time and attention.
A novice,
CarbonPig
Comments
Comment #1
dalinSo just to confirm, after the crash you rebooted the server and restored a backup from before the InnoDB change (i.e. so all tables are now MyISAM)? Or did you restore first, and then reboot? If the latter then it's possible that there was some corruption with the running MySQL server while you did the restore.
You might try the following before going down the path of a full rebuild:
1) reboot
2) turn off Apache so that no web queries will be interfering with MySQL
3) restore your pre-DBTuner, MyISAM-based backup.
4) turn Apache back on and see if the site is working.
If that doesn't work then I can only think of a few possible causes to your problem:
- you changed something else that caused the crash
- something else changed that you were unaware of and that caused the crash
Comment #2
CarbonPig commentedThanks for the clear response. Unfortunately, with a low skill level I was unable to trouble shoot effectively and ended up spending the day rebuidling the server. @dalin
Unfortunately, even after the rebuild, the problem wasn't fully fixed. It seems that when I tried to convert Innodb using this module, that it left some of the tables in MyISAM and some in InnoDB. Fortunately, one of the tech support guys at Media Temple (my host) was able to run some commands and convert my whole system to InooDB including the index tables.
I'm kinda a hack, so I don't quite have a full answer about everything that happened.
However, thanks for the response. I appreciate it. Everything is fine now.
I would make sure to issue a clear warning on the module page that this module could wreak havoc for novices.
Cheers,
CarbonPig
Comment #3
mikeytown2 commentedThe more I think about issues like this, The more I realize a complete rewrite is needed; one that uses
hook_schema_alter() to record changed values & use drupal_get_schema() to read it. My guess is a table was changed to InnoDB that is outside of drupal; or there was some misconfiguration inside my.conf.
http://forums.mysql.com/read.php?22,121974,198638#msg-198638
Rely on http://drupal.org/project/schema and make this exportable with drush commands as well. Need more time...