LoginSignup
5
0

More than 3 years have passed since last update.

CircleCIのdb:migrateで、mysqldump: Couldn't execute 'SHOW PACKAGE STATUS WHERE Db

Posted at

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を入れてくれるツワモノが現れるのを待ちます。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0