あなたのLaravelアプリケーションをデジタル海洋管理MySQL
あなたが私のような場合は、適切にデジタルオーシャンから管理されたMySQL 8データベースに接続しようとしてあまりにも多くの時間を過ごした.
すべては素晴らしいように見えます、あなたは正しくすべてを構成したと信じます、しかし、あなたはあなたのアプリケーションから
あまり有用なエラーメッセージ、私もそれをあまりにも多くの回見た.
あなたが私の靴にいるならば、心配しないでください、私はあなたをカバーしました.ここでは、ステップバイステップガイドでは、それを修正し、laravelからデジタル海の管理MySQLの8データベースに接続を設定する方法です.
ディジタル海洋形態
データベースの設定を始めましょう.
デジタルオーシャンでマネージデータベースを作成します.MySQLバージョン8を選択してください.
一旦それが完了するならば、私はデフォルトのものを使用する代わりに新しいユーザーをつくることを勧めます.
タブの下で行うことができます.
パスワード暗号化を維持するようにしてください.
ここにいる間、プロジェクトのデータベースを作成することもできます.
あなたがする必要がある次のことは、さまざまな信頼できるソースからトラフィックを許可することです.
これは、特定のコンピュータ/サーバだけがあなたのデータベースにアクセスできることを意味します.
タブの信頼できるソースセクションの下でこれを設定できます.
Laravel ServerのIPアドレスを追加してください(または、デジタルオーシャンでホストされている場合は、名前で参照することができます)とローカルIPも同様に、あなたのコンピュータから接続することができます.
接続のテスト
すべてがうまくいったら、[概要]タブの接続の詳細を見ることができます.
あなたの新しいユーザーとデータベースが選択されていることを確認するので、正しいログインの詳細を参照してください.
また、パブリックホストを参照してください.
さて、CA証明書ファイルをダウンロードして、どこか安全に保存してください.
このファイルは、Laravelから接続するときに後で必要になります.
しかし、今のところ、ローカルのMySQLクライアントから接続してみてください.
MySQL 8接続を選択し、次の設定を使用します.ホスト:
ポート:
ユーザー名 パスワードは、パスワードの最後に余分なスペースをコピーしないようにしてください
のデータベース そして、最後に、あなたがダウンロードしたCA証明書を加えることができるように、オプションを選んでください.
これは、tableplusで設定できる方法です.
今すぐに接続することができます.まだ問題があるならば、あなたのIPがデジタル海洋ダッシュボードの信頼されたソースリストでwhitestedされるならば、二重チェックをしてください.
ラーラビルからの接続
サーバの設定
何かを設定する前に、MySQL拡張モジュールが有効になっていることを確認してください.
サーバー上で
Ubuntuサーバでこれを行うことができます.
データベース接続の設定
まず、アプリのデータベース構成
MySQLドライバの設定の最後に次を追加します.
CA証明書のアップロード
次に、CA証明書をサーバーにアップロードします.
プロジェクトのストレージフォルダに追加することをお勧めします.
重要なのは、あなたのLaravelアプリケーションがそれにアクセスできることです.そのためには、ファイルにいくつかのパーミッションを設定する必要があります.
このような非常に制限的なアクセス許可をお勧めします.
環境変数の設定
最後のステップはlaravelで環境変数を設定することです.
単にあなたの編集.ENVファイルとデータベース領域で値を置き換えます.
接続、データベース、ユーザ名、およびパスワードは自明であるべきです.
同じ地域の別のデジタルオーシャンサーバーから接続している場合は、プライベートVPCネットワークホストを使用します.
ポートは常に25060であるべきです、そして、あなたは とCA証明書に完全な絶対パスを含めるようにしてください. すべてが設定されている場合は、
テストとトラブルシューティング
これらの手順を実行すると、データベースに接続できます.
迅速にテストするには、ラーラーベルのティッカーを使用してください.
何らかの理由でまだ接続できない場合は、これらの一般的なエラーを二重にチェックしてください. LaravelアプリケーションのIPは、デジタル海の信頼できるソースリスト でwhitelistedされません
CA証明書のための不正確な経路 Laravelアプリケーション(許可、所有権問題)によってCA証明書が読めません
パスワード の後の余分の空白古いLaravelの設定はキャッシュされ、
すべては素晴らしいように見えます、あなたは正しくすべてを構成したと信じます、しかし、あなたはあなたのアプリケーションから
SQLSTATE[HY000] [2002]
Doctrine\DBAL\Driver\PDO\Exception
エラーを受け取ります.あまり有用なエラーメッセージ、私もそれをあまりにも多くの回見た.
あなたが私の靴にいるならば、心配しないでください、私はあなたをカバーしました.ここでは、ステップバイステップガイドでは、それを修正し、laravelからデジタル海の管理MySQLの8データベースに接続を設定する方法です.
ディジタル海洋形態
データベースの設定を始めましょう.
デジタルオーシャンでマネージデータベースを作成します.MySQLバージョン8を選択してください.
一旦それが完了するならば、私はデフォルトのものを使用する代わりに新しいユーザーをつくることを勧めます.
タブの下で行うことができます.
パスワード暗号化を維持するようにしてください.
ここにいる間、プロジェクトのデータベースを作成することもできます.
あなたがする必要がある次のことは、さまざまな信頼できるソースからトラフィックを許可することです.
これは、特定のコンピュータ/サーバだけがあなたのデータベースにアクセスできることを意味します.
タブの信頼できるソースセクションの下でこれを設定できます.
Laravel ServerのIPアドレスを追加してください(または、デジタルオーシャンでホストされている場合は、名前で参照することができます)とローカルIPも同様に、あなたのコンピュータから接続することができます.
接続のテスト
すべてがうまくいったら、[概要]タブの接続の詳細を見ることができます.
あなたの新しいユーザーとデータベースが選択されていることを確認するので、正しいログインの詳細を参照してください.
また、パブリックホストを参照してください.
さて、CA証明書ファイルをダウンロードして、どこか安全に保存してください.
このファイルは、Laravelから接続するときに後で必要になります.
しかし、今のところ、ローカルのMySQLクライアントから接続してみてください.
MySQL 8接続を選択し、次の設定を使用します.
prod-do-user-XXXXXX.b.db.ondigitalocean.com
データベースのパブリックホスト名に置き換えられます25060
それはデフォルトではない、3306、それを更新することを確認!これは、tableplusで設定できる方法です.
今すぐに接続することができます.まだ問題があるならば、あなたのIPがデジタル海洋ダッシュボードの信頼されたソースリストでwhitestedされるならば、二重チェックをしてください.
ラーラビルからの接続
サーバの設定
何かを設定する前に、MySQL拡張モジュールが有効になっていることを確認してください.
サーバー上で
php -i
を実行することでこれをチェックできます.Ubuntuサーバでこれを行うことができます.
sudo apt install php8.0-mysql
データベース接続の設定
まず、アプリのデータベース構成
config/database.php
をチェックしましょう.MySQLドライバの設定の最後に次を追加します.
'ssl_mode' => env('SSL_MODE'),
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
) : []
次のようになります.CA証明書のアップロード
次に、CA証明書をサーバーにアップロードします.
プロジェクトのストレージフォルダに追加することをお勧めします.
[PATH TO MY PROJECT]/storage/certs/ca-certificate.crt
.しかし、それはどこにでもありえます.重要なのは、あなたのLaravelアプリケーションがそれにアクセスできることです.そのためには、ファイルにいくつかのパーミッションを設定する必要があります.
このような非常に制限的なアクセス許可をお勧めします.
chmod 440 ca-certificate.crt
また、PHPスクリプト(通常WWWデータ)を実行するユーザがこのファイルにアクセスしていることを確認します.chown www-data:www-data ca-certificate.crt
環境変数の設定
最後のステップはlaravelで環境変数を設定することです.
単にあなたの編集.ENVファイルとデータベース領域で値を置き換えます.
DB_CONNECTION=mysql
DB_HOST=private-XXXXX.b.db.ondigitalocean.com
DB_PORT=25060
DB_DATABASE=XXXXX
DB_USERNAME=XXXXX
DB_PASSWORD=XXXXX
SSL_MODE=required
MYSQL_ATTR_SSL_CA=[PATH TO MY PROJECT]/storage/certs/ca-certificate.crt
required
としてSSLRUNEモードを含まなければなりません.php artisan config:cache
を実行して、ラーラヴィルの設定キャッシュをきれいにしてください.テストとトラブルシューティング
これらの手順を実行すると、データベースに接続できます.
迅速にテストするには、ラーラーベルのティッカーを使用してください.
php artisan tinker
>>> DB::connection()->getDatabaseName();
これはデータベースの名前で戻ります.何らかの理由でまだ接続できない場合は、これらの一般的なエラーを二重にチェックしてください.
CA証明書のための
パスワード
php artisan config:cache
で更新されますReference
この問題について(あなたのLaravelアプリケーションをデジタル海洋管理MySQL), 我々は、より多くの情報をここで見つけました https://dev.to/johnnyfekete/how-to-connect-your-laravel-application-to-digital-ocean-s-managed-mysql-8-database-2khhテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol