基本

MySQL接続

$ mysql -u USER

パスワードを使用する場合

$ mysql -u USER -p

対象とするデータベースの宣言

mysql> use DBNAME;

データベース操作

データベース作成

mysql> create database DBNAME default character set utf8;

データベース削除

mysql> drop database DBNAME;

データベースの文字コードを変更

mysql> alter database DATABASE character set utf8;

データベース確認

mysql> show databases;

テーブル確認

mysql> show tables from DBNAME;
mysql> show tables;

テーブル構造確認

mysql> show create table TABLE;
mysql> desc TABLE;

テーブルの文字コードを変更

mysql> alter table TABLE default character set utf8;

テーブルの状態を確認

mysql> show table status like 'TABLE'\G

照合順序を確認

いずれもCollationフィールドが照合順序になります。

テーブルの場合

mysql> show table status from DBNAME;

カラムの場合

mysql> show full columns from TABLE;

ユーザーと権限

ユーザー作成

mysql> create user 'USER'@'localhost';
mysql> create user 'USER'@'localhost' identified by 'PASSWORD';

ユーザー削除

mysql> drop user 'USER'@'localhost';

パスワード変更

mysql> SET PASSWORD FOR root@localhost = PASSWORD('pass');

ユーザーの確認

mysql> select host, user from mysql.user;

データベース作成の権限を付与

mysql> grant create on *.* to 'USER'@'localhost';

テーブル操作の権限を付与

mysql> grant select,update,insert,delete on DB.* to 'USER'@'localhost';

権限の剥奪

mysql> revoke all on DB.* from 'USER'@'localhost';

権限の確認

mysql> show grants for 'USER'@'localhost';

auto_increment

auto_incrementの確認

次に割り振られる番号が表示されます。

mysql> SELECT auto_increment FROM information_schema.tables WHERE table_name = 'TABLE';

auto_incrementの変更

次に割り振りたい番号を指定。

mysql> ALTER TABLE autoincrement_test AUTO_INCREMENT=4;

ログ

実行されたSQL文を記録する

# vi /etc/my.cnf
[mysqld]
general_log=1
log_output=FILE
general_log_file=/var/log/mysqld_query.log
# service mysqld restart

バックアップとリストア

バックアップ

$ mysqldump -u USER -p DBNAME > DBDATA.DUMP

特定のテーブルのみをバックアップする場合
複数のテーブルの場合は半角スペースを開けて続けて記述

$ mysqldump -u USER -p DBNAME TABLENAME > DBDATA.DUMP

文字化けする場合は以下のオプションを付けてみる

--default-character-set=binary

復元

データベースは作成しておいてテーブルは無い状態にしておく

$ mysql -u USER -p DBNAME < DBDATA.DUMP

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-19 (日) 19:09:37