MySQL の一般的なツール例の概要 (推奨)

MySQL の一般的なツール例の概要 (推奨)

序文

この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習のために共有します。早速、詳しい紹介を見てみましょう。

1. mysql(クライアント接続ツール)

データベースに接続するために最も頻繁に使用されるクライアント ツールの構文は次のとおりです。

mysql [オプション] [データベース]

ここで、options は、mysql の利用可能なオプションを指します。一度に 1 つ以上書き込むことも、まったく書き込まないこともできます。database は、接続されたデータベースを指します。一度に 1 つだけ書き込むことも、まったく書き込まないこともできます。書き込まない場合は、接続が成功した後に「use database」コマンドを使用して操作するデータベースを入力する必要があります。

1. 接続オプション

オプションはさまざまな方法で表現できます。たとえば、次のようになります。

# 3つの方法はすべて可能です shell> mysql -u root
シェル>mysql -uroot
シェル> mysql -user=root

1. 接続オプション

  • -u, --user=name ユーザー名を指定する
  • -p, --password[=name] パスワードを指定
  • -h, --host=name はサーバーのIPまたはドメイン名を指定します
  • -P, --port=# 接続ポートを指定する

通常、ローカル環境では、便宜上、設定ファイル my.cnf で現在のユーザーとパスワードを設定できます。設定後、mysql を直接実行してデータベースに接続できます。

[クライアント]
ユーザー=root
パスワード=000000
ポート = 3306
ソケット = /tmp/mysql.sock
デフォルトの文字セット = utf8mb4

設定後、mysql を実行するだけです。

zj@bogon:~$ mysql
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは19です
...

リモート サーバーにログインするには、アドレスとポートを指定する必要があります。

シェル>mysql -h 192.168.10.10 -P 3306 -uroot -p

注:正式な運用環境では、セキュリティ上の理由から、通常、root を使用してデータベースを直接操作するのではなく、アプリケーション アカウントを作成し、適切な権限を付与する必要があります。デフォルトのポート (3306) は通常使用されず、オペレーティング システムの空いているポートに変更できます。

2. クライアントの文字セットオプション

--default-character-set=文字セット名

このオプションは、サーバー文字セット オプションとして、my.cnf の [mysqld] グループでも設定できます。同様に、クライアント文字セット オプションとして、my.cnf の [mysql] グループで設定することもできます。これにより、mysql ツールを使用してデータベースに接続するたびに、このクライアント文字セットが自動的に使用されるようになります。もちろん、mysql コマンドラインでクライアントの文字セットを手動で指定することもできます。

シェル> mysql -u ユーザー -default-character-set=文字セット

これは、mysql クライアントが正常に接続した後に実行するのと同じです。

名前の文字セットを設定します。

3. 実行オプション

-e, --execute=name // SQL 文を実行して終了する

このオプションを使用すると、MySQL クライアントで SQL ステートメントを直接実行できるため、一部のバッチ スクリプトに特に便利です。

zj@bogon:~$ mysql mysql -e "ユーザーからユーザー、ホストを選択"
+-----------+------------+
| ユーザー | ホスト |
+-----------+------------+
| ルート | 127.0.0.1 |
| mysql.sys | ローカルホスト |
| ルート | ローカルホスト |
+-----------+------------+

この方法では、セミコロン (;) で区切って複数の SQL ステートメントを連続して実行できます。

4. 書式設定オプション

  • -E, --vertical 出力をフィールド順に縦に表示します
  • -s, --silent は、mysql の行ボックス表示を削除します。

「-E」オプションは、MySQL で SQL ステートメントを実行した後に「G」を追加するのと似ており、-e と一緒に使用されることが多いです。

2. myisampack (myisam テーブル圧縮ツール)

myisampack は、myisam ストレージ エンジンのテーブルを非常に高い圧縮率で圧縮できるテーブル圧縮ツールです。これにより、圧縮されたテーブルは、圧縮前よりもはるかに小さなスペースを占めるようになります。ただし、圧縮されたテーブルは読み取り専用テーブルになり、DML 操作は実行できなくなります。

3. mysqladmin (MySQL 管理ツール)

