時間を節約するMySQLコマンド10個

11571 ワード

有名なphpMyAdminやSQLYogのようなGUIベースのMySQLクライアントはたくさんありますが、私はずっとオリジナルのMySQLコマンドラインクライアントが好きです.確かに、これらのコマンドラインインタフェース(CLI)に慣れていない前に、私たちはそれらを熟知するのに時間がかかります.特に、あなたは普段強いCLI環境を持つオペレーティングシステムの下で仕事をしているわけではありません.しかし、いくつかの練習を経て、CLIを通じてユーザーを管理し、データベースを閲覧し、他のタスクを実行することができます.その快感は他の人体にはありません.
この記事では、私が仕事で蓄積したMySQLコマンドラインクライアントのテクニックを紹介します.いずれかのテクニックを試しても、すべてのテクニックを試しても、必ず多くの時間を節約することを保証します.
ちなみに、MySQLコマンドラインクライアントはすべてのオペレーティングシステムに適応しており、もちろんWindowsも含まれていますが、WindowsのオリジナルCLI環境が怖いので、WindowsユーザーがConsoleをダウンロードしてインストールすることをお勧めします.Windowsコマンドラインの代替ソリューションであり、便利なテキスト選択、マルチラベルウィンドウなど、より大きな機能を提供しています.
1、ログインプロセスの自動化
正しい配置のMySQLサーバーはあなたがユーザー名とパスワードを提供して認証を行う必要があります.通常、私たちは直接mysqlコマンドの後にユーザー名を加えることができます.安全を考慮すると、パスワードはついてこないので、車に戻って実行すると、コマンドプロンプトはあなたにパスワードを入力するように注意します.

  
  
  
  
  1. %>mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. ...

この小さな改良により、1年に数千回のユーザー名を少なく入力ことができ、累計するとログイン時間を数時間節約し、1つを作成することができる.my.cnfファイル、ホームディレクトリの下に置いて、Windowsならファイル名はmyです.ini、そしてMySQLインストールディレクトリの下に置くには、このファイルに次のコードを追加し、あなたのログイン情報を使用してプレースホルダを置き換えてください.

  
  
  
  
  1. [client] host = your_mysql_server user = your_username password = your_password

このファイルの権限を正しく設定し、機密データが覗かれないようにしなければならない.
2、データベースの自動切り替え
クライアントにログインすると、ターゲット・データベースに切り替える必要があります.通常、次のコマンドを使用してデータベースを切り替えます.

  
  
  
  
  1. mysql>use wjgilmore_dev;

ログイン後にターゲット・データベースに自動的に切り替えたい場合は、前の手順で説明したファイルに次のコマンドを追加します.場所も[client]セクションに置くことに注意してください.

  
  
  
  
  1. database = your_database_name

3、スクリプトからコマンドを送信する
新しいデータベースを设计する时、私はMySQL Workbench(MySQLワークベンチ)を使ってモードと関系を设计するのが好きで、それはとても强力なツールで、あなたはグラフィックインタフェースの下であなたのモードを管理することができて、それからMySQLサーバーに同期して、あるいはSQLコマンドを1つのファイルにエクスポートして、后でMySQLに导入するのが便利です.
大量のストレージ・プロシージャを作成したり、長い接続を実行したりするなど、手書きコードが好きな場合は、SQLをファイルとして保存し、クライアントに渡して実行できます.たとえば、次のようにします.

  
  
  
  
  1. %>mysql < schema.sql

もちろん、接続文字列を指定するか、前のようにプロファイルで指定する必要があります.
4、垂直表示結果
単純な表モードでも、次の表は11フィールドで構成されています.フル構造クエリーを実行すると、次のように入力されます.

  
  
  
  
  1. mysql> select * from accounts where username = 'wjgilmore';
  2. +----+-----------+------------------+------------------------------
  3. ----+----------+-----------+------------+-----------+--------------
  4. --------------------+---------------------+---------------------+
  5. | id | username | email | password | zip_code | latitude | longitude | confirmed | recovery | created_on | last_login |
  6. +----+-----------+------------------+-------------------------------
  7. ---+----------+-----------+------------+-----------+-----------------
  8. -----------------+---------------------+---------------------+
  9. | 7 | wjgilmore | [email protected] | 2b877b4b825b48a9a0950dd5bd1f264d | 43201 | 39.984577 | -83.018692 | 1 | 8bnnwtqlt2289q2yp81tuge82fty501h | 2010-09-16 14:48:41 | 2010-10-27 15:49:44 |
  10. +----+-----------+------------------+----------------------------------
  11. +----------+-----------+------------+-----------+----------------------
  12. ------------+---------------------+---------------------+

