質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2149閲覧

Mysql2::Error: Can't create database を解決する方法をお願いします。

ny1977

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/06/13 00:20

編集2020/06/13 01:00

前提・実現したいこと

mysqlのエラーを解決したいです

発生している問題・エラーメッセージ

Mysql2::Error: Can't create database 'pictweet0612_development' (errno: 13): CREATE DATABASE `pictweet0612_development` DEFAULT CHARACTER SET `utf8` Couldn't create 'pictweet0612_development' database. Please check your configuration. rake aborted! ActiveRecord::StatementInvalid: Mysql2::Error: Can't create database 'pictweet0612_development' (errno: 13): CREATE DATABASE `pictweet0612_development` DEFAULT CHARACTER SET `utf8` Caused by: Mysql2::Error: Can't create database 'pictweet0612_development' (errno: 13) Tasks: TOP => db:create (See full trace by running task with --trace)

該当のソースコード

Mysql2::Error: Can't create database

試したこと

mysql.server start と入力を試した結果、
Starting MySQL
SUCCESS!

/usr/local/Cellar/mysql@5.6/5.6.43/bin/mysqld_safe: line 138: /usr/local/var/mysql/yaguchitouichinoMacBook-Pro.local.err: Permission denied
200613 08:54:39 mysqld_safe A mysqld process already exists
/usr/local/Cellar/mysql@5.6/5.6.43/bin/mysqld_safe: line 138: /usr/local/var/mysql/yaguchitouichinoMacBook-Pro.local.err: Permission denied

となり、もう一度 rake db:createを実行しても、同じエラー文が出てしまいます。
Permission denied が原因かと仮定し、
リンク内容
こちらの記事を読みましたが、解決の糸口がわかりません。
ご教授いただきいたいのでよろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

ruby 2.5.1p57

Rails 5.2.4.3

database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
socket: /tmp/mysql.sock

development:
<<: *default
database: pictweet0612_development

test:
<<: *default
database: pictweet0612_test
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ny1977

2020/06/13 01:01

ご指摘ありがとうございます。修正いたしました。
guest

回答2

0

ベストアンサー

homebrew関連の作業は一般ユーザ(homebrewをインストールした人)でおこないます。
「Permission denied」については以前にsuやsudoをつけて作業をしませんでしたか?
homebrewインストール先のファイル、ディレクトリの所有者がrootになってしまった可能性があります。
インストール先を確認して、chown -Rでその配下全てのファイル、ディレクトリの所有者を元に戻してください。

また、mysqlの起動、停止は一般ユーザでbrew servicesコマンドで行います。

$ brew services start|stop|status mysql

ちなみに、MacOSに/etc/init.d/は存在しません。

投稿2020/06/14 15:43

technocore

総合スコア7337

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ny1977

2020/06/14 22:19

technocoreさん、ありがとうございます。 suやsudoをつけて作業をまさに行ったのが原因だと自分も考えております。 現在は、色々試してエラー解決しましたが、明確にどう直したかが自分でも不明確だったので教えて頂きありがとうございます。
guest

0

[Permission denied が原因かと仮定し、]は多分合っています。
mysqlのデータがどこにあるのか、なんですが、分かればそこに対して
sudo chown -R mysql.mysql そのdir
としてください。
わからない場合、これでわかるかも
usr/sbin/mysqld --print-defaults
この出力の中の  --datadir=/var/lib/mysql というところがそこです

投稿2020/06/13 02:02

winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ny1977

2020/06/13 02:28

winterboumさん。 ご回答ありがとうございます。まず、mysqlのデータがどこにあるのかがわからず usr/sbin/mysqld --print-defaults を打ちました所、zsh: no such file or directory: usr/sbin/mysqld となりまして、見つかりません。エラー文をググってみた所、 https://discourse.roots.io/t/usr-bin-mysqld-safe-no-such-file-or-directory/11702 こちらの記事をみつけました グーグル翻訳した所、 これは、mysqlデータベースサーバーの再起動中に発生し、失敗しました。 サービスmysql startが機能しませんでした。 mysqld --datadir = / var / lib / mysql --user = mysql --socket = / var / run / mysqld / mysqld.sockのみが実行しました。 mysqld_safeが/ usr / binに本当にありません。 これを修正するために何をお勧めしますか? プロビジョニングによってこの問題は修正されますか? または私はする必要がありますか と表示があり、その後、sudo apt-get purge mysql-serverと打ち込んでもsudo: apt-get: command not found と表示されてしまいました。
winterboum

