- 追加された行はこの色です。
- 削除された行はこの色です。
*MySQL接続 [#kc6edbee]
#contents
$ mysql -u USER
*基本 [#uaca29a0]
*ユーザー作成 [#eefd5395]
**MySQL接続 [#id318377]
mysql> create user 'USER'@'localhost';
mysql> create user 'USER'@'localhost' identified by 'PASSWORD';
$ mysql -u USER
*データベース作成の権限を付与 [#n5376363]
パスワードを使用する場合
mysql> grant create on *.* to 'USER'@'localhost';
$ mysql -u USER -p
*テーブル操作の権限を付与 [#ldc29dbd]
**対象とするデータベースの宣言 [#k22ad36d]
mysql > grant select,update,insert,delete on DB.* to 'USER'@'localhost';
mysql> use DBNAME;
*権限の確認 [#iffdd150]
*データベース操作 [#pa11f39f]
mysql> show grants for 'USER'@'localhost';
**データベース作成 [#ke051f6b]
*データベース作成 [#xf4e5158]
mysql> create database DBNAME default character set utf8;
*データベース削除 [#ydafe8e1]
**データベース削除 [#z310d745]
mysql> drop database DBNAME;
*データベース確認 [#k55837e2]
**データベースの文字コードを変更 [#o2367e0a]
mysql> alter database DATABASE character set utf8;
**データベース確認 [#p11496af]
mysql> show databases;
*テーブル確認 [#f78ce2d1]
**テーブル確認 [#a1fe78e1]
mysql> show tables from DBNAME;
mysql> show tables;
*対象とするデータベースの宣言 [#y0d23a46]
**テーブル構造確認 [#q40be972]
mysql> use DBNAME;
最初に宣言しておけば、SQLの入力がラクになる。~
テーブルの確認も以下でOK
mysql> show create table TABLE;
mysql> desc TABLE;
mysql> show tables;
**テーブルの文字コードを変更 [#cf4ce529]
*テーブル構造確認 [#e28cc0f1]
mysql> alter table TABLE default character set utf8;
mysql> show create table TABLE;
**テーブルの状態を確認 [#d640f19d]
*テーブルの状態を確認 [#g94d839c]
mysql> show table status like 'TABLE'\G
*auto_incrementの確認 [#ae48ef75]
**照合順序を確認 [#d8507875]
いずれもCollationフィールドが照合順序になります。
テーブルの場合
mysql> show table status from DBNAME;
カラムの場合
mysql> show full columns from TABLE;
*ユーザーと権限 [#bcb27275]
**ユーザー作成 [#x8de0600]
mysql> create user 'USER'@'localhost';
mysql> create user 'USER'@'localhost' identified by 'PASSWORD';
**ユーザー削除 [#q6fc29bf]
mysql> drop user 'USER'@'localhost';
**パスワード変更 [#t148ecc2]
mysql> SET PASSWORD FOR root@localhost = PASSWORD('pass');
**ユーザーの確認 [#g50283c5]
mysql> select host, user from mysql.user;
**データベース作成の権限を付与 [#pacd0433]
mysql> grant create on *.* to 'USER'@'localhost';
**テーブル操作の権限を付与 [#zf7ca59f]
mysql> grant select,update,insert,delete on DB.* to 'USER'@'localhost';
**権限の剥奪 [#r6d18845]
mysql> revoke all on DB.* from 'USER'@'localhost';
**権限の確認 [#feb2c7b6]
mysql> show grants for 'USER'@'localhost';
*auto_increment [#zdd17d7b]
**auto_incrementの確認 [#vaaaede4]
次に割り振られる番号が表示されます。
SELECT auto_increment FROM information_schema.tables WHERE table_name = 'TABLE';
mysql> SELECT auto_increment FROM information_schema.tables WHERE table_name = 'TABLE';
*auto_incrementの変更 [#pd1ca207]
**auto_incrementの変更 [#rd6018d1]
次に割り振りたい番号を指定。
ALTER TABLE autoincrement_test AUTO_INCREMENT=4;
mysql> ALTER TABLE autoincrement_test AUTO_INCREMENT=4;
*バックアップ [#uc12f735]
*ログ [#e67a0bef]
$ mysqldump --opt -c -u USER -pPASSWORD DBNAME > DBDATA.DUMP
**実行されたSQL文を記録する [#efedde1f]
*復元 [#id66cd19]
# vi /etc/my.cnf
データベースは作成しておいてテーブルは無い状態にしておく
[mysqld]
general_log=1
log_output=FILE
general_log_file=/var/log/mysqld_query.log
$ mysql -u USER -p DBNAME < DBDATA.DUMP
# service mysqld restart
*パスワード変更 [#a77b1210]
*バックアップとリストア [#w629d7bd]
mysql>SET PASSWORD FOR root@localhost = PASSWORD('pass');
**バックアップ [#x884b6fa]
*ユーザーの確認 [#m088dd76]
$ mysqldump -u USER -p DBNAME > DBDATA.DUMP
select host, user, password from mysql.user;
特定のテーブルのみをバックアップする場合~
複数のテーブルの場合は半角スペースを開けて続けて記述
$ mysqldump -u USER -p DBNAME TABLENAME > DBDATA.DUMP
文字化けする場合は以下のオプションを付けてみる
--default-character-set=binary
**復元 [#xc5d0f27]
データベースは作成しておいてテーブルは無い状態にしておく
$ mysql -u USER -p DBNAME < DBDATA.DUMP