mysqladmin は管理操作を実行するためのクライアント プログラムです。サーバーの構成や現在のステータスを確認したり、データベースを作成したり削除したりすることができます。その機能は MySQL クライアントの機能と非常に似ていますが、主な違いは、いくつかの管理機能に重点を置いていることです。

使用する構文:

shell> mysqladmin [オプション] コマンド [コマンドオプション]...

次のコマンドを実行できます。

 create databasename 新しいデータベースを作成します debug ログにデバッグ情報を書き込むようにサーバーに指示します drop databasename データベースとそのすべてのテーブルを削除します Extended-status サーバーから拡張ステータスメッセージを表示します flush-hosts キャッシュされたすべてのホストをフラッシュします
 flush-logs すべてのログをフラッシュする
 flush-status ステータス変数をクリアする
 flush-tables すべてのテーブルをフラッシュする
 flush-threads スレッドキャッシュをフラッシュする
 flush-privileges 許可テーブルを再ロードします (reload と同じ)
 kill id,id,... mysql スレッドを強制終了します
 パスワード [新しいパスワード] 現在の形式で古いパスワードを新しいパスワードに変更します
 ping mysqldが生きているか確認する
 processlist サーバー内のアクティブなスレッドのリストを表示します
 リロード 許可テーブルを再ロードする
 更新 すべてのテーブルをフラッシュし、ログファイルを閉じて開きます
 シャットダウン サーバーを停止する
 ステータス サーバーからの短いステータスメッセージを表示します
 start-slave スレーブを起動する
 stop-slave スレーブを停止する
 変数 利用可能な変数を出力します
 バージョン サーバーからバージョン情報を取得する

例:

zj@bogon:/usr/local/mysql/bin$ mysqladmin -uroot -p シャットダウン
パスワードを入力してください:

4. ログ管理ツール

サーバーによって生成されたバイナリ ファイルはバイナリ形式で保存されるため、これらのファイルのテキスト形式を確認する場合は、mysqlbinlog ログ管理ツールを使用します。

使用方法は次のとおりです。

shell> mysqlbinlog [オプション] ログファイル1 ログファイル2...

多くのオプションがあります:

  • -d, --database=name: データベース名を指定し、指定されたデータベースに関連する操作のみを一覧表示します。
  • -o, --offset=#: ログ内のコマンドの最初の n 行を無視します。
  • -r, --result-file=name: 指定されたファイルにテキスト形式のログを出力します
  • -s, --short-form: 一部の情報を省略して、単純な形式で表示します。
  • --start-datetime=name --stop-datetime=name: 指定された日付間隔内のすべてのログ。
  • --start-position=# --stop-position=#: 指定された位置間隔内のすべてのログ

1. 例の準備: 新しいログを作成し、新しいデータベース t1 と t2 を作成し、それぞれ新しいテーブル test1 と test2 を作成します。

MySQL [(なし)]> マスターをリセットします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

MySQL [(なし)]> テーブル t1(id int、name varchar) を作成します。
エラー 1046 (3D000): データベースが選択されていません
MySQL [(なし)]> マスターをリセットします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

MySQL [(なし)]> データベース t1 を作成します。
クエリは正常、1 行が影響を受けました (0.04 秒)

MySQL [(なし)]> データベース t2 を作成します。
クエリは正常、1 行が影響を受けました (0.02 秒)

MySQL [(なし)]> t1 を使用します。
データベースが変更されました
MySQL [t1]> テーブル test1(id int, name varchar(30)) を作成します。
クエリは正常、影響を受けた行は 0 行 (0.11 秒)

MySQL [t1]> test1 に値 (1,'zj') を挿入します。
クエリは正常、1 行が影響を受けました (0.14 秒)

MySQL [t1]> test1 に値 (2,'zj2') を挿入します。
クエリは正常、1 行が影響を受けました (0.02 秒)

MySQL [t1]> t2 を使用します。
データベースが変更されました
MySQL [t2]> テーブル test2(id int,name varchar(30)) を作成します。
クエリは正常、影響を受けた行は 0 行 (0.02 秒)

MySQL [t2]> test2に挿入します。t1.test1から*を選択します。
クエリは正常、2 行が影響を受けました (0.03 秒)
記録: 2 重複: 0 警告: 0

