2019/07/15ぐらいに、CircleCIのdockerイメージが、debian9 -> debian10に上がって都合で、mysql-client
がインストール出来なかった人がいると思います。
私の場合、上記以外にもハマったので、備忘録として残しておきます。
事象
db:migrate
で、以下のエラーが発生しました。
mysqldump: Couldn't execute 'SHOW PACKAGE STATUS WHERE Db = 'testdb'': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PACKAGE STATUS WHERE Db = 'testdb'' at line 1 (1064)
rake aborted!
failed to execute: `mysqldump`
Please check the output above for any errors and make sure that `mysqldump` is installed in your PATH and has proper permissions.
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/tasks/mysql_database_tasks.rb:105:in `run_cmd'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/tasks/mysql_database_tasks.rb:57:in `structure_dump'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/tasks/database_tasks.rb:228:in `structure_dump'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/railties/databases.rake:287:in `block (3 levels) in <top (required)>'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/railties/databases.rake:69:in `block (2 levels) in <top (required)>'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.0/lib/active_record/railties/databases.rake:61:in `block (2 levels) in <top (required)>'
/home/circleci/fuga/vendor/bundle/ruby/2.6.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
Exited with code 1
原因
dockerイメージでmysqlを使っていたのが原因でした。
docker:
- image: circleci/ruby:2.6.3-node-browsers
- image: circleci/mysql:5.7
- image: redis:4.0.9-alpine
default-mysql-client
を入れていたのですが、これは、mariadbのクライアントなので、DB側がmysqlだと、前述のエラーが出るようです。
何とか、debパッケージ入れて、mysqlクライアント入れたかったのですが、ダメでした。
とりあえず、このdockerイメージをmariadbを入れて回避
- image: circleci/mariadb:latest
debian10でMySQLを入れてくれるツワモノが現れるのを待ちます。