Docker Compose:为什么我的rails图像在访问MySQL数据库时存在权限问题? 童车行为

Docker Compose:为什么我的rails图像在访问MySQL数据库时存在权限问题? 童车行为,mysql,ruby-on-rails,docker,docker-compose,Mysql,Ruby On Rails,Docker,Docker Compose,我在Ubuntu 18.04中使用docker compose来处理一些Ruby on Rails项目,但是,每次尝试使用Rails控制台时,我都会遇到以下错误: /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `initialize': Permission denied @ dir_initialize - /usr/src/app/docker/mysql/data/performance

我在Ubuntu 18.04中使用docker compose来处理一些Ruby on Rails项目,但是,每次尝试使用Rails控制台时,我都会遇到以下错误:

/usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `initialize': Permission denied @ dir_initialize - /usr/src/app/docker/mysql/data/performance_schema (Errno::EACCES)
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `new'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/linux.rb:32:in `_configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:45:in `block in configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:40:in `each'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:40:in `configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:63:in `start'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/listener.rb:68:in `block in <class:Listener>'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:121:in `instance_eval'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:121:in `call'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:91:in `transition_with_callbacks!'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:57:in `transition'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/listener.rb:91:in `start'
    from /usr/local/bundle/gems/spring-watcher-listen-2.0.1/lib/spring/watcher/listen.rb:27:in `start'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:80:in `start_watcher'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:89:in `preload'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
    from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'
-- create_table("actions", {:force=>:cascade, :options=>"ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC"})
rails aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Can't create table 'actions' (errno: 13): CREATE TABLE `actions` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `workflow_id` bigint, `type` varchar(191), `settings` text, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL,  INDEX `index_actions_on_type_and_workflow_id`  (`type`, `workflow_id`),  INDEX `index_actions_on_workflow_id`  (`workflow_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:214:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:213:in `block in execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:212:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/mysql/database_statements.rb:26:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:363:in `create_table'
/usr/src/app/config/initializers/utf8mb4.rb:7:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/usr/src/app/db/schema.rb:15:in `block in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/usr/src/app/db/schema.rb:13:in `<top (required)>'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:252:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:21:in `block in perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:46:in `invoke'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
/usr/src/app/bin/rails:9:in `require'
/usr/src/app/bin/rails:9:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/usr/src/app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
Mysql2::Error: Can't create table 'actions' (errno: 13)
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:214:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:213:in `block in execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:212:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/mysql/database_statements.rb:26:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:363:in `create_table'
/usr/src/app/config/initializers/utf8mb4.rb:7:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/usr/src/app/db/schema.rb:15:in `block in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/usr/src/app/db/schema.rb:13:in `<top (required)>'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:252:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:21:in `block in perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:46:in `invoke'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
/usr/src/app/bin/rails:9:in `require'
/usr/src/app/bin/rails:9:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/usr/src/app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:schema:load
(See full trace by running task with --trace)
但是,这样做会使rails的其他功能中断。例如,
rails db:reset
命令抛出以下错误:

/usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `initialize': Permission denied @ dir_initialize - /usr/src/app/docker/mysql/data/performance_schema (Errno::EACCES)
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `new'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:192:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:202:in `block in watch'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `each'
    from /usr/local/bundle/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:194:in `watch'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/linux.rb:32:in `_configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:45:in `block in configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:40:in `each'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:40:in `configure'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/adapter/base.rb:63:in `start'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/listener.rb:68:in `block in <class:Listener>'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:121:in `instance_eval'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:121:in `call'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:91:in `transition_with_callbacks!'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/fsm.rb:57:in `transition'
    from /usr/local/bundle/gems/listen-3.1.5/lib/listen/listener.rb:91:in `start'
    from /usr/local/bundle/gems/spring-watcher-listen-2.0.1/lib/spring/watcher/listen.rb:27:in `start'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:80:in `start_watcher'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:89:in `preload'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
    from /usr/local/bundle/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
    from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /usr/local/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'
