MySQL::MySQL8.0リファレンスマニュアル::4.2.4コマンドオプションを使用したMySQLサーバーへの接続
4.2.4コマンドオプションを使用したMySQLサーバーへの接続
このセクションでは、mysqlやmysqldumpなどのクライアントに対して、mysqlサーバーへの接続を確立する方法を指定するコマンドラインオプションの使用について説明します。 MySQL Shellなどのクライアントで、URIに似た接続文字列またはキーと値のペアを使用した接続の確立については、セクション4.2.5「URIに似た文字列またはキーと値のペアを使用したサーバーへの接続」を参照してください。 接続できない場合の追加情報については、セクション6.2.21″MySQLへの接続の問題のトラブルシューティング”を参照してください。
クライアントプログラムがMySQLサーバーに接続するには、サーバーが実行されているホストの名前やMySQLアカウントのユーザー名とパスワードなど、適切な接続パラ 各接続パラメータにはデフォルト値がありますが、必要に応じて、コマンド行またはオプションファイルで指定されたプログラムオプションを使用して、デフォルト値を上書きすることができます。 ここの例ではmysqlクライアントプログラムを使用していますが、この原則はmysqldump、mysqladmin、mysqlshowなどの他のクライアントにも適用されます。
このコマンドは、明示的な接続パラメータを指定せずにmysqlを呼び出します。
mysql
パラメータオプションがないため、デフォルト値が適用されます。
-
デフォルトのホスト名は
localhost
。 Unixでは、後述するように、これは特別な意味を持ちます。 デフォルトのユーザー名は、Windowsの場合はODBC
、Unixの場合はUnixログイン名です。 -
-p
も指定されていないため、パスワードは送信されません。 mysqlの場合、最初のオプション以外の引数はデフォルトのデータベースの名前として使用されます。 このような引数がないため、mysqlはデフォルトのデータベースを選択しません。
ホスト名とユーザー名、およびパスワードを明示的に指定するには、コマンドラインで適切なオプションを指定します。 デフォルトのデータベースを選択するには、database-name引数を追加します。 例:
mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb
パスワードオプションの場合、パスワード値はオプションです。
-
-p
--password=
-p
とそれに続くパスワードの間にスペースを入れないでください。 -
-p
を使用しているが、パスワード値を指定しない場合、クライアントプログラムはパスワードの入力を求めます。 パスワードは入力時には表示されません。 これは、psなどのコマンドを実行することによって、システム上の他のユーザーがパスワード行を表示できるようにするコマンドラインでパスワードを与 セクション6.1.2.1″パスワードセキュリティのためのエンドユーザガイドライン”を参照してください。 -
パスワードがないこと、およびクライアントプログラムがパスワードの入力を要求しないことを明示的に指定するには、
--skip-password
オプ
前述のように、コマンドラインにパスワード値を含めることはセキュリティ上のリスクです。 このリスクを回避するには、次のパスワード値を指定せずに-p
オプションを指定します:
mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb
-p
mydb
は、前のpasswordオプションとスペースで区切られているため、パスワードとして解釈されません。)
一部のシステムでは、MySQLがパスワードの入力を求めるために使用するライブラリルーチンは、パスワードを自動的に八文字に制限します。 この制限は、MySQLではなくシステムライブラリのプロパティです。 内部的には、MySQLにはパスワードの長さの制限はありません。 影響を受けるシステムの制限を回避するには、オプションファイルでパスワードを指定します(セクション4.2.2.2″オプションファイルの使用”を参照)。 別の回避策は、MySQLのパスワードを8文字以下の値に変更することですが、短いパスワードは安全性が低くなる傾向があるという欠点があります。
クライアントプログラムは、次のように接続の種類を決定します:
-
ホストが指定されていないか、
localhost
の場合、ローカルホストへの接続が発生します。-
Windowsでは、サーバーが
localhost
-
サーバーが
-
Windowsでは、クライアントは共有メモリを使用して接続します。
shared_memory
-
-
システム変数は、共有メモリ接続をサポートするために有効になりました。 Unixでは、MySQLプログラムはホスト名
localhost
を、他のネットワークベースのプログラムと比較して期待するものとは異なる方法で特別に扱います: クライアントはUnixソケットファイルを使用して接続します。 ソケット名を指定するには、--socket
MYSQL_UNIX_PORT
環境変数を使用できます。Windowsでは、host
.
(period)であるか、TCP/IPが有効になっておらず、--socket
named_pipe
named_pipe_full_access_group
システム変数で指定されたWindowsグループのメンバーでない場 それ以外の場合、接続はTCP/IPを使用します。--protocol
--protocol
localhost
の場合でも、上記のルールを上書きします。選択したトランスポートプロトコルに関連する接続オプションのみが使用またはチェックされます。 その他の接続オプションは無視されます。 たとえば、Unixで
--host=localhost
を使用すると、TCP/IPポート番号を指定するオプションが--port
-P
オプションが指定されていクライアントがローカルサーバーへのTCP/IP接続を確実に行うには、
--host
-h
localhost
127.0.0.1
のホスト名の値を指定するか、IPアドレスまたはローカルサーバーの名前。 また、localhost
--protocol=TCP
オプションを使用して、トランスポートプロトコルを明示的に指定することもできます。 例: サーバーがIpv6接続を受け入れるように構成されている場合、クライアントは--host=::1
を使用してIpv6経由でローカルサーバーに接続できます。 セクション5.1.13″Ipv6サポート”を参照してください。 WindowsでMySQLクライアントに名前付きパイプ接続を使用させるには、--pipe
--protocol=PIPE
.
named_pipe
named_pipe_full_access_group
--socket
オプションを使用してパイプの名前を指定します。リモートサーバーへの接続はTCP/IPを使用します。 このコマンドは、デフォルトのポート番号(3306)を使用して、
remote.example.com
--port
-P
オプションを使用します。mysql --host=remote.example.com --port=13306
ローカルサーバーへの接続にポート番号を指定することもできます。 ただし、前に示したように、Unix上の
localhost
への接続はデフォルトでソケットファイルを使用するため、前述のようにTCP/IP接続を強制しない限り、ポーこのコマンドでは、プログラムはUnix上のソケットファイルを使用し、
--port
オプションは無視されます。mysql --port=13306 --host=localhost
ポート番号を使用するには、TCP/IP接続を強制します。 たとえば、次のいずれかの方法でプログラムを起動します。
mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP
クライアントプログラムがサーバーへの接続を確立する方法を制御す
クライアントプログラムを起動するたびに、コマンドラインに入力せずに接続パラメータを指定することができます。
-
オプションファイルの
セクションで接続パラメータを指定します。 ファイルの関連セクションは次のようになります。
host=host_nameuser=user_namepassword=password
詳細については、セクション4.2.2.2″オプションファイルの使用”を参照してくださ
-
いくつかの接続パラメータは、環境変数を使用して指定できます。 例:mysqlのホストを指定するには、
MYSQL_HOST
を使用します。 Windowsでは、MySQLユーザー名を指定するには、USER
を使用します。
サポートされている環境変数のリストについては、セクション4.9″環境変数”を参照してください。
-
div