さくらのサーバーでWordPress PHP 7.x でデータベース接続確立エラー

いい加減、PHPのバージョンをあげようと思っていて、なんにも考えずにコントロールパネルからPHP7.3に上げたら、WordPressがおびただしいほどのエラーを吐いて、管理画面にすら入れなくなりました。。。後進のために、一応書いておきます。色々ググりながら疑った順番。

  1. DB接続エラーなので、wp-config.phpのDB情報をまず確認せよとありますが、さっきまでつながって正常に動いていたので、おそらく問題ないと判断。でも一応、PWを変更して更新。
  2. wp-config.phpでデバッグモードをON (define(‘WP_DEBUG’, true);)
  3. ちらほら、wp-db.phpのmysqlにつなぐ関数が、mysql -> mysqliにせよとあるので、修正。
  4. また、PHPの書き方の問題で、いくつか修正(=&だったような)
  5. DBにはコンソールから普通にログインできることを確認。それでもWordPressのwp-db.phpで接続エラー(具体的には、access denied)
  6. mysqlのsocketの問題を疑って、どのソケットを使っているか確認。/tmp/mysql.sock で問題なし。phpinfo()を実行しても問題なし。
  7. WordPressのDB接続コントラクターを利用して接続できるか確認。wp-includes配下で、以下を実行。エラーにならず。
<?php
require('./wp-db.php');
$dbuser = 'xxxx';
$dbpassword = 'xxx';
$dbname = 'xxxx';
$dbhost = 'xxxxxx.ne.jp';
$db = new wpdb($dbuser, $dbpassword, $dbname, $dbhost);
if (!$db) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($db);

8. WordPress本体の接続は問題無さそうなので、プラグイン周りを調査。StackTraceでDB Cache Reloaded Fixまわりのエラーがあるのを確認。
9. このDB Cache ReloadedのプラグインをOFFにしたいが、当然管理画面にアクセスできないので、コンソールでやることを判断。
10. DB Cache Reloaded Fixで管理画面にログインできなくなる現象と対処方法 を確認すると、

wp-content/db.php (削除)
wp-content/plugins/db-cache-reloaded-fix/cache (casheフォルダのみ削除)

とあるので、それぞれ削除するとDB接続エラーがなくなり、管理画面にアクセス可能に。
11. 管理画面から、pluginすべてを無効化&削除。このへんはイチからやり直す覚悟で、テンプレートも変更。

もう、どうなることかと思いましたが、なんとか戻ってこれて良かった。。WordPressも進化しているだろうし、あまり変なプラグイン入れずに運用しようと思います。