99行目: 99行目:
|-
|-
!データベースを作成|リスト表示(S)|属性変更|削除
!データベースを作成|リスト表示(S)|属性変更|削除
|<code> CREATE | SHOW | ALTER | DROP DATABAE(S)</code>
|<code>CREATE | SHOW | ALTER | DROP DATABAE(S)</code>
|-
|-
!データベースを選択
!データベースを選択

2019年2月21日 (木) 14:06時点における版

Mysqlクライアント

データベースの作成 mysqladmin -u root -p create sampledb
ステータスの表示 mysqladmin -u root -p status
稼働状況の表示 mysqladmin -u root -p ping
スレッドリストの表示 mysqladmin -u root -p processlist
スレッド番号3を kill mysqladmin -u root -p kill 3
パスワードを変更 mysqladmin -u root -p password 'new-password'
スレーブ機能を開始 mysqladmin -u root -p start-slave

システム情報

システム変数の表示 SHOW STATUS
システム変数の変更 SET

ユーザ管理

ユーザリストを表示 SELECT user, host FROM mysql.user;
ユーザの追加 GRANT ALL ON sampledb.* TO user@localhost IDENTIFIED BY 'passwd';
権限の付与 GRANT INSERT, DELETE ON sampledb.* TO user@192.168.1.%;
権限の取り消し REVOKE INSERT, DELETE ON sampledb.* FROM user@domain.com;
権限を表示 SHOW GRANTS FOR user@localhost¥G
削除 DROP USER
ユーザ名の変更 RENAME USER old TO new
ユーザの削除 DROP USER user@localhost;
権限の更新 FLUSH PRIVILEGES;
root でパスワード変更 SET PASSWORD FOR user@localhost = password('new_passwd');
ユーザでパスワード変更 SET PASSWORD = password('new_passwd');

スタート・アップ

ログイン mysql -u user -p sampledb
セッション情報を表示 status
auto_increment値の確認 SHOW TABLE STATUS¥G
auto_increment値のセット ALTER TABLE hoge AUTO_INCREMENT=3;

auto_increment値の初期化

mysql > CREATE TABLE tmp LIKE hoge;    ← カラム定義だけ同じテーブルを作成
mysql > CREATE TABLE tmp AS SELECT * FROM hoge WHERE 1=2;    ← この書き方もできる
mysql > SET @a = 0;
mysql > INSERT INTO tmp SELECT @a := @a + 1 AS id, name FROM hoge

* 主キーが削除できない時はその列にインデックスを追加すると削除できるようになる

データベース

リスト表示(S)|属性変更|削除 SHOW | ALTER | DROP DATABAE(S)
データベースを選択 USE

テーブル操作

テーブルの作成 CREATE TABLE user (u_id int NOT NULL PRIMARY KEY AUTO_INCREMENT, name char(10) DEFAULT 'hoge' NOT NULL, birth date NOT NULL);
列名の変更 ALTER TABLE hoge CHANGE old_name new_name int NOT NULL;
列属性の変更 ALTER TABLE hoge MODIFY name date NOT NULL;
外部キーの追加・削除 ALTER TABLE foo ADD CONSTRAINT fkey FOREIGN KEY (a) REFERENCES bar (b);

*外部キーを追加するときは結びつけるカラムが相互に同じ型である事、挿入データが既にある場合は値が全て一致している必要がある

ダンプとリストア

ダンプとリストアには4つの方法がある。

  1. データファイル群のコピー - 古いディレクトリを tar で圧縮してから新しいディレクトリで展開
  2. mysqldump による論理バックアップとリストア - テーブル生成とデータ挿入の SQL文の塊として
  3. XtraBackup による物理バックアップとリストア - Percona社が提供しているオンライン物理バックアップツール。無料ながら非常に高機能
  4. LVM によるスナップショットとリストア - Linux の LVM機能を利用してバックアップを取る。fdisk や pvcreate などを利用

mysqldump の例:

$ mysqldump -u root --hex-blob --lock-tables sampledb > dump.sql    ← テーブルロックをかけつつ、バイナリデータでダンプ