MySQLの使い方メモ

提供: Astarisk Works Wiki

このページはGUIツールなど使わず、コマンドラインでMySQLを管理するときのメモです。

目次

mysqlコマンドによる接続

パスワードをきちんと設定している場合、-pオプションをつける。

mysql -p

DB管理

データベース一覧の参照

mysqlコマンドでmysqlのシェルに入って次のコマンドを実行する。

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

データベースの作成と削除

mysqlクライアントに入り、次のコマンドを実行する

mysql> CREAETE DATABASE データベース名;

なおCREAETE DATABASEは小文字でもかまわない

また、mysqladminを使って作成する方法もある。この場合はOSのシェルから直接次のコマンドを実行する

>mysqladmin create データベース名

ユーザ管理

ユーザ一覧の参照

mysqlクライアントで次のコマンドを実行する。

mysql> select User, Host FROM mysql.user;
+-----------+---------------------------+
| User      | Host                      |
+-----------+---------------------------+
| root      | 127.0.0.1                 | 
|           | localhost                 | 
+-----------+---------------------------+
2 rows in set (0.00 sec)

ユーザの追加

mysqlクライアントで次のコマンドを実行する

mysql> GRANT アクセス権限 ON データベース名.テーブル名 TO ユーザ名@'接続元' IDENTIFIED BY 'パスワード';

各パラメータの説明は次のとおり

アクセス権限
データベース名.テーブル名で指定するリソースにアクセスする際の権限を指定する。
すべての権限を与える際にはALLを指定する
データベース名.テーブル名
登録するユーザにアクセス権限を与えるデータベースとその中のテーブルを定義する。
すべてのオブジェクトにアクセスさせる場合は*を指定する
ユーザ名
追加するユーザ名を指定する
接続元
追加するユーザが指定したデータベースにアクセスする際の接続もとのアドレスを指定する。
IPアドレスかDNSに登録された名前で指定する。
ワイルドカードは%で指定する。たとえば192.168.1.0/24のネットワークのどの端末からもアクセスを許可する場合は192.168.1.%と指定する

  • 例)sample_dbのすべてのテーブルにローカルホストから全権限でアクセスできるユーザhogeを追加する場合
mysql> GRANT ALL ON sample_db.* TO hoge@'localhost' IDENTIFIED BY 'hoge_password';


ネットワーク設定

localhost以外からアクセスする場合にはmy.cnfのbind-addressで待ち受けアドレスを指定する。どのアドレスでも接続を許可する場合にはコメントアウトする。

メンテナンス

バックアップ

ここではmysqldumpを用いたダンプを説明する。

>mysqldump -F -l データベース名 > 出力ファイル名

-Fオプションはダンプ前にすべてログをフラッシュし、-l オプションはデータベース毎にロックをかけてからダンプする。

個人用ツール