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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

455閲覧

MySQLで外部ファイルから接続できない

Casablanca_mtg

総合スコア209

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

1クリップ

投稿2019/10/10 07:18

お世話になります
わたしの環境は下記のとおりです

MySQL version :8.0.17

create_myapp.sql

1 2drop database if exists myapp; 3create database myapp; 4grant all on myapp.* to myapp_user@localhost identified by 'パスワード'; 5

create_myapp.sqlを作成して接続しようとすると画像のようなエラーが出ます
イメージ説明

※最初に接続するときパスワードなしの設定ができていないのでそのやり方も教えてください

mysql5.7から少しパスワードのやり方などが変わったみたいですがそのあたりは理解しています(DBでのパスワードも同じやり方みたいです)

いろいろ検索しましたが解決できませんでした

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

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

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

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

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

nandymak

2019/10/10 07:46

普通に $ mysql -uroot -p でパスワードを入力すると、mysqlにログインできるのでしょうか? 関係ありませんが、myapp_userすでに登録されているのでしょうか?
Casablanca_mtg

2019/10/10 07:56

お世話になります パスワードを入力するとmysqlにログインできます myapp_userすでに登録はしていないです
nandymak

2019/10/10 09:15

画像の2行目でパスワードは入れましたか?
Casablanca_mtg

2019/10/10 09:42

いいえは入れないので ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 上記が出るのだと思います
t_obara

2019/10/10 09:53

状況がよくわかりませんがrootでログインができないのですか?ログインができるけれど、データベースが作成できないのですか?
Casablanca_mtg

2019/10/10 10:18

有難うございます create_myapp.sqlの読み込みをしようとするとエラーになるのです mysql -u -root -pでパスを入れるとログインはできます しかしmysql -u -root -p <create_myapp.sqlとしてパスを入れると ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)となります
t_obara

2019/10/10 10:37

では、ログイン後に、ファイルの内容を手で入力し、どのステップでそのメッセージが出るかを確認するのが最初のステップかと思います。ただ、エラーメッセージ的にはパスワードが間違っている時に出るもののようなので、-p<PASSWORD> のように指定してパスワードを確認して試すとよろしいかと思います。
Casablanca_mtg

2019/10/10 11:20

お世話になります 1行づつ手打ちしました mysql> grant all on myapp.* to myapp_user@localhost identified by 'パスワード'; ERROR 1064 (42000): 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 'identified by 'パスワード'' at line 1 パスワードの設定がダメなのですか?英大文字、記号、数字、英小文字の組み合わせで作りました
t_obara

2019/10/11 01:24

https://dev.mysql.com/doc/refman/8.0/en/grant.html ドキュメントを見ると、そもそもidentifiedは to user_or_role の後に続けられませんね。 5.7までは使えました。ドキュメントをよく読むと、非存在ユーザーについてgrantをする場合について記載がありますのでよく読んでみてください。ただ、8にはその記述すら残っていませんが。
Casablanca_mtg

2019/10/11 01:53

有難うございます。 かなりハードルが高いです 今はいろいろ模索しています。 create_myapp.sql drop database if exists myapp; create database myapp; create user 'myapp'@'localhost' identified by 'パスワード’; grant all on myapp_user.* to 'myapp'@'localhost' with grant option; gflush privileges; ’このように書き直しましたが駄目ですね また1行づつ確認します
Casablanca_mtg

2019/10/11 04:02

1行づつやればエラーは出ません。ただgflush privileges;を入力するとエラーになります。 そして上記を mysql -u root -p < create_myapp.sqlとするとやはりエラーになります どこがおかしいのでしょうか?
t_obara

2019/10/11 05:22

flush privileges の際にどのようなエラーになりましたか? gflushではなく、flushですよね?
Casablanca_mtg

2019/10/11 06:23

お世話になります 再度試しました mysql> create user 'myapp'@'localhost' identified by 'パスワード'; ERROR 1396 (HY000): Operation CREATE USER failed for 'myapp'@'localhost' そしてflush privileges;でOKでした
Casablanca_mtg

2019/10/11 06:26

いろいろ検索しすぎて戸惑っています。少し頭を冷やしますね
t_obara

2019/10/11 06:43

ユーザー名が以前と変わっていて、DB名称と同じになっていますね。 ユーザーが既に登録されているのにユーザーを作成しようとしているのではないですか? 一度、綺麗にしてから再度トライすると良いと思います、そういう点では、頭を冷やすのは良いかもしれません。
Casablanca_mtg

2019/10/11 06:54

やはりこの部分ですね mysql> create user 'myapp'@'localhost' identified by 'パスワード'; ERROR 1396 (HY000): Operation CREATE USER failed for 'myapp'@'localhost'
nandymak

2019/10/11 06:57

mysql> select user,host from mysql.user; 上記を実行すると登録済みのユーザーが表示されます。 'myapp'がすでに登録済みとかないですか?
Casablanca_mtg

2019/10/11 07:24 編集

確認しました select user,host from mysql.user; guro | localhost | | myapp | localhost | | myapp_user | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | | wp | localhost この中で不要なものを削除すればいいのですね。 select user(); user() | +----------------+ | root@localhost ないと思っていました。前に試したものが残っていた??
guest

回答1

0

ベストアンサー

こんな感じでSQLファイルを作成して

SQL

1nandymak $ cat aaaaa.sql 2use mysql; 3select host,user from user; 4exit

以下の様に実行します。<ここでパスワードを入力>の部分でパスワードをキーボードから入力します。

bash

1nandymak $ mysql -uroot -p < aaaaa.sql 2Enter password: <ここでパスワードを入力> 3host user 4localhost root 5127.0.0.1 root 6::1 root 7nandymak $

関係ありませんが、

myapp_userすでに登録はしていないです

SQL

1grant all on myapp.* to myapp_user@localhost identified by 'パスワード';

存在しないユーザーに権限は設定できませんよ。

投稿2019/10/10 11:43

nandymak

総合スコア799

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

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

Casablanca_mtg

2019/10/11 01:24

お世話になります 先にmyapp_userを設定しなければいけない?? mysql> create user myapp_user@localhost identified by ’パスワード'; これは必要なのでしょうか?
Casablanca_mtg

2019/10/13 05:07

できました。かなり苦戦しましたがクリアできました 有難うございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問