事象
---------- CONNECT CLOUDSQL ----------
cloud_sql_proxy is running.
---------- EXECUTE COMMAND ----------
bundle exec rake db:migrate RAILS_ENV=production
rake aborted!
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/Users/cloudsql/[INSTANCE_NAME]' (2)
/app/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect'
なおMac Catalinaではルートディレクトリにフォルダを生成することはできないため/Users/cloudsql
でソケットを作成しました。
確認したこと
コンソールから確認
mysql -u ailab-development -p -S /Users/cloudsql/protean-brook-259301:asia-northeast1:ailab-development
接続できました
エラー内容の確認
こちらの記事によりますと
Can't connect to local MySQL server through socket '/Users/cloudsql/[INSTANCE_NAME]' (2) ←
の(2)が
OS error code 2: No such file or directory
とのことです
やったこと
やっぱり/Users/cloudsql
でdatabase.ymlを作成したのが失敗でした。
# [START mysql_settings]
mysql_settings: &mysql_settings
adapter: mysql2
encoding: utf8
pool: 5
timeout: 5000
username: "[USERNAME]"
password: "[PASSWORD]"
database: "[DATABASE]"
socket: "/cloudsql/[SOCKET名]" #/Users/cloudsql/[SOCKET名]から変更
# [END mysql_settings]
production:
<<: *mysql_settings
備考
- ()の中身まで調べましょう
- catalinaで
/cloudsql
が作れないからローカルで動作確認ができない...?