2020/06/13 02:34

mysqldがどこにあるか探しましょう。 mysqld --print-defaults で動いたらラッキー。 だめなら less /etc/init.d/mysql して探してみる だめなら find /usr /bin /sbin -name mysqld で探す
ny1977

2020/06/13 02:43

windterboumさん、ありがとうございます。 mysqld --print-defaults を試しましたら、 mysqld would have been started with the following arguments: --bind-address=127.0.0.1  と表示が出ました。 その後は、sudo chown -R mysql.mysql 127.0.0.1 と打てばよろしいのでしょうか?
ny1977

2020/06/13 02:48

ちなみに、 find /usr /bin /sbin -name mysqld を試しましたら、このような表示が出ましたがすべてのファイルにPermission deniedとついているのがやはり原因なのでしょうか? find: /usr/sbin/authserver: Permission denied find: /usr/local/var/mysql/todo_app_development: Permission denied find: /usr/local/var/mysql/view_drill_test: Permission denied find: /usr/local/var/mysql/chat@002dspace_test: Permission denied find: /usr/local/var/mysql/DataBaseDesignSample_test: Permission denied find: /usr/local/var/mysql/pictweet_exam1_test: Permission denied find: /usr/local/var/mysql/nekotter_development: Permission denied find: /usr/local/var/mysql/view_drill_development: Permission denied find: /usr/local/var/mysql/nekotter0430_test: Permission denied find: /usr/local/var/mysql/search_pictweet_test: Permission denied find: /usr/local/var/mysql/sample_app_development: Permission denied find: /usr/local/var/mysql/pictweet_exam1_development: Permission denied find: /usr/local/var/mysql/nekotter0430_development: Permission denied find: /usr/local/var/mysql/test: Permission denied find: /usr/local/var/mysql/git@002dapp_development: Permission denied find: /usr/local/var/mysql/freemarket_sample_66b_test: Permission denied find: /usr/local/var/mysql/sqltest: Permission denied find: /usr/local/var/mysql/mooovi@002dexam2_development: Permission denied find: /usr/local/var/mysql/error_pictweet_test: Permission denied find: /usr/local/var/mysql/mooovi@002dexam1_development: Permission denied find: /usr/local/var/mysql/pictweet20191209_development: Permission denied find: /usr/local/var/mysql/sql_curriculum_development: Permission denied find: /usr/local/var/mysql/moshi1_development: Permission denied find: /usr/local/var/mysql/nekotter0414_development: Permission denied find: /usr/local/var/mysql/mini_listing_test: Permission denied find: /usr/local/var/mysql/mooovi_test: Permission denied find: /usr/local/var/mysql/mooovi@002dexam1_test: Permission denied find: /usr/local/var/mysql/todo_app_test: Permission denied find: /usr/local/var/mysql/pictweet_test: Permission denied find: /usr/local/var/mysql/moshi1_test: Permission denied find: /usr/local/var/mysql/pictweet2020_development: Permission denied find: /usr/local/var/mysql/search_pictweet_development: Permission denied find: /usr/local/var/mysql/git@002dapp_test: Permission denied find: /usr/local/var/mysql/sql_curriculum_test: Permission denied find: /usr/local/var/mysql/sqltest20200501: Permission denied find: /usr/local/var/mysql/nekotter_test: Permission denied find: /usr/local/var/mysql/mooovi_development: Permission denied find: /usr/local/var/mysql/pictweet2020_test: Permission denied find: /usr/local/var/mysql/mooovi@002dexam2_test: Permission denied find: /usr/local/var/mysql/chat@002dspace_development: Permission denied find: /usr/local/var/mysql/mooovi2_test: Permission denied find: /usr/local/var/mysql/mini_listing_development: Permission denied find: /usr/local/var/mysql/pictweet3_development: Permission denied find: /usr/local/var/mysql/nekotter0414_test: Permission denied find: /usr/local/var/mysql/error_pictweet_development: Permission denied find: /usr/local/var/mysql/mysql: Permission denied find: /usr/local/var/mysql/chat@002dspace2020_development: Permission denied find: /usr/local/var/mysql/sqltest2: Permission denied find: /usr/local/var/mysql/freemarket_sample_66b_development: Permission denied find: /usr/local/var/mysql/performance_schema: Permission denied find: /usr/local/var/mysql/pictweet3_test: Permission denied find: /usr/local/var/mysql/mooovi2_development: Permission denied find: /usr/local/var/mysql/pictweet20191209_test: Permission denied find: /usr/local/var/mysql/chat@002dspace2020_test: Permission denied find: /usr/local/var/mysql/cookingfan_development: Permission denied find: /usr/local/var/mysql/ajax_drill_test: Permission denied find: /usr/local/var/mysql/cookingfan_test: Permission denied find: /usr/local/var/mysql/tweet_app20200523: Permission denied find: /usr/local/var/mysql/sample_app_test: Permission denied find: /usr/local/var/mysql/DataBaseDesignSample_development: Permission denied find: /usr/local/var/mysql/pictweet_exam3_test: Permission denied find: /usr/local/var/mysql/tweet@002dapp: Permission denied find: /usr/local/var/mysql/pictweet0407_test: Permission denied find: /usr/local/var/mysql/pictweet0407_development: Permission denied find: /usr/local/var/mysql/pictweet_exam3_development: Permission denied find: /usr/local/var/mysql/pictweet_development: Permission denied find: /usr/local/var/mysql/ajax_drill_development: Permission denied /usr/local/Cellar/mysql@5.6/5.6.43/bin/mysqld
winterboum

