I have forgot why I upgraded my blog to PHP7 and MySQL5.7, but I just did it.
First have to say, even I had no upgrade plan for such thing. At that time I thought I could upgrade the MySQL rpm to 5.7, then started MySQL database and it should upgrade my database automatically. The worse thing was that I upgraded the PHP to version 7 at the same time, and some modules were not installed at the beginning.
After the upgrade, I rebooted the server and tried to access my website, while just got a blank page. From the log of Nginx, I found the socket file was changed after the php-fpm update, then I changed it accordingly. While still got blank page, and from the error log of php-fpm, I found the json extension of PHP was not installed, so I installed it and some other extensions, then restarted the php-fpm service, and got an error message that the database could not be connected.
From the log of mysql service, I got the error like the title of this blog. So after the upgrade, the mysqld could not be started. I searched and this one saved me:
MySQLd doesn't start after brew upgrade from 5.6 to 5.7
So the steps to fix this issue are easy:
run as mysql user: ---one session--- /usr/sbin/mysqld --skip-grant-tables ---another session--- /usr/bin/mysql_upgrade killall mysqld
I post the log of command '/usr/bin/mysql_upgrade' as below:
-bash-4.1$ /usr/bin/mysql_upgrade Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK mysql.event OK mysql.func OK mysql.general_log OK mysql.gtid_executed OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.host OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.server_cost OK mysql.servers OK mysql.slave_master_info OK mysql.slave_relay_log_info OK mysql.slave_worker_info OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK Upgrading the sys schema. Checking databases. blog.wp_commentmeta OK blog.wp_comments error : Table upgrade required. Please do "REPAIR TABLE `wp_comments`" or dump/reload to fix it! blog.wp_links error : Table upgrade required. Please do "REPAIR TABLE `wp_links`" or dump/reload to fix it! blog.wp_options OK blog.wp_postmeta OK blog.wp_posts error : Table upgrade required. Please do "REPAIR TABLE `wp_posts`" or dump/reload to fix it! blog.wp_term_relationships OK blog.wp_term_taxonomy OK blog.wp_termmeta OK blog.wp_terms OK blog.wp_usermeta OK blog.wp_users error : Table upgrade required. Please do "REPAIR TABLE `wp_users`" or dump/reload to fix it! sys.sys_config OK wiki.archive OK wiki.category OK wiki.categorylinks error : Table rebuild required. Please do "ALTER TABLE `categorylinks` FORCE" or dump/reload to fix it! wiki.change_tag OK wiki.externallinks OK wiki.filearchive OK wiki.hitcounter OK wiki.image OK wiki.imagelinks OK wiki.interwiki OK wiki.ipblocks OK wiki.iwlinks OK wiki.job OK wiki.l10n_cache OK wiki.langlinks OK wiki.log_search OK wiki.logging OK wiki.module_deps OK wiki.msg_resource OK wiki.msg_resource_links OK wiki.objectcache error : Table rebuild required. Please do "ALTER TABLE `objectcache` FORCE" or dump/reload to fix it! wiki.oldimage OK wiki.page OK wiki.page_props OK wiki.page_restrictions OK wiki.pagelinks OK wiki.protected_titles OK wiki.querycache OK wiki.querycache_info OK wiki.querycachetwo OK wiki.recentchanges OK wiki.redirect OK wiki.revision OK wiki.searchindex OK wiki.site_identifiers OK wiki.site_stats OK wiki.sites OK wiki.tag_summary OK wiki.templatelinks OK wiki.text OK wiki.transcache OK wiki.updatelog OK wiki.uploadstash OK wiki.user OK wiki.user_former_groups OK wiki.user_groups OK wiki.user_newtalk OK wiki.user_properties OK wiki.valid_tag OK wiki.watchlist OK Repairing tables blog.wp_comments Note : TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format. status : OK blog.wp_links Note : TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format. status : OK blog.wp_posts Note : TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format. status : OK blog.wp_users Note : TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format. status : OK `wiki`.`categorylinks` Running : ALTER TABLE `wiki`.`categorylinks` FORCE status : OK `wiki`.`objectcache` Running : ALTER TABLE `wiki`.`objectcache` FORCE status : OK Upgrade process completed successfully. Checking if update is needed.
When I restarted mysql service, finally I could open my website again.
One more thing was about the W3TC plugin. When I wanted to change the cache service to others, I always got error message that it could not create directory under wp-content/cache folder. I confirmed the nginx user had read and write permissions of this folder but I still got the error. I could not find any error log about it, so at last I had to grant the 777 to the cache folder, then I found a tmp directory was created and the user name was php-fpm. So I knew I should grant write permission to php-fpm user, and this could be finished by 'setfacl -m u:php-fpm:rwx cache'.
Finally I got an error-free WordPress blog, but I needed to upgrade the wiki part.
OK, let me have a rest, and upgrade it in another day.