エラー1044(42000):ユーザー '' @ 'localhost'のデータベース 'db'へのアクセスが拒否されました


164

MySQLでクエリを書き始めたいです。

show grants ショー:

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

私はユーザーIDを持っていませんが、ユーザーを作成したいのに特権を持っていない場合、ユーザーが1人もいない場合でも特権を作成する方法がわかりません!

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation

ルートとしてサインインしようとしました:

mysql> mysql -u root -p;
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 'mysql
 -u root -p' at line 1
mysql> mysql -u root -p root;
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 'mysql
 -u root -p root' at line 1

3
権限を持つユーザーとしてログインする必要があります。rootMySQLのインストール時に少なくとも作成されているはずです。
derobert

インストール中にパスワードを設定するように指示されましたが、ルートに設定しました。どうすればよいですか?
Nickool 2012年

9
rootとしてログインする必要があります(例:を実行して)mysql -u root -p。その後、データベースサーバーに対する完全な権限が付与され、他のユーザーを作成できます。
derobert

コマンドラインを使用してログインする場合は、次のようにしてrootとしてログインします。mysql -u root -p
Travis

1
@nikparsa:いいえ。mysqlの代わりに、シェルプロンプトから「mysql」の代わりに実行します。
derobert

回答:


219

いいえ、mysql -u root -pMySQLコマンドラインではなく、bashで実行する必要があります。mysqlを使用している場合は、exitと入力して終了できます。


どのようにbashに行くことができますか?mysqlのインストールに問題がありましたsuperuser.com/questions/377679/を参照してください
...

6
mysqlを終了するには「quit」を使用します。
そうすると

23
FYIのデフォルトではパスワードは空白です
bigpotato '19年

Windowsを使用している場合はどうなりますか?
PHPFan 2017年

終了または終了が機能しません。別の方法を指定してください。私はWindows 10にいます
Metin Dagcilar 2017

46

MySQLデータベースのrootアカウントを設定する必要がある場合があります。

端末タイプ:

mysqladmin -u root password 'root password goes here'

そして、MySQLクライアントを呼び出すには:

mysql -h localhost -u root -p

1
これは私にとってはうまくいきましたが、最初はうまくいきましたが、ある日突然突然止まりました。何か考えがあります、なぜこれが最初に起こるのですか?
mu無

@soleshoe imエラーが発生しました:sudo:mysqladmin:コマンドが見つかりません。どうすればよいですか?mysqlは常にシステム環境設定で実行されています。
Hitarth

29

私は別の問題でここに連れてこられました。ログインしようとするたびに、正しく認証する代わりに匿名ユーザーとしてログインしたため、そのメッセージが表示されました。私の問題の解決策は:

自分がどのユーザーで、どの権限を持っているかを確認するには:

select user(), current_user();

厄介な匿名ユーザーを削除するには:

drop user ''@'localhost';

1
「mysql -u username -p」を使用していても、これで問題が解決しました。非常に奇妙です:user()は私のユーザー名でしたが、current_user()はlocalhostでした...理由がわかりませんか?
エタンピル2014

2
@Leftteris hi .. imこのエラーが発生:アクセスが拒否されました。この操作にはCREATE USER特権(少なくとも1つ)が必要です。ユーザー '' @ 'localhost'を削除しようとすると、
Hitarth

15

これはユーザー権限と関係があります。適切な助成金を与えることはこの問題を解決します。

手順[1]:ターミナルを開いてこのコマンドを実行します

$ mysql -uroot -p

出力[1]:これにより、次に示すmysqlプロンプトが表示されます

ここに画像の説明を入力してください

ステップ2]:

mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'@'localhost';

構文:

mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';

注意:

  • ホスト名はIPアドレス、ローカルホスト、127.0.0.1にすることができます
  • ではdatabase_name/ table_name、*すべてのデータベースを意味し、
  • ではhostname、すべてのホストを指定するには「%」を使用します

