MySQL基本操作

ここでは、MySQLの基本操作について説明します。
インストール方法については MySQLインストール を参照ください。

データベースへの接続

データベース接続には mysql コマンドを使って接続をします。MySQLでは管理ユーザとして root というユーザが用意されています。

【書式】
# mysql -u ユーザ名

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 800 to server version: 3.23.58

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

mysql>

上記の例はrootユーザでログインした場合で簡単にDBへの接続ができました。
mysql> が接続したコンソール画面になります。

接続語は、SQL文を受け付けるようになります。psql では、SQL の最後に;(セミコロン)をつける必要があります。ここでは、SQLコマンドについては省略させて頂きます。

SQLコマンドではなくmysqlで利用できるコマンドはよく利用するコマンドは以下のものがあります。

\q 終了
\h \からはじまるmysqlコマンドのHELP表示です。その他のコマンドにつてはHELPを参照してください。

それではMySQLからログアウトしてみましょう。こちらも簡単です。
\q と入力するだけです。

mysql> \q
Bye

セキュリティ強化

初期状態ではrootユーザはパスワード無しで簡単にログインが可能になっています。
最低限、パスワードを決め誰でも接続できる環境は回避しましょう。

【書式】
# mysqladmin -u ユーザ名 password パスワード

# mysqladmin -u root password mysqlpass

上記の例では rootユーザ に mysqlpass のパスワードを設定したという意味です。
次回接続には -p オプションをつけて接続が必要となります。

# mysql -u root -p
Enter password:         <- パスワード入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10 to server version: 3.23.58

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

mysql>

現在のユーザ情報は データベース名 mysql
テーブル名 user
に保存されています。それでは中身を参照してみましょう。

mysql> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host      | password |
+------+-----------+----------+
| root | localhost | xxxxxxxx |
| root | hoge      |          |
|      | localhost |          |
|      | hoge      |          |
+------+-----------+----------+
4 rows in set (0.00 sec)

中身を見ると4ユーザの情報が確認できます。
内、3ユーザはパスワード設定の無い匿名ユーザとなりますので削除しておきましょう。

mysql> delete from mysql.user where password='';
Query OK, 2 rows affected (0.01 sec)
mysql> flush privileges;  <- 権限テーブルを編集したら設定が必要

上記コマンドはSQL文でpasswordが空だったら削除という意味になります。

データベースの追加・削除

データベースの追加・削除ができなくては何もできません。

(1) 直接MySQLへ接続してデータベースの追加・削除をする場合 【書式】
> create database `データベース名`;
※ バッククォート(`)でデータベース名を囲むのが正しいようです。無しでも実行可能ですが ハイフン付きのデータベースはエラーとなります。

mysql> create database `test`;
Query OK, 1 row affected (0.01 sec)

削除は create を drop とするだけです。
【書式】
> drop database `データベース名`;

mysql> drop database `test`;
Query OK, 0 rows affected (0.00 sec)

(2) mysqladminコマンドで作成する場合

mysqladminコマンドを利用する場合はMySQLへ接続する必要はありません。
どちらでも同じ結果が返ってくるので好みですね。

追加方法
【書式】
# mysqladmin -u root create データベース名 -p

# mysqladmin -u root create test -p

削除方法
【書式】
# mysqladmin -u root drop データベース名 -p

# mysqladmin -u root drop test -p

ユーザの作成

ユーザ作成は rootユーザでMySQLでログインして grant にて接続するようです。

【書式】
> grant all on `データベース名`.権限 to `ユーザ名` identified by 'パスワード';

> grant all on `test`.* to `hoge` identified by 'testpass'

hogeユーザを作成し、パスワードは testpass を設定。
また、testというデータベースにすべての権限を *(アスタリスク) で与えました。
権限については省略させていただきます。この辺を参考にしてください。
http://dev.mysql.com/doc/mysql/ja/index.html

これでMySQLの基本操作は完了です。

marronおすすめの参考書 by Amazon
Mysql 5 Certification Study Guide (Mysql Press) Mysql 5 Certification Study Guide (Mysql Press)
Sams / Paul Dubois, Stefan Hinz, Carsten Pedersen
¥ 6,110
High Performance MySQL High Performance MySQL
Oreilly & Associates Inc / Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy D. Zawodny, Arjen Lentz
¥ 5,092
Sams Teach Yourself PHP, MySQL and Apache All in One (Sams Teach Yourself) Sams Teach Yourself PHP, MySQL and Apache All in One (Sams Teach Yourself)
Sams / Julie C. Meloni
¥ 3,846

Copyright(C) 2004-2006 マロンくん.NET ~サーバ管理者への道~ All Rights. Reserved.