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 を修正してようやく起動。
コメント