I upgraded MySQL on my CentOS server using yum
# mysql --version
mysql Ver 14.14 Distrib 5.1.52, for redhat-linux-gnu (x86_64) using readline 5.1
I run service mysqld start
and get the following error in the error logs (after it telling me that MySQL couldn't start):
110405 10:10:51 mysqld_safe Starting mysqld daemon with databases from /mnt/persistent/mysql
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
110405 10:10:51 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110405 10:10:51 InnoDB: Started; log sequence number 30 391318478
110405 10:10:51 [ERROR] /usr/libexec/mysqld: unknown variable 'innodb_log_arch_dir=/mnt/persistent/mysql/'
110405 10:10:51 [ERROR] Aborting
110405 10:10:51 InnoDB: Starting shutdown...
110405 10:10:56 InnoDB: Shutdown completed; log sequence number 30 391318478
110405 10:10:57 [Note] /usr/libexec/mysqld: Shutdown complete
110405 10:10:57 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
So, I ran mysql_upgrade
like the 3rd line says. However, that gives the error:
# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/var/lib/mysql/mysql.sock' mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
FATAL ERROR: Upgrade failed
I think there's something circular going on: I can't start mysqld
without running mysql_upgrade
and I can't run mysql_upgrade
without mysqld
running.
Any ideas?
The variable innodb_log_arch_dir has been unsused since 4.0.6
if you comment out
in your my.cnf
mysqld should start successfully.