はじめに
MySQLデータベースを操作するときに最初に考慮する必要があることの1つは、データベースインスタンスに接続して対話する方法です。これには、データベースクライアント(データベースとの対話に使用するコンポーネント)とデータベースサーバー(データを格納、整理、およびデータへのアクセスを提供する実際のMySQLインスタンス)の間の調整が必要です。
このため、認証に必要な情報を提供して、クライアントとして接続する方法を理解する必要があります。このガイドでは、ネイティブの mysql
を使用してMySQLデータベースに接続する方法について説明します。 コマンドラインクライアント—データベースインスタンスと対話するための最も一般的で便利な方法の1つ。
コンパニオンガイドでは、プロジェクトのニーズを満たすようにMySQLの認証を構成する方法を見つけることができます。 MySQLでの認証の仕組みの詳細については、両方のガイドを読むことを検討してください。
mysql
に関する基本情報 クライアント
mysql
clientは、MySQLのデフォルトのコマンドラインクライアントおよびSQLシェルです。これをインタラクティブに使用してサーバーとのシェルセッションを生成したり、SQLファイルをフィードしてユーザーの操作なしで実行したりできます。これは、構成オプションを実装して環境をセットアップするときに特に役立ちます。プログラムが使用するアクセスパターンを開発する際には、インタラクティブな探索とアドホッククエリも非常に適しています。
MySQLサーバーに接続して認証する方法は、サーバーの構成によって異なります。次のセクションでは、いくつかの基本的な接続オプションについて説明します。わかりやすくするために、ローカル接続とリモート接続を区別します。
- ローカル接続 :クライアントとMySQLインスタンスが同じサーバー上にある接続
- リモート接続 :クライアントが別のコンピューターで実行されているネットワークアクセス可能なMySQLインスタンスに接続している場合
同じコンピューターからデータベースに接続することから始めましょう。
mysql
を使用してローカルデータベースに接続する
引数なしで、 mysql
コマンドは、Unixソケットファイルに接続してローカルデータベースにアクセスしようとします。通常、デフォルトのソケットファイルの場所は、構成ファイルまたはコンパイルされたデフォルト値のいずれかによって決定されます。デフォルトでは、オペレーティングシステムのユーザー名がデータベースへの接続を試行するために使用されます。
したがって、現在のユーザーがローカルデータベースの有効なMySQLユーザーである場合は、次のように入力して接続を試みることができます。
mysql
アカウントが存在し、パスワードを必要としない場合、またはアカウントにMySQLソケット認証が構成されている場合は、自動的にログインします。ユーザー名がMySQLに存在しない場合、またはパスワードまたは追加の認証が必要な場合、コマンドは失敗します。
mysql
の方法を制御するには データベースへのログインを試み、コマンドラインオプションを使用してコマンドで追加情報を渡します:
-
-user =
または-u
:認証に使用するMySQLユーザーを指定します。 -パスワードコード>
または-p
:MySQLユーザーのパスワードの入力を求めるようにMySQLに指示します。-
-host =127.0.0.1
または-h 127.0.0.1
:mysql
に通知します Unixソケットの代わりにローカルTCPループバックアドレスを使用してローカルMySQLインスタンスに接続します。これは、MySQLサーバーがUnixソケットを使用するように構成されていない場合に使用することが重要です。
注: MySQLは127.0.0.1
を解釈します localhost
とは異なります 。 127.0.0.1
を指定する localhost
で、TCP接続を使用することを示します MySQLはUnixソケットを使用してローカルデータベースに接続しようとします。
したがって、MySQLユーザーとしてログインする必要がある場合は eva
パスワードを使用しますが、接続にUnixソケットを使用している場合は、次のように入力できます。
mysql --user=eva --password
mysql
クライアントはアカウントのパスワードの入力を求めます。
同じユーザー名でローカルデータベースへのTCP接続を介してログインしようとする場合は、代わりに次のように入力します。
mysql --user=eva --password --host=127.0.0.1
デフォルトの認証構成、および初期の管理ユーザー名とパスワードは、MySQLのインストール方法によって異なる場合があります。ただし、多くのメソッドは、Unixソケットを使用するようにMySQLを設定し、デフォルトの root
を含めます。 管理者アカウントとしてのユーザー。
このような場合、 root
としてデータベースにログインできます。 次のように入力してユーザー:
mysql --user=root --password
インストール中に選択または生成された管理者パスワードの入力を求められます。
これらの方法はすべて、ローカルのMySQLデータベースに接続できます。
リモートデータベースへの接続
リモートのMySQLデータベースに接続する場合は、リモートホストのネットワーク上の場所を指定し、場合によっては追加情報を追加する必要があります。
使用可能な認証方法は、MySQLインスタンスの構成によって異なります。ただし、最も一般的には、認証するために次のパラメータを指定する必要があります。
オプション | 説明 |
---|---|
-host = または-h | MySQLサーバーのネットワークホスト名またはIPアドレス。 |
-port = または-P | MySQLサーバーが実行されているネットワークポート。サーバーがデフォルトのMySQLポートであるポート3306を使用している場合、このパラメーターは省略できます。 |
-user = または-u | 接続するデータベースのユーザー名。指定しない場合、オペレーティングシステムのユーザー名が使用されます。 |
-パスワード または-p | 指定したアカウントのパスワードを入力することを示します。 mysql Enter を押すと、クライアントはパスワードの入力を求めます 。 |
MySQLデータベース | アクセスするMySQLデータベース名。指定しない場合、 mysql 特定のデータベースに接続せずにサーバーに接続します。 |
リモートデータベースに接続するための基本的な形式は、通常、次のようになります。
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Enterを押した後 、 mysql
クライアントはパスワードの入力を求めます。認証に成功すると、新しいインタラクティブなMySQLセッションが開始されます。
例として、次の要件を持つデータベースに接続したいと考えることができます。
- ホスト名:
myhost
- ポート:1234
- データベース:
applicationdb
- ユーザー名:
myapplicationuser
- パスワード:
mypass
mysql
を呼び出す 次のオプションを使用すると、認証が可能になります。
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
Enterキーを押すと、 mypass
で認証できるパスワードの入力を求められます。 。
MySQLサーバーの認証構成を調整する
ユーザーがMySQLインスタンスに対して認証する方法を規定するルールを変更する場合は、サーバーの構成を変更することで変更できます。この記事でMySQLの認証構成を変更する方法を見つけることができます。
結論
このガイドでは、クライアント側からのMySQL認証について説明しました。 mysql
の使用方法を示しました ローカルデータベースインスタンスとリモートデータベースインスタンスの両方に接続するコマンドラインクライアント。
さまざまなMySQLインスタンスに接続する方法を知ることは、データベースシステムの作業を開始するときに理解する必要がある最初のステップの1つです。特別な認証を必要としない開発用にローカルMySQLインスタンスを実行することもできますが、ステージングおよび本番環境のデータベースではほぼ確実に認証が必要になります。どちらの場合でも認証できると、さまざまな環境でうまく機能できるようになります。