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
|
ユーザ管理
ユーザリストを表示
|
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 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
* 主キーが削除できない時はその列にインデックスを追加すると削除できるようになる
テーブル操作
テーブルの作成
|
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);
|
*外部キーを追加するときは結びつけるカラムが相互に同じ型である事、挿入データが既にある場合は値が全て一致している必要がある