LoginSignup
11
12

More than 5 years have passed since last update.

MySQLの便利コマンド

Last updated at Posted at 2016-07-12

■MySQL便利コマンド

  ◆mysqlログインにページングオプションを付ける
    例:mysql --pager='less -S' -u user -ppassword -h host

  ◆ターミナル上でSQL文の編集
    環境変数EDITORで設定しているエディタが起動する。
    ⇒editまたは\e
    ⇒編集後、『;』で実行

  ◆ターミナル上のSQL結果を改行させない
    ・SQL分のあとに\Gを付ける
    例:select * from table_name\G;

    ・mysqlログインにページングオプションを付ける
    例:mysql --pager='less -S' -uユーザー名 -pパスワード -hホスト名

  ◆MySQLのホスト名確認
    select @@hostname;

  ◆SQL文のタブ区切り出力
    ⇒mysql -uユーザー名 -pパスワード -hホスト名 データベース名 --default-character-set=文字コード -s -e "select * from xxxxx" > xxxxx.tsv
    ⇒カラム名出力 :mysql -umoriver5 -p moriver5 -e "select mail,id from user_prof" > nishizawa.txt
    ⇒カラム名なし  :mysql -umoriver5 -p moriver5 -s -e "select mail,id from user_prof" > nishizawa.txt

  ◆WHERE句をつけ忘れたSQL文の実行
    ⇒--safe_updatesを付加してmysqlにログイン
    ⇒例:/usr/local/mysql/bin/mysql --safe_updates -umoriver5 -p

  ◆SQL文に実行結果を見やすく表示
    ⇒SQL文の後に『\G』を付加する
    ⇒例:select * from user_prof \G;

  ◆接続照合設定
    ・クライアントからサーバーへSQL文を送信する場合の文字コード
     ⇒クライアントから送信されるSQLステートメントの文字コードがなんであるかサーバーに通知する。
     サーバーはcharacter_set_clientシステム変数値をそのままクライアントの送るステートメントのキャラクタセットにします。

     設定の仕方
     ⇒SET NAMES 文字コード;
     ⇒SET NAMES 文字コードは下記と等価です
     SET character_set_client = 文字コード;(クライアントからはここで設定した文字コードで送られる)
     SET character_set_results = 文字コード;(ここで設定した文字コードでクライアントに返送)
     SET character_set_connection = 文字コード;(クライアントから送られてきたステートメントをここで設定した文字コードで変換される)

    ・サーバーからクライアントへSQL文結果を送信する場合の文字コード
     ⇒クライアントにSQL文結果を返信する際、サーバーが使用するべき文字コードの設定

     設定の仕方
     ⇒SET CHARACTER SET 文字コード
     ⇒SET CHARACTER SET 文字コードは下記と等価です
     SET character_set_client = 文字コード;
     SET character_set_results = 文字コード;
     SET collation_connection = @@collation_database;

  ◆インデックス関連
  ・インデックスの確認⇒show index from テーブル名
  ・インデックスの削除⇒alter table テーブル名 drop index インデックス名

  ◆テーブルを作成して他のテーブルからデータ抽出してインサートするSQL
  ・create table テーブル名1 select * from テーブル名2 where 条件指定;

  ◆MySQLのユーザー作成
  ・CREATE USER 'your_name'@'localhost' IDENTIFIED BY 'your_password';

  ◆MySQLのユーザー作成後、データベースの権限設定
  ・GRANT ALL PRIVILEGES ON database_name.* TO 'your_name'@'localhost';

  ◆MySQLのユーザーパスワード変更
  ・SET PASSWORD FOR ユーザ名@"ホスト名"=password('変更後のパスワード');

  ◆MySQLのユーザー削除
  ・DELETE FROM mysql.user WHERE user='ユーザ名';

  ◆MySQLのユーザー権限削除
  ・REVOKE ALL PRIVILEGES ON * . * FROM ユーザー名;

  ◆MySQLの権限の再読み込み
  ・FLUSH PRIVILEGES;

11
12
1

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
11
12