2020/06/13 03:14

> mysqld --print-defaults を試しましたら、 私のmysqldにはそのoptionあるんですがあなたのにはなさそうですね。 /etc/init.d/mysql を読むとどこかにdatadirが出てくるのではと思います。 >すべてのファイルにPermission deniedとついているのがやはり原因なのでしょうか? いや、この場合に必要なpermittionではないので、違います。
ny1977

2020/06/13 08:56

winterboumさん、ありがとうございます。 /etc/init.d/mysql を打つと、zsh: no such file or directory: /etc/init.d/mysql となってしまいます。
winterboum

2020/06/13 08:58

/etc/init.d/mysql を打つのではなく、そのcodeの中にdata dirを知る手がかりがあるだろうということです。 でもそのfileないですね。 /etc/init.dのなかに、mysqlに関係ありそうなのは無いですか?
ny1977

2020/06/13 09:05

wnterboumさん 何度もお手数お掛けしてしまいすみません、ありがとうございます。 less /etc/init.d/mysql を試しますと、 /etc/init.d/mysql: No such file or directory になってしまいます。
winterboum

2020/06/13 23:52

それがないのは一つ前のでわかってます。 ので 「/etc/init.dのなかに、mysqlに関係ありそうなのは無いですか?」
ny1977

2020/06/14 22:24

winterboumさん、ありがとうございます。 エラーについては解決いたしましたが自分の言葉ではうまく説明できないのですが、technocoreさんが回答くれた方法を実行し直りました。 homebrew関連の作業は一般ユーザ(homebrewをインストールした人)でおこないます。 「Permission denied」については以前にsuやsudoをつけて作業をしませんでしたか? homebrewインストール先のファイル、ディレクトリの所有者がrootになってしまった可能性があります。 インストール先を確認して、chown -Rでその配下全てのファイル、ディレクトリの所有者を元に戻してください。 また、mysqlの起動、停止は一般ユーザでbrew servicesコマンドで行います。 $ brew services start|stop|status mysql ちなみに、MacOSに/etc/init.d/は存在しません。 こちらのコメントにある通りエラー解決に至りました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問