ステップ[3]:quit/ exitcommandを入力するかを押して、現在のmysqlプロンプトを終了しますCtrl+D

ステップ[4]:新しいユーザーにログインします

$ mysql -uparsa -pyour_password

ステップ[5]:データベースを作成する

mysql> create database `database_name`;

私がないときCREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';にエラーが出る:ERROR 1227(42000):アクセスが拒否されました。この操作にはCREATE USER権限(少なくとも1つ)が必要です
航空機は

rootユーザーを使用してmysqlクライアントにログインした
theBuzzyCoder

9

完全なログインコマンドを試してみてください。

mysql -h host -u root -p 

ホストはどこになるでしょう127.0.0.1

これは、協力が存在することを確認するためだけに行ってください。

を使用mysql -u root -pすると、多くのデータベース検索を実行できますが、パス設定のためにデータベースの作成は拒否されます。


6

まず、コマンドラインに慣れていない場合は、ウェブブラウザからphpmyadminを使用してみてください。これにより、mysqlデータベースとユーザー名が実際に作成されます。

これは、コマンドライン(bash)から接続する方法です。

mysql -h hostname -u username -p database_name

例えば:

fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb

1
-pパスワード用であり、データベース名を渡すために使用しています。また、パスワードについては、スペースb / w -pと実際のパスワードを入れないでください。-D特定のデータベースに接続するために使用します。
sv。

5

MySQLシェルを使用している場合は、「exit」と入力して終了します。これにより、コマンドプロンプトに戻ります。

MySQL次のコマンドを正確に使用することから始めます。

sudo mysql -u root -p

ユーザー名がroot以外の場合は、上記のコマンドの「root」を自分のユーザー名に置き換えます。

sudo mysql -u <your-user-name> -p

その後、MySQLアカウント/パスワードを尋ねMySQLられ、アクセス権の問題は表示されなくなります。


この上で私を助けてください後、私は、「コマンドが見つかりません::mysqlのsudoの」取得パスワードを入力してください
Hitarth

「sudo:」ではなく、「sudo」である必要があります。タイプミスでない場合は、これが問題だと思います。
Kshitij Mittal

2

@Nickparsa…2つの問題があります:

1)。mysql -uroot -p MySQLコマンドラインではなく、bash(ターミナルとも呼ばれる)で入力する必要があります。次のように入力して、このエラーを修正します

exit

MySQLコマンドラインで。これで、bash /ターミナルのコマンドラインに戻りました。

2)。構文エラーがあります:

mysql -uroot -p; 

-pの前のセミコロンを移動する必要があります。正しい構文は次のとおりです。

mysql -uroot -p

bashコマンドラインに正しい構文を入力します。パスワードを設定している場合は、パスワードを入力してください。それ以外の場合は、Enterボタンを押してください。次のような応答が得られるはずです。 ここに画像の説明を入力してください

お役に立てれば!


こんにちは私はこれが賞賛した火の後で弓スクリーンをひどく得ました。/ usr / local / mysql / bin / mysqlですが、その後「CREATE DATABASE books;」を使用してデータベースを作成しようとすると、エラーが発生します:エラー1044(42000):ユーザー '' @ 'localhost'のデータベースへのアクセスが拒否されました本は私を助けてください
Hitarth

0

ほとんどの開発者はサーバーにログインします(私はmysqlデータベースのユーザー名とパスワードを持っていると思います)、Bashからmysql> prompt次のコマンドを使用して切り替えます(機能しません)

mysql -h localhost -u root -p

実行する必要があるのは、bashプロンプトで上記のコマンドを使用することです->実行すると、mysqlプロンプトに直接移動する場合にパスワードを要求し、

その後、データベース、テーブルを1つずつ作成できます

私は同様のデッドロックに直面したので、経験を共有しました


0

私は上記の回答に従ってコマンドを正解しましたが、見逃していたのはワークベンチ上でした。ユーザーの「ホストからの接続の制限」について言及しています。デフォルトは "%"です。これを "localhost"に変更すると、その後正常に接続します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.