MySQLのテーブルとユーザ作成

Switzerland の 1HOTEL Heidiからdb作成の依頼が来たという想定で作成してみる。

dbの作成(user_db)

# mysql -u debian-sys-maint -p
Enter password: (設定していたパスワード)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 4.0.24_Debian-10sarge1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database user_db;
Query OK, 1 row affected (0.03 sec)

mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
| user_db  |
+----------+
3 rows in set (0.00 sec)

mysql> exit

Bye

ちなみにdbの削除は、createの代わりにdropすればよろしい。

ユーザの作成(heidi)

mysql> grant select,insert,delete,update,create,drop,file,
alter,index on *.* to heidi identified by 'maienfeld19';
mysql> flush privileges;
mysql>

ユーザでlogin(db_user)

$ mysql -u heidi -p
Enter password: maielfeld19

mysql> use user_db;
Database changed
mysql>

とりあえず、phpで使う時はphp-mysqlパッケージを忘れないように。

権利関係の設定について。

上の作成方法だとdbの利用権限に問題が出る場合もありうるようだ。以下のようにもしてみる。

グローバルな権限をなしに設定する。

mysql> grant usage on *.* to heidi@localhost;

データベース yuki に限って全ての権限を heidi に与える。

mysql> grant all on yuki.* to heidi@localhost;

好き放題の権限を heidiに与える。

mysql> grant all on *.* to heidi@localhost;

1.HOTEL Heidi :: なんと実在するようです。しかしもちろん本例題とはまるで関係がありません。