サーバと通信する mysqlclient
ライブラリを使用している全ての
MySQL クライアントは次の環境変数を使用します:
Name | Description |
MYSQL_UNIX_PORT | デフォルトのソケット; localhost への接続に使用される
|
MYSQL_TCP_PORT | デフォルトの TCP/IP ポート |
MYSQL_PWD | デフォルトのパスワード |
MYSQL_DEBUG | デバッグオプション |
TMPDIR | 一時 tables/files が作成されるディレクトリ |
MYSQL_PWD
の使用は安全ではありません。
「6.3 MySQL サーバーに接続」節参照.
`mysql' クライアントは、MYSQL_HISTFILE
環境変数に
指定されているファイルにコマンドラインの履歴を書き出します。
デフォルトの履歴ファイルは、 `$HOME/.mysql_history' で、$HOME
は
HOME
環境変数の値です。
全ての MySQL プログラムは多くの様々なオプションを持ちます。種々
のオプションの完全な説明を得るにはスイッチ --help
を使用してください。例
えばmysql --help
を試してください。
オプションファイルで、全ての標準クライアントのデフォルトのオプションを
変更することが可能です。
「4.15.4 オプションファイル ( my.cnf
)」節.
MySQL プログラムを以下に示します:
myisamchk
myisamchk
には多くの機能があるので、一章割り当てて説明しています。
「13 Maintaining a MySQL installation」節参照.
make_binary_release
ftp.tcx.se
の `/pub/mysql/Incoming'
に送ることができます。
msql2mysql
mSQL
プログラムを MySQL に変換するシェルスクリプト。全て
のケースで処理できるわけではありませんが、変換時に良いスタートを与えます。
mysql
mysql
は簡単な SQL シェル (GNU readline
つき) です。これは対話的な使用や
非対話型問い合わせをサポートします。対話的に使用されると、ASCII テーブル
形式で結果が与えられます。フィルタとして使用されると、出力はタブで区切ら
れます(これは起動時のオプションで他のものに変更できます)。
あなたは以下のように簡単にスクリプトを実行できます:
shell> mysql database < script.sql > output.tabクライアントのメモリが十分でないことによる問題がある場合は、
--quick
スイッチを使用してください! これは結果を取り出すのに
mysql_store_result()
の代わりに mysql_use_result()
を使用
するように mysql
に強制させます。
mysqlaccess
mysqladmin
mysqladmin
)」節参照.
mysqlbug
mysqld
mysqldump
mysqldump
)」節参照.
mysqlimport
LOAD
DATA INFILE
でサポートされる全ての形式を使用できます。 「12.4 テキストファイルからデータを取り込む ( mysqlimport
)」節参照.
mysqlshow
mysql_install_db
replace
msql2mysql
で使用されるバイナリ。ファイル内または標準入力上の文字列を変
換するユーティリティプログラム。より長い文字列に最初に適合するため有限状
態マシンを使用します。文字列を交換するために使用できます。例えば、
a
と b
を与えられたファイル内で交換します:
shell> replace a b b a -- file1 file2 ...
safe_mysqld
mysqld
デーモンをいくつかの安全な機能で開始します。エラー時には再起動し、
実行時情報をログファイルへ記入します。
mysqladmin
)管理オペレーションを実行するためのユーティリティ。シンタックスは:
shell> mysqladmin [OPTIONS] command [command-option] command ...
mysqladmin --help
によって、オプションの一覧を手にいれることができます。
現在の mysqladmin
は以下のコマンドをサポートします:
create databasename | データベースの作成 |
drop databasename | データベースとテーブルの全削除。 |
extended-status | サーバーから拡張ステータスを取得。 |
flush-hosts | キャッシュされている全ホストをフラッシュ。 |
flush-logs | 全てのログをフラッシュ |
flush-tables | 全てのテーブルをフラッシュ |
flush-privileges | 許可テーブルの再読み込み (reload と同じ) |
kill id,id,... | mysql スレッドの kill. |
password new-password | 古いパスワードを new-password に変更 |
ping | mysqld が生きているかチェック |
processlist | 現在活動中の mysql スレッドを表示 |
reload | 許可テーブルの再読み込み |
refresh | 全テーブルをフラッシュし、ログファイルを一度閉じて開きます。 |
shutdown | サーバーをダウンさせます。 |
status | サーバーから短いステータスを得ます。 |
variables | 変数の表示 |
version | サーバーからバージョンを得ます。 |
全てのコマンドは、ユニークなプレフィックスで省略可能です。 例えば:
shell> mysqladmin proc stat +----+-------+-----------+----+-------------+------+-------+------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+----+-------------+------+-------+------+ | 6 | monty | localhost | | Processlist | 0 | | | +----+-------+-----------+----+-------------+------+-------+------+ Uptime: 10077 Threads: 1 Questions: 9 Slow queries: 0 Opens: 6 Flush tables: 1 Open tables: 2 Memory in use: 1092K Max memory used: 1116K
mysqladmin status
コマンドの結果は、以下の項目を持ちます:
Uptime | MySQL サーバーの起動秒数 |
Threads | 稼働中のスレッド数 (clients) |
Questions | mysqld が開始してからのクライアントからのクエリ数
|
Slow queries | long_query_time 秒より時間のかかったクエリの数
|
Opens | mysqld が開いたテーブル数
|
Flush tables | flush ... , refresh and reload コマンドの実行回数
|
Open tables | 現在開かれているテーブルの数 |
Memory in use | mysqld のコードによって直接割り当てられたメモリ (only available when MySQL is compiled with --with-debug) |
Max memory used | mysqld のコードによって直接割り当てられる最大メモリー量 (only available when MySQL is compiled with --with-debug) |
mysqldump
)データベース、あるいは、 バックアップ、他のSQLサーバーへのデータを移動を目的としたデータのまとまり、 これらをダンプするためのユーティリティ。 ダンプは、テーブルの作成のための SQL 文を含みます。
shell> mysqldump [OPTIONS] database [tables]
もしテーブルを与えなければ、データベースの全てのテーブルがダンプされます。
mysqldump --help
によって、オプションの一覧を手にいれることができます。
もし mysqldump
を --quick
や --opt
なしで実行するならば、
mysqldump
は結果を表示する前に、結果をメモリに全てロードすることに
注意してください。
これは大きなデータベースをダンプする際に問題になるでしょう。
mysqldump
は以下のオプションをサポートします:
--add-locks
LOCK TABLES
文を追加し、
テーブルのダンプ後に UNLOCK TABLE
文を追加します。
( あとで MySQL に挿入するときにこれは速くなります ).
--add-drop-table
drop table
文を追加します。
--allow-keywords
-c, --complete-insert
-C, --compress
--delayed
INSERT DELAYED
コマンドを使用してレコードを INSERT します。
-e, --extended-insert
INSERT
構文を使用します。(これはあとで挿入する際、
よりコンパクトかつ速くなります。)
-#, --debug[=option_string]
--help
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
-T
とともに使用され、
LOAD DATA INFILE
と同様の意味をなします。
「7.16 LOAD DATA INFILE
構文」節参照.
-F, --flush-logs
-f, --force,
-h, --host=..
localhost
.
-l, --lock-tables.
-t, --no-create-info
CREATE TABLE
文) を書き出しません。
-d, --no-data
--opt
--quick --add-drop-table --add-locks --extended-insert --lock-tables
と同じ.
MySQL サーバーから読み出す時間を最短にしてくれます。
-pyour_pass, --password[=your_pass]
mysqldump
は端末からパスワードを読み取ろうとします。
-P port_num, --port=port_num
localhost
以外のホストへの接続に使用されます。
localhost
の場合は、Unix ソケットが使用されます。)
-q, --quick
mysql_use_result()
をこれに使用しています。
-S /path/to/socket, --socket=/path/to/socket
localhost
に接続する際のソケットファイルの指定 (デフォルトは /tmp/mysql.sock )
-T, --tab=path-to-some-directory
table_name.sql
ファイル、
データを含む table_name.txt
ファイルを作成します。
NOTE:
これは mysqld
デーモンが走っているマシン上で mysqldump
を
実行する場合にだけ、動作します。
.txt
ファイルのフォーマットは、
--fields-xxx
と --lines--xxx
オプションに従います。
-u user_name, --user=user_name
-O var=option, --set-variable var=option
-v, --verbose
-V, --version
-w, --where='where-condition'
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
mysqldump
の普通の使用はデータベースのバックアップでしょう:
mysqldump --opt database > backup-file.sql
他の MySQL サーバーへデータベースをコピーする場合にも便利です:
mysqldump --opt database | mysql --host=remote-host -C database
mysqlimport
)
mysqlimport
は、LOAD DATA INFILE
SQL 構文を、
コマンドラインインターフェースで提供します。
mysqlimport
のオプションのほとんどが、
LOAD DATA INFILE
への同じオプションに対応します。
「7.16 LOAD DATA INFILE
構文」節参照.
mysqlimport
の実行は以下のようにします:
shell> mysqlimport [options] filename ...
mysqlimport
は、コマンドラインの引数に与えられたファイル名の拡張子を取り、
拡張子を取った後の名前を、ファイルの内容を取り込むテーブルの名前とします。
例えば、`patient.txt', `patient.text', `patient' という
ファイルは全て、patient
とという名前のテーブルに取り込まれます。
mysqlimport
は以下のオプションをサポートします:
-C, --compress
-#, --debug[=option_string]
-d, --delete
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
LOAD DATA INFILE
の対応する文節と同じ意味になります。
「7.16 LOAD DATA INFILE
構文」節参照.
-f, --force
--force
がなければ、
テーブルがなければ mysqlimport
は終了します。
--help
-h host_name, --host=host_name
localhost
.
-i, --ignore
--replace
オプションの説明を見てください。
-l, --lock-tables
-L, --local
localhost
に接続した場合、テキストファイルは
サーバー上にあると仮定されます。(localhost
はデフォルト値)
-pyour_pass, --password[=your_pass]
mysqlimport
は端末からのパスワードの入力を要求します。
-P port_num, --port=port_num
localhost
を除くホストへの接続に使用します。
localhost
へは、UNIX ソケットを使用します。)
-r, --replace
--replace
と --ignore
オプションは、
入力されているレコードのユニークキーの値が、
既に存在しているレコードのユニークキーの値と同じ場合、
その入力されているデータの取り扱いを決定します。
もし --replace
が指定されているなら、
既にあるレコードは新しく読まれたレコードに置き換えられます。
もし --ignore
が指定されているなら、
入力された物は無視されます。
どちらのオプションも指定していない場合、
キーの値が重なっているとエラーを発し、
テキストファイルの残りの部分は無視されます。
-s, --silent
-S /path/to/socket, --socket=/path/to/socket
localhost
への接続時に使用するソケットファイルを指定します。
-u user_name, --user=user_name
-v, --verbose
-V, --version
Here follows a sample run of using mysqlimport
:
$ mysql --version mysql Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686) $ uname -a Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown $ mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test $ ed a 100 Max Sydow 101 Count Dracula . w imptest.txt 32 q $ od -c imptest.txt 0000000 1 0 0 \t M a x S y d o w \n 1 0 0000020 1 \t C o u n t D r a c u l a \n 0000040 $ mysqlimport --local test imptest.txt test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 $ mysql -e 'SELECT * FROM imptest' test +------+---------------+ | id | n | +------+---------------+ | 100 | Max Sydow | | 101 | Count Dracula | +------+---------------+
myisampack
・ pack_isam
)
myisampack
is used to compress MyISAM tables and pack_isam
is used to compress ISAM tables. Since ISAM tables are deprecated we
will only discuss myisampack
here.
myisampack
は、
10 ライセンス以上または拡張サポートを注文した時に得
られる特別なユーテリティです。これらはバイナリだけの配布のため、
いくつかのプラットフォーム上でだけに有効です。
In the following we only talk about myisampack
, but everything
holds also for pack_isam
.
myisampack
はテーブル内の各項目を別々に圧縮するように働きます。展開のため
の情報は、テーブルがオープンされた時にメモリに読まれます。これは、正確に1レコー
ドだけを展開する必要があるような、個々のレコードへのアクセス時にとても良
い性能を与えます。MSDOS 上の Stacker 使用時のように、ディスクブロックは
そんなに大きくありません。
通常、myisampack
はデータファイルを 40~70% にパックします。
MySQL は圧縮されたテーブルでメモリマップ (mmap()
) を使用します。
mmap()
が働かない場合は、通常のファイルの読み書きを使用します。
現在 myisampack
には2つの制限があります:
myisampack
can also pack BLOB
or TEXT
columns. The
older pack_isam
could not do this.
これらの制限の修正は TODO にありますが、優先度は低いです。
myisampack
は以下のようにして起動します:
shell> myisampack [options] filename ...
それぞれのファイル名はインデックスファイル(`.MYI')の名前です。 もしデータディレクトリにカレントディレクトリを移動していないなら、 ファイルのパスを指定しなくてはなりません。`.MYI' 拡張子は 省略することが可能です。
myisampack
は以下のオプションをサポートします:
-b, --backup
tbl_name.OLD
としてバックアップを作成します.
-#, --debug=debug_options
debug_options
は 'd:t:o,filename'
.
-f, --force
myisampack
はテーブルを圧縮している間、
一時ファイルを `tbl_name.TMD' という名前で作成します。
もし myisampack
を途中で kill した場合、 `.TMD' ファイルが消されて
いない事があります。通常、myisampack
は `tbl_name.TMD' ファイルが
既に存在する場合はエラーで終了します。 --force
を使用すると、
myisampack
はそのような場合でもテーブルをパックします。
-?, --help
-j big_tbl_name, --join=big_tbl_name
big_tbl_name
一つに
まとめます。結合される全てのテーブル定義は同じでなければなりません
(同じ項目名、同じ項目型、同じインデックス、等)
-p #, --packlength=#
myisampack
stores all rows with length pointers of 1, 2 or 3
bytes. In most normal cases, myisampack
can determine the right length
value before it begins packing the file, but it may notice during the packing
process that it could have used a shorter length. In this case,
myisampack
will print a note that the next time you pack the same file,
you could use a shorter record length.)
-s, --silent
-t, --test
-T dir_name, --tmp_dir=dir_name
-v, --verbose
-V, --version
-w, --wait
mysqld
server was invoked with the --skip-locking
option, it is not a good idea to invoke myisampack
if the table might
be updated during the packing process.
The sequence of commands shown below illustrates a typical table compression session:
shell> ls -l station.* -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.ISD -rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.ISM -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-02-02 3:06:43 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2 Max datafile length: 54657023 Max keyfile length: 33554431 Recordlength: 834 Record format: Fixed length table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 1024 1024 1 2 32 30 multip. text 10240 1024 1 Field Start Length Type 1 1 1 2 2 4 3 6 4 4 10 1 5 11 20 6 31 1 7 32 30 8 62 35 9 97 35 10 132 35 11 167 4 12 171 16 13 187 35 14 222 4 15 226 16 16 242 20 17 262 20 18 282 20 19 302 30 20 332 4 21 336 4 22 340 1 23 341 8 24 349 8 25 357 8 26 365 2 27 367 2 28 369 4 29 373 4 30 377 1 31 378 2 32 380 8 33 388 4 34 392 4 35 396 4 36 400 4 37 404 1 38 405 4 39 409 4 40 413 4 41 417 4 42 421 4 43 425 4 44 429 20 45 449 30 46 479 1 47 480 1 48 481 79 49 560 79 50 639 79 51 718 79 52 797 8 53 805 1 54 806 1 55 807 20 56 827 4 57 831 4 shell> myisampack station.MYI Compressing station.MYI: (1192 records) - Calculating statistics normal: 20 empty-space: 16 empty-zero: 12 empty-fill: 11 pre-space: 0 end-space: 12 table-lookups: 5 zero: 7 Original trees: 57 After join: 17 - Compressing file 87.14% shell> ls -l station.* -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.ISD -rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.ISM -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-04-17 19:04:26 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 1 Max datafile length: 16777215 Max keyfile length: 131071 Recordlength: 834 Record format: Compressed table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 10240 1024 1 2 32 30 multip. text 54272 1024 1 Field Start Length Type Huff tree Bits 1 1 1 constant 1 0 2 2 4 zerofill(1) 2 9 3 6 4 no zeros, zerofill(1) 2 9 4 10 1 3 9 5 11 20 table-lookup 4 0 6 31 1 3 9 7 32 30 no endspace, not_always 5 9 8 62 35 no endspace, not_always, no empty 6 9 9 97 35 no empty 7 9 10 132 35 no endspace, not_always, no empty 6 9 11 167 4 zerofill(1) 2 9 12 171 16 no endspace, not_always, no empty 5 9 13 187 35 no endspace, not_always, no empty 6 9 14 222 4 zerofill(1) 2 9 15 226 16 no endspace, not_always, no empty 5 9 16 242 20 no endspace, not_always 8 9 17 262 20 no endspace, no empty 8 9 18 282 20 no endspace, no empty 5 9 19 302 30 no endspace, no empty 6 9 20 332 4 always zero 2 9 21 336 4 always zero 2 9 22 340 1 3 9 23 341 8 table-lookup 9 0 24 349 8 table-lookup 10 0 25 357 8 always zero 2 9 26 365 2 2 9 27 367 2 no zeros, zerofill(1) 2 9 28 369 4 no zeros, zerofill(1) 2 9 29 373 4 table-lookup 11 0 30 377 1 3 9 31 378 2 no zeros, zerofill(1) 2 9 32 380 8 no zeros 2 9 33 388 4 always zero 2 9 34 392 4 table-lookup 12 0 35 396 4 no zeros, zerofill(1) 13 9 36 400 4 no zeros, zerofill(1) 2 9 37 404 1 2 9 38 405 4 no zeros 2 9 39 409 4 always zero 2 9 40 413 4 no zeros 2 9 41 417 4 always zero 2 9 42 421 4 no zeros 2 9 43 425 4 always zero 2 9 44 429 20 no empty 3 9 45 449 30 no empty 3 9 46 479 1 14 4 47 480 1 14 4 48 481 79 no endspace, no empty 15 9 49 560 79 no empty 2 9 50 639 79 no empty 2 9 51 718 79 no endspace 16 9 52 797 8 no empty 2 9 53 805 1 17 1 54 806 1 3 9 55 807 20 no empty 3 9 56 827 4 no zeros, zerofill(2) 2 9 57 831 4 no zeros, zerofill(1) 2 9
The information printed by myisampack
is described below:
normal
empty-space
empty-zero
empty-fill
INTEGER
column may be changed to MEDIUMINT
).
pre-space
end-space
table-lookup
ENUM
before Huffman compression.
zero
Original trees
After join
After a table has been compressed, myisamchk -dvv
prints additional
information about each field:
Type
constant
no endspace
no endspace, not_always
no endspace, no empty
table-lookup
ENUM
.
zerofill(n)
n
bytes in the value are always 0 and are not
stored.
no zeros
always zero
Huff tree
Bits
Go to the first, previous, next, last section, table of contents.