MySQL [t2]> t1.test1 から * を選択します。
+------+------+
| ID | 名前 |
+------+------+
| 1 | じゅう |
| 2 | zj2 |
+------+------+
セットに2行(0.02秒)

MySQL [t2]> test2 から * を選択します。
+------+------+
| ID | 名前 |
+------+------+
| 1 | じゅう |
| 2 | zj2 |
+------+------+
セット内の 2 行 (0.00 秒)

2. パラメータを追加せずにすべてのログを表示する

注意:対象ファイルにアクセスする権限が必要です。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001
[sudo] zjのパスワード: 
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;
区切り文字 /*!*/;
# 4時
#170920 20:44:49 サーバー ID 1 end_log_pos 123 CRC32 0x42fd5a4d 開始: binlog v 4、サーバー v 5.7.18-log が 170920 20:44:49 に起動時に作成されました

......

テーブル test2 を作成します (id int,name varchar(30))
//*!*/;
# 1366 で
#170920 20:50:29 サーバー ID 1 end_log_pos 1431 CRC32 0x18a95938 Anonymous_GTID last_committed=6 シーケンス番号=7
@@SESSION.GTID_NEXT を 'ANONYMOUS'/*!*/ に設定します。
# 1431で
#170920 20:50:29 サーバー ID 1 end_log_pos 1509 CRC32 0x2fa8bd6c クエリ thread_id=4 exec_time=0 error_code=0
タイムスタンプを 1505911829/*!*/ に設定します。
始める
//*!*/;
# 1509で
#170920 20:50:29 サーバー ID 1 end_log_pos 1622 CRC32 0x77ce6f3b クエリ thread_id=4 exec_time=0 error_code=0
タイムスタンプを 1505911829/*!*/ に設定します。
test2に挿入 t1.test1から*を選択
//*!*/;
# 1622年
#170920 20:50:29 サーバー ID 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
専念 /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* mysqlbinlog によって追加されました */ /*!*/;
区切り文字 ;
# ログファイルの終了
/*!50003 COMPLETION_TYPE を @OLD_COMPLETION_TYPE に設定*/;
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 0 に設定します*/;

3. -dオプションを追加して、t2データベースの操作ログのみを表示します。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -d t2
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;

......

タイムスタンプを 1505911829/*!*/ に設定します。
test2に挿入 t1.test1から*を選択
//*!*/;
# 1622年
#170920 20:50:29 サーバー ID 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
専念 /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* mysqlbinlog によって追加されました */ /*!*/;
区切り文字 ;
# ログファイルの終了
/*!50003 COMPLETION_TYPE を @OLD_COMPLETION_TYPE に設定*/;
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 0 に設定します*/;

4. -oオプションを追加して、コマンドの最初の20行を無視します。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;
区切り文字 /*!*/;
# 4時
#170920 20:44:49 サーバー ID 1 end_log_pos 123 CRC32 0x42fd5a4d 開始: binlog v 4、サーバー v 5.7.18-log が 170920 20:44:49 に起動時に作成されました
# 警告: このバイナリログは使用中か、適切に閉じられていません。
ロールバック/*!*/;
バイナリログ'
wWLCWQ8BAAAAdwAAAHsAAAABAAQANS43LjE4LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADBYsJZEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAACgoKKioAEjQA
AU1a/UI=
'/*!*/;
# 1509で
#170920 20:50:29 サーバー ID 1 end_log_pos 1622 CRC32 0x77ce6f3b クエリ thread_id=4 exec_time=0 error_code=0
`t2`/*!*/ を使用します。
タイムスタンプを 1505911829/*!*/ に設定します。
@@session.pseudo_thread_id=4/*!*/ を設定します。
@@session.foreign_key_checks=1、@@session.sql_auto_is_null=0、@@session.unique_checks=1、@@session.autocommit=1/*!*/ を設定します。
@@session.sql_mode を 1436549152/*!*/ に設定します。
@@session.auto_increment_increment=1、@@session.auto_increment_offset=1/*!*/ を設定します。
/*!\C utf8mb4 *//*!*/;
@@session.character_set_client=45、@@session.collat​​ion_connection=45、@@session.collat​​ion_server=45/*!*/ を設定します。
@@session.lc_time_names=0/*!*/ を設定します。
@@session.collat​​ion_database=DEFAULT/*!*/ を設定します。
test2に挿入 t1.test1から*を選択
//*!*/;
# 1622年
#170920 20:50:29 サーバー ID 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
専念 /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* mysqlbinlog によって追加されました */ /*!*/;
区切り文字 ;
# ログファイルの終了
/*!50003 COMPLETION_TYPE を @OLD_COMPLETION_TYPE に設定*/;
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 0 に設定します*/;

