ログイン。パスワード設定してるなら -p を付けパスワードを入力
mysql -u __root__ -p
ログイン(ルートで)
mysql -uroot
ログイン(リモートアクセス)
mysql -h xxx.xxx.xxx.xxx -u __username__ -p
場所確認 (例:/var/lib/mysql/)
SHOW VARIABLES LIKE 'datadir';
ユーザーの追加
CREATE USER '__username__'@'__host_name|localhost__' IDENTIFIED BY '__password__';
ユーザーにDB操作権限を付与
grant all privileges on __db_name__.__*|table_name__ to '__username__'@'__host_name|localhost__'__ IDENTIFIED BY 'password'__;
→ flush privileges;
ユーザーの権限を確認(for以降なければ現在のユーザー)
show grants__ for 'user_name'@'host_name'__;
ログイン中のユーザーのパスワードを設定
set password = password('__password__');
ユーザーのパスワードを設定
update mysql.user set password=password('__password__') where user='__username__';
→ flush privileges;
特定のユーザーのパスワードを設定
set password for '__username__'@'__localhost__' = password('__password__');
ユーザーを削除
DROP USER __username__@__host_name__;
ダンプ(バックアップ出力)
mysqldump -u __username__ -p -x __--all-databases|database_name__ __table_name(無ければ全テーブル)__ __(条件指定なら)--where="id < 5"__ > __output_filename__.dump
リストア(ダンプファイルから復元)
mysql -u __username__ -p __new_db_name__ < __dump_file_name.dump__
データベースの操作
データベース一覧の表示
SHOW DATABASES;
データベースの追加
CREATE DATABASE '__db_name__' DEFAULT CHARACTER SET utf8;
データベースの選択
USE __db_name__;
データベースの削除
DROP DATABASE __db_name__;
テーブルの操作
テーブル一覧の表示
SHOW TABLES __STATUS__;
カラムの表示
SHOW FULL COLUMNS FROM __table_name__;
ステータスを表示
SHOW TABLE STATUS (like "table_name");
画面幅より長い行を折り返さないよう別ビューで表示
pager less -S;__qで抜ける。戻すには nopager__
SQL実行結果をファイルに出力(シェル実行中)
pager cat > /temp/mysql-dump.txt;
SQL実行結果をファイルに出力
-u root -p -e "select * from __table_name__" __db_name__ > /tmp/mysql-dump.txt
テーブルの作成
CREATE TABLE __table_name__ (
__field_name__ __TINYINT|INT|VARCHAR(99)|TEXT|BLOB|DATE|DATETIME__ __NOT NULL__ __AUTO_INCREMENT__ __PRIMARY KEY__ COMMENT "__説明__"
)__必要なら ENGINE=__InnoDB__ DEFAULT CHARSET=utf8__;
テーブルの削除
DROP TABLE __table_name__;
テーブル構造の確認
desc __table_name__
SHOW FULL COLUMNS FROM __table_name__;
レコードの操作
レコードの追加
INSERT INTO __table_name__ (
__field1__, __field2__
) VALUES (
__val1__,__val2__
);
レコードの更新
__【注意】条件式が無いと、全レコード対象となる__
UPDATE
__table_name__
SET
__field1__="__val1__", __field1__="__val1__"
WHERE
__id = 5__;
レコードの削除
__【注意】条件式が無いと、全レコードが削除される__
DELETE FROM
__table_name__
WHERE
__id = 5 AND del_flg = 1__;
その他
-
mysql --version
バージョン確認(簡易) -
show status__ like "Threads_connected"__;
ステータス確認(like句無ければ全表示) -
mysql.server start
起動 -
mysql.server stop
停止 -
show index from table_name;
インデックスを確認