明らかに私たちは受け入れることができなくて、このような表示結果を読むことができなくて、Gコマンドを使って上の醜い表示結果を垂直型に変換します.

  
  
  
  
  1. mysql> select * from accounts where username = 'wjgilmore'G
  2. *************************** 1. row ***************************
  3. id: 7 username: wjgilmore email: [email protected]
  4. password: 2b877b4b825b48a9a0950dd5bd1f264d zip_code: 43201
  5. latitude: 39.984577 longitude: -83.018692
  6. confirmed: 1 recovery: 8bnnwtqlt2289q2yp81tuge82fty501h
  7. created_on: 2010-09-16 14:48:41 last_login: 2010-10-27 15:49:44

これでもっと楽に見えます. 
5、Tabキー自動完了機能を有効にする
テーブル名とフィールド名を繰り返し入力するのは退屈で、mysqlクライアントにauto-rehashパラメータを渡すか、my.Iniファイルに次のコマンドを追加してTabキー自動完了機能を有効にします.

  
  
  
  
  1. [mysql] auto-rehash

6、変更プロンプト
私は何度もテーブルが存在しないことを知らせるモードを表示したり修正したりしたいと思っています.このような状況に遭遇すると、私はよく恐れています.多くの場合、データベースを間違えて登録し、削除すべきでないテーブルを誤って削除し、MySQLクライアントプロンプトを修正することで、現在の操作のデータベース名を表示させ、誤操作を避けることができます.mysqlクライアントにこのようなインタラクティビティを備えさせるために、ログイン後、次のコマンドを実行します.

  
  
  
  
  1. mysql>prompt [d]> [dev_wjgilmore_com]>

この効果を永続的に維持するには、次のコマンドをプロファイルに追加するだけで簡単です.

  
  
  
  
  1. prompt = [d]>

もちろん、データベース名の提示に限らず、現在の日時、ホスト名、ユーザー名も表示できます.MySQLマニュアルを参照してください.
7、安全更新による災害予防
前にも述べたように、表が意外に削除されると恐怖を引き起こす可能性があります.私だけが似たような経験をしているわけではないと信じています.DROP TABLEをうっかり実行したほか、WHERE句を無視したUPDATEコマンドが崩壊しました.例えば、次のコマンドを使用してユーザー名を変更したいとします.

  
  
  
  
  1. mysql>UPDATE users set User = 'wjgilmore' WHERE User = 'wjgilmore-temp';

しかし、急いで食事に出かけようとすると、後ろのWHEREの句を叩くのを忘れるかもしれません.

  
  
  
  
  1. mysql>UPDATE users set User = 'wjgilmore';

車に戻ると、usersテーブルのすべてのユーザーのユーザー名がwjgilmoreに変更されます.このような低レベルですが、災害的な結果をもたらすエラーを避けるために、プロファイルに次のコマンドを追加します.

  
  
  
  
  1. safe-updates

8、コマンドドキュメントの使用
多くのユーザーはmysqlクライアントの内蔵ドキュメントを知っています.helpコマンドを入力すると、長いコマンドのリストが表示されます.

  
  
  
  
  1. mysql>help
  2. ... List of all MySQL commands: Note that all text commands must be
  3. first on line and end with ';' ? (?) Synonym
  4. for `help'. clear (c) Clear the current input statement.
  5. connect (r) Reconnect to the server. Optional arguments are db and host. delimiter (d)
  6. Set statement delimiter. ...

DESCRIBEコマンドの使い方が分からない場合は、入力するだけです.

  
  
  
  
  1. mysql>help describe;
  2. Name: 'DESCRIBE' Description: Syntax:
  3. {DESCRIBE | DESC} tbl_name [col_name | wild] DESCRIBE provides information about the columns in a table.
  4. It is a shortcut for SHOW COLUMNS FROM. These statements also display information for views. (See [HELP SHOW COLUMNS].) ...

9.Pagerの使用
テーブルの1行のデータを表示したい場合がありますが、画面にフルスクリーンのデータが表示されることがよくあります.LIMIT句を使用する以外に、クライアントpagerを開き、システムページングユーティリティを設定します.

  
  
  
  
  1. mysql>pager more PAGER set to 'more'

pagerを無効にするには、nopagerコマンドを実行します.
10、出力内容をファイルにダンプする
SQLの実行結果をテキストファイルに出力する必要がある場合があります.SELECT INTO OUTFILE commandコマンドを使用して目的を達成するか、mysqlクライアントでteeコマンドを直接有効にし、出力ファイルを作成して同じ機能を実現することができます.

  
  
  
  
  1. mysql>tee sales_report.txt

小結
一部を選ぶにしても、この10のテクニックを試してみるにしても、多くの時間と精力を節約し、苦痛を軽減します.他のMySQLコマンドラインのテクニックを知っているなら、コメントで共有してみてください.