2021年11月へ

ロリポップサーバーのMySQLのバージョンが8.x系になっている(なお,SSH上にて)

公開日:

最終更新日:

要約

ロリポップサーバーのMySQLがSSH環境では8.x系で動作している一方、Web上では5.6系が稼働していることが判明。mysqldumpで古い5系用のコマンドを実行するとエラーが発生するため、--skip-column-statisticsオプションを追加し対応。バックアップはcronでも正常に動作しているようだが、環境ごとのバージョン違いに注意が必要である。

  • ロリポップサーバー
  • MySQL
  • mysqldump
  • バージョン違い
  • バックアップ
  • SSH
  • cron
  • エラー対策
  • --skip-column-statistics

ロリポップサーバーのデータベースを mysqldump でバックアップをとっています。

バックアップをとるshファイルを修正する必要があったので,久しぶりにSSHでアクセスし,バックアップ用の shファイルを走らせたところ次のエラー。

mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')  

(後略

なんだこりゃ。

調べたところ,mysql5系で書いたmysqldumpのコマンドを8系で走らせたら出るエラーらしい。

mysqldumpコマンドで "Unknown table 'COLUMN_STATISTICS' in information_schema (1109)" と怒られる原因と対策

ロリポップのMySQLはWeb上では5.6

画像は2021年11月15日時点です。

今後,ロリポップも値上がりするので,MySQL 8.x 系を導入するのかもしれません。

ちなみに,SSHでログインしてコマンドをたたくと,8.x系だと教えてくれます。

ターミナル上で動いている mysql は 8系を使っているが,web上で動いている mysql は 5系ってことなのかな。

一方,これまでのバックアップが走っていなかったというと,そうでもなく,日付を見る限り,ちゃんとバックアップがとれています。

cron が呼び出す mysql は5系なのかもしれない。

--skip-column-statistics オプションをつけてエラー回避

この問題はmysqldumpコマンドに --skip-column-statistics というオプションを設定して、ANALYZE TABLE文の自動生成をやめさせることで回避できる。

mysqldumpコマンドで "Unknown table 'COLUMN_STATISTICS' in information_schema (1109)" と怒られる原因と対策

上のブログに従って,オプションをつけたところ,ターミナル上でもエラーは出なくなりました。

*その結果が,上の写真の 11月15日の22:07のファイルです。

しかし,cron 上でエラーが起きたりするといやですね。

何かあったら追記します。

その後(11月16日追記)

どうやら,うまくバックアップ用の cron は走っている様子です。