LoginSignup
2

More than 5 years have passed since last update.

【まとめ】MySQLコマンド Dash用スニペット

Last updated at Posted at 2018-08-18

ログイン。パスワード設定してるなら -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; インデックスを確認

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2