MySQLデータベースをJavaコードやPythonコードなどのソースコードで接続する場合。 MySQLクライアントツールソフトウェアを使用して接続すると、発生しないエラーが発生します。エラーメッセージは、ユーザー「root」@「localhost」のアクセスが拒否されました(パスワード:はいを使用)です。 。この問題を解決するのは難しくありません。この例では、その方法を説明します。
1。アクセスが拒否された理由。
- この問題の理由は、ユーザーにグローバル権限を付与していないためです。
- つまり、選択を許可した後 ユーザーに対するグローバル権限があれば、問題は修正されます。
2。 MySQLデータベースにユーザーに特権を選択する権限を付与する方法。
2.1MySQLWorkbenchを介してユーザーに特権を付与します。
MySQL WorkbenchなどのMySQLクライアントツールを使用してMySQLデータベースを管理する場合は、以下の手順に従ってください。
2.1.1グローバル権限の追加。
- MySQL Workbenchを開き、ユーザーと権限をクリックします 左側のパネルのメニュー項目。
- 中央のパネルでユーザーアカウント名をクリックしてから、管理者の役割をクリックします 右側のパネルのタブ。
- 次に、 SELECTを確認します グローバル権限のチェックボックス エリア。
- [適用]をクリックします ボタンをクリックして変更を保存します。
2.1.2スキーマ権限の追加。
- 特別なスキーマデータベーステーブルでSQLコマンドを実行する場合は、スキーマ(データベース)の関連するスキーマ権限をユーザーアカウントに追加する必要があります。
- MySQL Workbenchを開き、ユーザーと権限をクリックします 左側のパネルのメニュー項目、中央のパネルのユーザーアカウントをクリックし、[スキーマ権限]をクリックします。 右側のパネルのタブ。
- [エントリの追加]をクリックします ボタンをクリックしてスキーマ選択ポップアップウィンドウを開き、必要なスキーマを選択します。
- 次に、関連する権限チェックボックスを選択します(例: SELECT 、挿入 、更新、 および削除 チェックボックス)を使用して、ユーザーアカウントに権限を割り当てます。
- 適用をクリックします ボタンをクリックして変更を保存します。
2.2コマンドラインによるユーザー権限の変更
コマンドラインでMySQLユーザーアカウントにグローバル権限またはスキーマ権限を付与する場合は、以下の手順に従ってください。
2.2.1コマンドラインでユーザーアカウントにグローバル権限を付与します。
- ターミナルを開き、次のコマンドを実行します。
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT ON *.* TO 'jerry'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
2.2.2ユーザーアカウントに特別なスキーマ権限を付与します。
- コマンドの下で実行されるターミナルを開きます。
:~$ mysql -u root -p Enter password: mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON dev2qa_example.* TO 'jerry'@'localhost'; Query OK, 0 rows affected (0.00 sec)