5. -r オプションを追加して、上記の結果をファイル resultfile に出力します。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20 -r ./logfile
zj@bogon:/usr/local/mysql/bin$ sudo more ./logfile
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;
...

6. 結果には多くのコンテンツが表示され、乱雑になっています。上記のコンテンツをシンプルに表示するには、-s オプションを追加します。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20 -s
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 1 に設定します*/;
/*!50003 @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0 に設定*/;
区切り文字 /*!*/;
ロールバック/*!*/;
`t2`/*!*/ を使用します。
タイムスタンプを 1505911829/*!*/ に設定します。
@@session.pseudo_thread_id=999999999/*!*/ を設定します。
@@session.foreign_key_checks=1、@@session.sql_auto_is_null=0、@@session.unique_checks=1、@@session.autocommit=1/*!*/ を設定します。
@@session.sql_mode を 1436549152/*!*/ に設定します。
@@session.auto_increment_increment=1、@@session.auto_increment_offset=1/*!*/ を設定します。
/*!\C utf8mb4 *//*!*/;
@@session.character_set_client=45、@@session.collat​​ion_connection=45、@@session.collat​​ion_server=45/*!*/ を設定します。
@@session.lc_time_names=0/*!*/ を設定します。
@@session.collat​​ion_database=DEFAULT/*!*/ を設定します。
test2に挿入 t1.test1から*を選択
//*!*/;
専念 /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* mysqlbinlog によって追加されました */ /*!*/;
区切り文字 ;
# ログファイルの終了
/*!50003 COMPLETION_TYPE を @OLD_COMPLETION_TYPE に設定*/;
/*!50530 @@SESSION.PSEUDO_SLAVE_MODE を 0 に設定します*/;

7. 5:00:00~5:01:00の間のログを表示するには、「--start-datetime --stop-datetime」オプションを追加します。

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-datetime="2017/09/30 05:00:00" --stop-datetime='2017/09/30 05:01:00'

開始日と終了日のいずれか一方のみ入力できます。開始日のみを記述した場合、範囲は開始日からログの終了日までであることを意味し、終了日のみを記述した場合、ログは指定された終了日まで始まることを意味します。

8. --start-position=# および --stop-position=# は日付範囲に似ていますが、範囲をより正確に表現できます。

sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-position=4 --stop-datetime=100

5. mysqlcheck (myisam テーブルメンテナンスツール)

mysqlcheck ツールは、MyISAM テーブルをチェックおよび修復できるほか、テーブルを最適化および分析することもできます。実際、MySQL ツールのチェック、修復、分析、最適化の機能が統合されています。

mysqlcheck を呼び出す方法は 3 つあります。

シェル> mysqlcheck [オプション] db_name [テーブル]
シェル> mysqlcheck [オプション] --database DB1 [DB2 DB3...]
シェル> mysqlcheck [オプション] --all-database

オプションの共通オプションは次のとおりです。

  • -c, --check (チェックリスト)
  • -r, --repair (テーブルを修復)
  • -a, --analyze (テーブルを分析)
  • -o, --optimize (テーブルを最適化)

デフォルトのオプションは -c (チェックリスト) です。

例:

1. チェックリスト

zj@bogon:/data/mysql$ mysqlcheck -c t2
t2.test1 正常
t2.test2 正常

2. 修理テーブル

zj@bogon:/data/mysql$ mysqlcheck -r t2
t2.テスト1
注意: テーブルのストレージエンジンは修復をサポートしていません
t2.test2 正常

