ユーザーの作成
ユーザーhogeを作成します。
書式
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘your password’
# mysql -u root -p
Enter password:
mysql> CREATE USER ‘hoge@localhost’ IDENTIFIED BY ‘your password’
Query OK, 0 rows affected (0.02 sec)
作成したユーザーを確認します。
mysql> SELECT user, host FROM mysql.user; +-------------------+-----------+ | user | host | +-------------------+-----------+ | hoge@localhost | % | | mysql. infoschema | localhost | | mysql.session | localhost | | mysql. sys | localhost | | root | localhost | +-------------------+-----------+ 5 rows in set (0.00 sec)
host名が%は、全てのhostから接続可能なワイルドカードとして扱われます。間違えたため、localhostに限定したユーザーを作成し直します。
‘hoge@localhost’ を ‘hoge’@’localhost’ で作成しないといけません。
mysql> CREATE USER ‘hoge’@’localhost’ IDENTIFIED BY ‘your password’
Query OK, 0 rows affected (0.02 sec)
確認。ユーザーhogeが作成されています。
mysql> SELECT user, host FROM mysql.user; +-------------------+-----------+ | user | host | +-------------------+-----------+ | hoge@localhost | % | | hoge | localhost | | mysql. infoschema | localhost | | mysql.session | localhost | | mysql. sys | localhost | | root | localhost | +-------------------+-----------+ 6 rows in set (0.00 sec)
ユーザーの削除
ユーザーuser hoge@localhost host%を削除します。
書式
DROP USER ‘username’@’hostname’;
mysql> DROP USER ‘hoge@localhost’@’%’;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT user, host FROM mysql.user; +-------------------+-----------+ | user | host | +-------------------+-----------+ | hoge | localhost | | mysql. infoschema | localhost | | mysql.session | localhost | | mysql. sys | localhost | | root | localhost | +-------------------+-----------+ 5 rows in set (0.00 sec)
ユーザーへの権限付与
無事にユーザーhogeが作成されましたが、まだ権限を持っていないため何もすることが出来ません。
rootでログインしたままの状態で、ユーザーhogeにhugahugaデータベースの全ての権限を付与します。
書式
GRANT ALL ON *.* TO user;
mysql> GRANT ALL ON hugahuga.* TO ‘hoge’@’localhost’;
Query OK, 0 rows affected (0.02 sec)
ユーザーhogeに付与した権限を確認します。
1行目に、GRANT USEGE ON *.* TO ‘hoge’@’localhost’と表示されました。USEGEという権限が付与されています。USEGEとは何も権限がないという権限です。*.*は全てのデータベースと全てのテーブルのことを意味します。
2行目は、GRANT ALL PRIVILEGES ON ‘hugahuga’.* TO ‘hoge’@’localhost’と表示されています。ALL PRIVILEGESとは全ての権限を表します。ユーザーhogeにデータベースhugahugaの全ての権限が付与されました。
mysql> SHOW GRANTS FOR 'hoge'@'localhost'; +------------------------------------------------------------+ | Grants for hoge@lovalhost | +------------------------------------------------------------+ | GRANT USEGE ON *.* TO 'hoge'@'localhost' | | GRANT ALL PRIVILEGES ON 'hugahuga'.* TO 'hoge'@'localhost' | +------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql> exit Bye
# service mysql-server restart
#再起動します。
データベースの作成
データベース一覧を確認します。データベースhugahugaがないためhugahugaを作成します。
書式
CREATE DATABASE データベース名;
USEを使って使用するデータベースを選択します。
USE データベース名
# mysql -u root -p Enter password: #rootでログインします。 mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> CREATE DATABASE hugahuga; Query OK, 1 row affected (0.05 sec) mysql> USE hugahuga Database changed
データベース一覧を確認します。
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | hugahuga | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> exit Bye # service mysql-server restart
データベースの確認
hogeに、使用するデータベース名を指定してログインします。
SELECT CURRENT_USER()で、実際に認証が行われたユーザー名とホスト名を返します。
DATABASE()で、データベース名を返します。
# mysql -u hoge -p hugahuga Enter password: mysql> SELECT CURRENT_USER(), DATABASE(); +----------------+------------+ | CURRENT_USER() | DATABASE() | +----------------+------------+ | hoge@localhost | hugahuga | +----------------+------------+