autolab / autolab-oneclick

Apache License 2.0
6 stars 17 forks source link

#<Mysql2::Error: Can't connect to MySQL server on 'db' (111)> #17

Closed natea closed 5 years ago

natea commented 5 years ago

I'm running install.sh -l in my MacOSX, and when it tries to start local_db_1_e6351c097e85, it fails when it tries to connect to the MySQL server and thus fails to create the database

[6/6] Init database...
Starting local_tango_1_b01116f87ab0 ... done
Step 20/20 : RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 ---> Running in 5e8912df8499
Removing intermediate container 5e8912df8499
 ---> a09378dae1e9
Successfully built a09378dae1e9
Successfully tagged local_web:latest
WARNING: Image for service web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating local_tango_1_f972b5a1c594 ... done
Creating local_db_1_d824e7c0230a    ... done
Creating local_web_1_783357f955cc   ... done
[5/6] Done
[6/6] Init database...
Starting local_tango_1_b01116f87ab0 ... done
Starting local_db_1_e6351c097e85    ... done
#<Mysql2::Error: Can't connect to MySQL server on 'db' (111)>
Couldn't create database for {"adapter"=>"mysql2", "database"=>"app_autolab_development", "pool"=>5, "username"=>"root", "password"=>nil, "socket"=>"/var/run/mysqld/mysqld.sock", "host"=>"db"}, {:charset=>"utf8", :collation=>"utf8_unicode_ci"}
Starting local_tango_1_b01116f87ab0 ... done
Starting local_db_1_e6351c097e85    ... done
rake aborted!
ActiveRecord::NoDatabaseError: Unknown database 'app_autolab_development'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:23:in `rescue in mysql2_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:10:in `mysql2_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:567:in `retrieve_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:87:in `connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:913:in `initialize'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in `new'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in `up'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:798:in `migrate'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/var/lib/gems/2.2.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
Mysql2::Error: Unknown database 'app_autolab_development'
/var/lib/gems/2.2.0/gems/mysql2-0.3.18/lib/mysql2/client.rb:70:in `connect'
/var/lib/gems/2.2.0/gems/mysql2-0.3.18/lib/mysql2/client.rb:70:in `initialize'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `new'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:18:in `mysql2_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:567:in `retrieve_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_handling.rb:87:in `connection'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:913:in `initialize'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in `new'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:820:in `up'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/migration.rb:798:in `migrate'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/tasks/database_tasks.rb:137:in `migrate'
/var/lib/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/railties/databases.rake:44:in `block (2 levels) in <top (required)>'
/var/lib/gems/2.2.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
./install.sh: line 98: ./install.sh: No such file or directory
Failed command: 

ERROR: Line 186 of script has return value 1. The log file is saved at /var/folders/b6/xq5h_sm935v4fgp8c0qs9dp00000gn/T/tmp.2InULY6t.

Thank you for trying out Autolab! For questions and comments, email us at autolab-dev@andrew.cmu.edu.
TheodorJ commented 5 years ago

Apparently the install script is only known to work on a fresh install of Ubuntu 16.04, and anything other than that may have issues. I'm a bit stumped, since it failed on my U14.04 setup and the only dependencies that aren't OS-agnostic are Pip and Docker. I'll try this out a bit more and see if I can find a fix

natea commented 5 years ago

Thanks Theodor. Any luck tracking down a fix?

natea commented 5 years ago

Now it doesn't seem to complain about creating the database anymore:

$ sudo docker-compose run --rm -e RAILS_ENV=production web rake db:create 
Password:
Starting local_db_1_e6351c097e85 ... done
Starting local_tango_1_b01116f87ab0 ... done
app_autolab_development already exists
TheodorJ commented 5 years ago

Huh, looks like sudo was the error. Are any of the other rake db: commands working? I haven't found a fix, but at this point, it looks like it's already created the database and you can proceed with the migration.

natea commented 5 years ago

I ran the migrate command earlier and it executed without any errors: https://gist.github.com/natea/e504f66320e719a2fb99dfc192a2a897

It's the autolab:populate that is still giving the permission denied error. https://github.com/autolab/autolab-oneclick/issues/18