test1 テーブルのストレージ エンジンは innodb であり、修復をサポートしていません。

3. 分析表

zj@bogon:/data/mysql$ mysqlcheck -a t2
t2.test1 正常
t2.test2 正常

4. テーブルを最適化する

zj@bogon:/data/mysql$ mysqlcheck -o t2
t2.テスト1
注: テーブルは最適化をサポートしていないため、代わりに再作成 + 分析を実行します。
ステータス: OK
t2.テスト2

6. mysqldump (データエクスポートツール)

mysqldump クライアント ツールは、データベースをバックアップしたり、異なるデータベース間でデータを移行したりするために使用されます。バックアップ コンテンツには、テーブルを作成またはロードするための SQL ステートメントが含まれます。

mysqldump を呼び出す方法は 3 つあります。

mysqldump [OPTIONS] database [tables] //単一のデータベースまたはデータベース内のいくつかのテーブルをバックアップしますmysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] //指定された1つ以上のデータベースをバックアップしますmysqldump [OPTIONS] --all-databases [OPTIONS] //すべてのデータベースをバックアップします

1. 接続オプション

  • -u, --user=name //ユーザー名を指定
  • -p, --password[=name] // パスワードを指定
  • -h, --host=name // サーバーのIPまたはドメイン名を指定します
  • -p, --port=# //接続ポートを指定する

例:

シェル>mysqldump -h192.18.10.10 -p3306 -uroot -p テスト > test.sql

2. 出力コンテンツオプション

  • --add-drop-database 各データベース作成ステートメントの前に drop database ステートメントを追加します
  • --add-drop-table 各テーブル作成ステートメントの前にドロップテーブルステートメントを追加します

デフォルトでは、両方のパラメータが自動的に追加されます。

  • -n, --no-create-db データベース作成ステートメントを含めない
  • -t、--no-create-info にはデータテーブルの作成ステートメントは含まれません
  • -d, --no-data データを含めない

3. 出力形式のオプション

--compact オプションは出力を簡潔にし、デフォルト オプションのさまざまなコメントを除外します。

