dksharp's avatar

Laravel Read/Write DB Connection-> PDO Exception - Temporary failure in name resolution

Hello Guys. I just setup a read and write connection in database.php. However, I am getting following error for everything-

local.ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for xx failed: Temporary failure in name resolution {"exception":"[object] (PDOException(code: 2002): SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for xx failed: Temporary failure in name resolution at /var/www/html/xxxxxxxx/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65)
[stacktrace]
#0 /var/www/html/xxxxxxxx/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(65): PDO->__construct()
#1 /var/www/html/xxxxxxxx/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(83): Illuminate\Database\Connectors\Connector->createPdoConnection()

My .env file

DB_CONNECTION=mysql

DB_READ_HOST=read.mysql.database.azure.com
DB_READ_PORT=3306
DB_READ_DATABASE=readdb
DB_READ_USERNAME=readuser
DB_READ_PASSWORD=reaspass

DB_WRITE_HOST=write.mysql.database.azure.com
DB_WRITE_PORT=3306
DB_WRITE_DATABASE=writedb
DB_WRITE_USERNAME=writeuser
DB_WRITE_PASSWORD=writepass

my database.php

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'write' => [
                'host' => env('DB_WRITE_HOST', '127.0.0.1'),
                'port' => env('DB_WRITE_PORT', '3306'),
                'database' => env('DB_WRITE_DATABASE', 'forge'),
                'username' => env('DB_WRITE_USERNAME', 'forge'),
                'password' => env('DB_WRITE_PASSWORD', ''),
            ],
        
            'read' => [
                'host' => env('DB_READ_HOST', '127.0.0.1'),
                'port' => env('DB_READ_PORT', '3306'),
                'database' => env('DB_READ_DATABASE', 'forge'),
                'username' => env('DB_READ_USERNAME', 'forge'),
                'password' => env('DB_READ_PASSWORD', ''),
            ],
            'sticky' => true,
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

       ````
Please help.
0 likes
2 replies
dksharp's avatar

I have corrected a few settings. Now I am getting this for my write DB-

SQLSTATE[HY000] [1049] Unknown database 'xwrite' {"exception":"[object] (PDOException(code: 1049): SQLSTATE[HY000] [1049] Unknown database 'xwrite' at /var/www/html/xxxx/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65)
[stacktrace]
newbie360's avatar

@dksharp Unknown database 'xwrite' ???

I suggest first need to ensure your database config is correct, open Tinker

> DB::getPdo()

if you can see the database server information, then try to read

> DB::table('some_table')->first()

if you can read, then try to write

> DB::table('some_table')->where('id', 1)->update(['updated_at' => now()])

Please or to participate in this conversation.