MySQLでユーザーを作成し、リモートアクセス権限を付与する
- 604単語
- 3分
- 20 Jul, 2024
MySQLでリモートアクセス可能なユーザーを作成し、特定のデータベースに対する権限を付与することは一般的な要件です。この記事では、その手順を詳細に説明します。
手順1:MySQLにログイン
まず、管理者権限(例えば、rootユーザー)でMySQLにログインします:
1mysql -u root -p
手順2:データベースを作成し、エンコーディングを設定する
project
という名前のデータベースを作成し、utf8mb4
エンコーディングを使用します:
1CREATE DATABASE project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
手順3:ユーザーを作成し、任意のIPアドレスからのアクセスを許可する
myuser
という名前のユーザーを作成し、任意のIPアドレスからのアクセスを許可します。パスワードはmyuser_password
とします:
1CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser_password';
手順4:ユーザーに権限を付与する
myuser
ユーザーに対してproject
データベースの全権限を付与します:
1GRANT ALL PRIVILEGES ON project.* TO 'myuser'@'%';
手順5:権限をリフレッシュする
権限テーブルをリフレッシュして変更を有効にします:
1FLUSH PRIVILEGES;
完全なSQLスクリプト
以下は、データベースの作成、ユーザーの作成、および権限の付与のすべての手順をカバーする完全なSQLスクリプトです:
1-- データベースを作成し、エンコーディングを設定する2CREATE DATABASE project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;3
4-- ユーザーを作成し、任意のIPアドレスからのアクセスを許可する5CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser_password';6
7-- ユーザーに権限を付与する8GRANT ALL PRIVILEGES ON project.* TO 'myuser'@'%';9
10-- 権限をリフレッシュする11FLUSH PRIVILEGES;
既存のユーザーを削除する
既にmyuser
という名前のユーザーが存在し、再作成したい場合は、既存のユーザーを削除できます:
1DROP USER 'myuser'@'localhost';2DROP USER 'myuser'@'%';3
4FLUSH PRIVILEGES;
MySQLのリモートアクセスを許可する設定
MySQLの設定ファイルがリモートアクセスを許可していることを確認します。MySQLの設定ファイル(例:/etc/mysql/mysql.conf.d/mysqld.cnf
または/etc/my.cnf
)を編集し、以下の行を見つけます:
1bind-address = 127.0.0.1
これをコメントアウトするか、次のように変更します:
1bind-address = 0.0.0.0
その後、MySQLサービスを再起動します:
1sudo systemctl restart mysql
ファイアウォールの設定
サーバーにファイアウォールがある場合は、MySQLポート(通常は3306)がファイアウォールを通過できるようにします。例えば、ufw
を使用する場合:
1sudo ufw allow 3306/tcp
以上の手順を実行することで、リモートからMySQLデータベースにアクセスできるユーザーを作成し、特定のデータベースに対する操作権限を付与することができます。