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

-pmydbは、前のpasswordオプションとスペースで区切られているため、パスワードとして解釈されません。)

一部のシステムでは、MySQLがパスワードの入力を求めるために使用するライブラリルーチンは、パスワードを自動的に八文字に制限します。 この制限は、MySQLではなくシステムライブラリのプロパティです。 内部的には、MySQLにはパスワードの長さの制限はありません。 影響を受けるシステムの制限を回避するには、オプションファイルでパスワードを指定します(セクション4.2.2.2″オプションファイルの使用”を参照)。 別の回避策は、MySQLのパスワードを8文字以下の値に変更することですが、短いパスワードは安全性が低くなる傾向があるという欠点があります。

クライアントプログラムは、次のように接続の種類を決定します:

  • ホストが指定されていないか、localhostの場合、ローカルホストへの接続が発生します。

    • Windowsでは、サーバーがlocalhost

      • サーバーが

        • Windowsでは、クライアントは共有メモリを使用して接続します。shared_memory

    システム変数は、共有メモリ接続をサポートするために有効になりました。 Unixでは、MySQLプログラムはホスト名localhostを、他のネットワークベースのプログラムと比較して期待するものとは異なる方法で特別に扱います: クライアントはUnixソケットファイルを使用して接続します。 ソケット名を指定するには、--socketMYSQL_UNIX_PORT環境変数を使用できます。Windowsでは、host.(period)であるか、TCP/IPが有効になっておらず、--socketnamed_pipenamed_pipe_full_access_groupシステム変数で指定されたWindowsグループのメンバーでない場 それ以外の場合、接続はTCP/IPを使用します。--protocol--protocollocalhostの場合でも、上記のルールを上書きします。

    選択したトランスポートプロトコルに関連する接続オプションのみが使用またはチェックされます。 その他の接続オプションは無視されます。 たとえば、Unixで--host=localhostを使用すると、TCP/IPポート番号を指定するオプションが--port-Pオプションが指定されてい

    クライアントがローカルサーバーへのTCP/IP接続を確実に行うには、--host-hlocalhost127.0.0.1のホスト名の値を指定するか、IPアドレスまたはローカルサーバーの名前。 また、localhost--protocol=TCPオプションを使用して、トランスポートプロトコルを明示的に指定することもできます。 例: サーバーがIpv6接続を受け入れるように構成されている場合、クライアントは--host=::1を使用してIpv6経由でローカルサーバーに接続できます。 セクション5.1.13″Ipv6サポート”を参照してください。 WindowsでMySQLクライアントに名前付きパイプ接続を使用させるには、--pipe--protocol=PIPE.named_pipenamed_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



コメントを残す

メールアドレスが公開されることはありません。