sql >> データベース >  >> RDS >> Mysql

MySQLデータベースへの接続


    はじめに

    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インスタンスを実行することもできますが、ステージングおよび本番環境のデータベースではほぼ確実に認証が必要になります。どちらの場合でも認証できると、さまざまな環境でうまく機能できるようになります。




    1. 2つ(またはそれ以上)の行名を持つクロス集計

    2. PHP7.0上のLaravel5.4:PDO例外-ドライバーが見つかりませんでした(MySQL)

    3. テーブルから最大値で始まるOracleシーケンスを作成するにはどうすればよいですか?

    4. SQLServerはCSVを複数の行に分割します