root@bogon:/usr/local/mysql/bin# ./mysqldump --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# emp.sql の詳細
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
テーブル `emp` を作成します (
 `id` int(11) NOT NULL デフォルト '0',
 `name` varchar(10) デフォルト NULL,
 `context` テキスト、
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
`emp` に値 (1,'a','a'),(2,'b','b') を挿入します。

-c または --complete-insert オプションを使用すると、出力ファイル内の挿入ステートメントに、デフォルトでは含まれていないフィールド名が含まれるようになります。

root@bogon:/usr/local/mysql/bin# ./mysqldump -c --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# emp.sql の詳細
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
テーブル `emp` を作成します (
 `id` int(11) NOT NULL デフォルト '0',
 `name` varchar(10) デフォルト NULL,
 `context` テキスト、
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
`emp` (`id`, `name`, `context`) に VALUES (1,'a','a'),(2,'b','b') を挿入します。

-T オプションは、指定されたデータ テーブル内のデータを、単純なデータ テキストとテーブル作成 SQL の 2 つのファイルにバックアップします。このオプションは、表示用に指定された形式でデータをエクスポートするために、次のオプションと組み合わせて使用​​されることがよくあります。

  • -T, --tab=name バックアップデータとテーブル作成ステートメント
  • --fileds-terminated-by=名前フィールド区切り文字
  • --fileds-enclosed-by=name フィールド参照
  • --fileds-optionally-enclosed-by=name フィールドオプションで囲む
  • --fileds-escaped-by=名前エスケープ文字

例: t2 データベースの emp テーブルを、単純なデータ テキスト ファイルとテーブル作成 SQL ファイルの 2 つのファイルにエクスポートし、現在のパスの下の bak ディレクトリに保存します。

1. バックアップディレクトリを作成する

root@bogon:/usr/local/mysql/bin# mkdir を戻します

2. t2データベースのempテーブルをbakディレクトリにバックアップします。

root@bogon:/usr/local/mysql/bin# ./mysqldump t2 emp -T ./bak

3. bakディレクトリを確認し、2つのファイルを見つける

root@bogon:/usr/local/mysql/bin# ls ./bak
emp.sql emp.txt

4. 2 つのファイルの内容を確認します。.sql で終わるものはテーブルの作成とデータ挿入のための SQL で、.txt で終わるものはテーブルデータです。

root@bogon:/usr/local/mysql/bin# 続き ./bak/emp.sql
-- MySQL ダンプ 10.13 Distrib 5.7.18、Linux (x86_64) 用
--
-- ホスト: localhost データベース: t2
-- ------------------------------------------------------
--サーバーバージョン 5.7.18-ログ

/*!40101 @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT を設定します */;
/*!40101 @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS を設定します */;
/*!40101 @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION を設定します */;
/*!40101 名前をutf8mb4に設定 */;
/*!40103 @OLD_TIME_ZONE=@@TIME_ZONE を設定します */;
/*!40103 TIME_ZONE='+00:00' を設定します */;
/*!40101 @OLD_SQL_MODE=@@SQL_MODE、SQL_MODE='' を設定します */;
/*!40111 @OLD_SQL_NOTES=@@SQL_NOTES、SQL_NOTES=0 に設定 */;

--
-- テーブル `emp` のテーブル構造
--

`emp` が存在する場合はテーブルを削除します。
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
テーブル `emp` を作成します (
 `id` int(11) NOT NULL デフォルト '0',
 `name` varchar(10) デフォルト NULL,
 `context` テキスト、
 主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

/*!40103 TIME_ZONE=@OLD_TIME_ZONE を設定します */;

/*!40101 SQL_MODE を @OLD_SQL_MODE に設定します */;
/*!40101 CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT を設定します */;
/*!40101 CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS を設定します */;
/*!40101 COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION を設定します */;
/*!40111 SQL_NOTES=@OLD_SQL_NOTES を設定します */;

-- ダンプは 2017-09-21 12:07:38 に完了しました
root@bogon:/usr/local/mysql/bin# 続き ./bak/emp.txt 
1aa
2 bb

4. 文字セットオプション

mysqldump によってエクスポートされたデータの文字セットは、mysqld の起動時のデフォルトの文字セットを使用します。テーブルの文字セットがデフォルトの文字セットでない場合、エクスポートされたデータに文字化けが発生する可能性があります。したがって、エクスポートする場合は、まずテーブルの文字セットを決定し、エクスポート時に文字セットを指定する必要があります。

シェル> mysqldump -uroot --compact --default-character-set=utf8 t2 emp > emp.sql

5. その他の一般的なオプション

-F --flush-logs (バックアップ前にログをフラッシュする)

このオプションを使用すると、バックアップ前に古いログが閉じられ、新しいログが生成されます。これにより、リカバリ時に新しいログから直接やり直しを開始できるため、リカバリプロセスが大幅に容易になります。

-l --lock-tables (すべてのテーブルに読み取りロックを追加)

バックアップ中にデータが更新されないようにし、バックアップされたデータの一貫性を保つために使用できます。-F オプションと一緒に使用できます。

7. mysqlimport (データインポートツール)

mysqlimport は、-T オプションを使用して mysqldump によってエクスポートされたテキスト ファイルをインポートするために使用されるクライアント側のデータ インポート ツールです。

基本的な使い方:

シェル> mysqlimport [オプション] db_name textfile1

8. mysqlshow (データベース オブジェクト表示ツール)

mysqlshow は、どのデータベース、データベース内のテーブル、テーブル内の列、またはインデックスが存在するかをすばやく見つけるために使用されるクライアント オブジェクト検索ツールです。これは、mysql クライアント ツールと非常に似ていますが、mysql クライアント ツールにはない機能がいくつかあります。

方向:

シェル> mysqlshow [オプション] [db_name [tbl_name [col_name]]]

オプションが指定されていない場合は、デフォルトですべてのデータベースが表示されます。

一般的なオプション:

1. --count (データベースとテーブルの統計情報を表示)

データベースが指定されていない場合は、各データベースの名前、テーブル数、レコード数が表示されます。

データベースを指定した場合、指定したデータベースの各テーブル名、フィールド数、レコード数が表示されます。

特定のデータベース内の特定のテーブルを指定すると、そのテーブルのフィールド情報が表示されます。

2. -k または --keys (指定されたテーブル内のすべてのインデックスを表示)

このオプションは、指定されたテーブルのテーブル構造と、指定されたテーブルの現在のインデックス情報の 2 つの部分を表示します。

3. -i または --status (テーブルのステータス情報を表示する)

9. perror(エラーコード表示ツール)

MySQL を使用すると、さまざまなエラーが発生する可能性があります。これらのエラーの一部は、ファイルやディレクトリが存在しないなど、オペレーティング システムによって発生し、一部はストレージ エンジンの不適切な使用によって発生します。これらのエラーには通常、「error: #」または「Errcode: #」のようなコードがあり、「#」は特定のエラー番号を表します。 perror の役割は、これらのエラー コードの詳細な意味を説明することです。

perror [オプション] [エラーコード [エラーコード]]

zj@bogon:/usr/local/mysql/bin$ perror 30
OS エラーコード 30: 読み取り専用ファイルシステム
zj@bogon:/usr/local/mysql/bin$ perror 60
OS エラー コード 60: デバイスがストリームではありません
zj@bogon:/usr/local/mysql/bin$ perror 30 60
OS エラーコード 30: 読み取り専用ファイルシステム
OS エラー コード 60: デバイスがストリームではありません

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • よく使われる 5 つの MySQL データベース管理ツールの詳細な紹介
  • MySQL インポートおよびエクスポート ツールの Mysqldump および Source コマンドの使用方法の詳細な説明
  • MYSQL ZIP インストール不要版の設定手順とグラフィカル管理ツール mysql-workbench
  • MySQL パフォーマンス分析ツール プロファイルの使用チュートリアル
  • Mysqlslap MySQL ストレステストツールの簡単なチュートリアル
  • Xtrabackup ツール(MySQL DBA に必須のツール)を使用してバックアップと復元を行う
  • mysql のデータベースを最適化および修復するためのツールである mysqlcheck の詳細な紹介
  • MySQL独自のプロファイリングパフォーマンス分析ツールの使用を共有する
  • よく使われる 5 つの MySQL スローログ分析ツールの比較分析
  • mytop 使用方法の紹介 MySQL リアルタイム監視ツール

<<:  CocosCreator MVCアーキテクチャの詳細な説明

>>:  Linuxのテキスト処理コマンドsortの詳細な説明

推薦する

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

JavaScript の基礎: 即時実行関数

目次関数フォーマットを即時実行関数を即座に実行する他の方法 – 式即時実行される関数はパラメータを取...

Dockerを使用してMQTTサーバーを構築するプロセスの詳細な説明

1. イメージをプルするdocker pull registry.cn-hangzhou.aliyu...

XHTMLコードの一般的なアプリケーション問題をまとめる

時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...

ネイティブ js はフォームの定期的な検証を実装します (検証後にのみ送信)

以下の機能が実装されています。 1. ユーザー名: onfouc は msg ルールを表示します。o...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

Apache ポートに基づいて仮想ホストを作成する例

apache: ポートに基づいて仮想ホストを作成する仮想ホスト(a、b、c)の作成を例に挙げます1)...

CentOS8 で Docker を使用してオープンソース プロジェクト Tcloud をデプロイするチュートリアル

1. Dockerをインストールする1. 仮想マシンに Centos7 をインストールしました。Li...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

MySQL データベースの操作とデータ型

目次1. データベース操作1.1 データベースの表示1.2 データベースを作成する1.3 データベー...

よく理解しましたかタグ 定義方法 使用方法

序文:今日、「<!DOCTYPE> タグを注意深く理解しましたか?」と尋ねられました。私...

MySQLクエリ構文の概要

序文:この記事では主に、MySQL の where、group by、order by、limit、...

ウェブデザインと制作におけるハイパーリンクの効果の向上

ハイパーリンクを使用すると、ページからページへ、またはサイトからサイトへ瞬時に移動できます。このよう...

Navicat がリモートで SQL Server に接続し、MySQL に変換する詳細な手順

序文最近、プロジェクトで SQL Server を使用するプログラムに遭遇しました。このデータベース...