-- create_table("actions", {:force=>:cascade, :options=>"ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC"})
rails aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Can't create table 'actions' (errno: 13): CREATE TABLE `actions` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `workflow_id` bigint, `type` varchar(191), `settings` text, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL,  INDEX `index_actions_on_type_and_workflow_id`  (`type`, `workflow_id`),  INDEX `index_actions_on_workflow_id`  (`workflow_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:214:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:213:in `block in execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:212:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/mysql/database_statements.rb:26:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:363:in `create_table'
/usr/src/app/config/initializers/utf8mb4.rb:7:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/usr/src/app/db/schema.rb:15:in `block in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/usr/src/app/db/schema.rb:13:in `<top (required)>'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:252:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:21:in `block in perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:46:in `invoke'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
/usr/src/app/bin/rails:9:in `require'
/usr/src/app/bin/rails:9:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/usr/src/app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
Mysql2::Error: Can't create table 'actions' (errno: 13)
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/usr/local/bundle/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:214:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:213:in `block in execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:212:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/mysql/database_statements.rb:26:in `execute'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:363:in `create_table'
/usr/src/app/config/initializers/utf8mb4.rb:7:in `create_table'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/usr/src/app/db/schema.rb:15:in `block in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/usr/src/app/db/schema.rb:13:in `<top (required)>'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:252:in `block (3 levels) in <top (required)>'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:21:in `block in perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands/rake/rake_command.rb:18:in `perform'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/command.rb:46:in `invoke'
/usr/local/bundle/gems/railties-5.1.4/lib/rails/commands.rb:16:in `<top (required)>'
/usr/src/app/bin/rails:9:in `require'
/usr/src/app/bin/rails:9:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/usr/local/bundle/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/usr/local/bundle/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/usr/src/app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:schema:load
(See full trace by running task with --trace)
这是我的MySQL Dockerfile:

FROM mysql:5.6
预期行为 我希望docker实现能够正常工作,我不希望在需要对数据库进行某些更改时每隔15分钟重新启动容器。欢迎提出任何建议

传统问题
有没有任何理由可以解释为什么在Ubuntu 18中会发生这种情况,而在Debian或MAC-OS中却不会?我是Ubuntu迷,我想在Ubuntu中解决这个问题,但如果切换操作系统可以改善我使用docker的体验,我会毫无疑问地这么做。

似乎有两个用户试图更改mysql目录。也许您可以在您的目录上试用
chmod 777
,而不是
chown
。也可能是mysql使用的
tmpdir
/tmp
,或者运行
时可以看到的任何目录显示变量,如“%tmpdir%”;

但是,您是从容器内部还是从ubuntu启动ruby控制台?连接到数据库的唯一用户应该在mysql容器中。您应该使用端口绑定连接到数据库

您还可以尝试装载一个卷,以便使用docker:存储/持久化数据。更改docker compose文件:

[file start...]
mysql:
  build:
    context: .
    dockerfile: ./docker/mysql/Dockerfile
  container_name: myapp_mysql
  env_file: .env
  command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
  ports:
    - 32788:3306
  volumes:
    - ./:/usr/src/app
# CHANGE HERE
    - mysqldata:/var/lib/mysql
  networks:
    net:
      ipv4_address: 174.21.0.4
[more file...]
volumes:
  gems:
# AND CHANGE HERE
  mysqldata:
mysqldata卷将在容器的两次启动之间持久化,并且在容器中,您不应该有权限问题。看来是的

如果您需要恢复当前状态,仅在第一次从当前设置切换到基于卷的设置时,您可以创建mysqldump,将其放在已装入的文件夹中。/:/usr/src/app(或任何其他),然后从容器内恢复数据库


我不知道为什么这种行为与其他操作系统不同。我使用一个卷来保存mysql数据。

为什么在
mysql
中需要这个卷挂载
/:/usr/src/app
?@shashashankv老实说,我不知道,在我进入这个项目之前很久,这个卷就已经存在了。但这应该与docker compose给我带来麻烦的真正问题无关,因为其他使用MAC或Debian的人都没有问题。只有我在使用Ubuntu。