SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

UbuntuでMySQL8とMySQL5.7を行ったり来たりした例

問題

MySQLのリポジトリを追加して、

下記でMySQL8にしたのですが、うまく起動しないのでmysql5.7に戻したいです。

apt install mysql-server

答え

関係あるもの一通り、バージョン指定でインストールでMySQL5.7に戻せる。

apt-get install mysql-server-5.7 mysql-client-5.7 mysql-server-core-5.7 mysql-common=5.8+1.0.4

問題個所を修正したり、ダンプをとったりした後で改めてバージョンアップは、再度以下で。

apt install mysql-server

やり方が悪かったり、データが悪かったりしたためですが、以下のようなエラー連発でやり直してました。

失敗例1

MySQLサービスを止めずにバージョンアップしてしまい不正な状態ができた

[ERROR] [MY-013140] [Server] Unknown storage engine 'partition'
[ERROR] [MY-013140] [Server] Can't find file: './hogehoge/pebc_part_20190308.frm' (errno: 0 - Success)
[ERROR] [MY-013137] [Server] Can't find file: './hogehoge/pebc_part_20190308.frm' (OS errno: 0 - Success)
[ERROR] [MY-010348] [Server] Error in reading file ./hogehoge/pebc_part_20190308.frm
[ERROR] [MY-010758] [Server] Error in creating TABLE_SHARE from pebc_part_20190308.frm file.
[ERROR] [MY-010022] [Server] Failed to Populate DD tables.
[ERROR] [MY-010119] [Server] Aborting

失敗例2

テーブル作成時に、カラムのコメント部分にEUC-JP(ujis)の文字が入っていて、upgradeするときにコケた。

[ERROR] [MY-013140] [Server] Comment for table 'somedatabase.sometable' contains an invalid utf8mb3 character string: '\xB3\xD8\xC0'.
[ERROR] [MY-010022] [Server] Failed to Populate DD tables

うまくいった後の設定ミス例1

Ubuntu18では、設定ファイルの場所が変わっていた。

MySQL5.7では /etc/mysql/mysql.conf.d/mysqld.cnf で読み込まれていた。

MySQL8では、どうも /etc/mysql/conf.d/ の中しか読まないようなので /etc/mysql/conf.d/mysqld.cnf に移動した。

うまくいった後の設定ミス例2

クエリキャッシュがMySQL8からなくなったので、query_cache_limit、query_cache_size などの設定があると起動しない。

my.cnf を修正してようやく起動。

関連するメモ

コメント