Lỗi là do bạn thiếu driver
trong cấu hình của bạn.
Cách tốt hơn để thay đổi kết nối là đăng ký kết nối mới của bạn trong tệp cấu hình cơ sở dữ liệu và thay đổi kết nối trong thời gian chạy.
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
'newConnection' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'db2',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
]
Giờ đây, bạn có thể thay đổi kết nối của mình bằng tên bạn đã sử dụng để xác định kết nối mới của mình.
Thay đổi kết nối mặc định
Config::set('database.default', 'newConnection');
DB::reconnect('newConnection');
hoặc thay đổi kết nối cho trình tạo truy vấn
DB::connection('newConnection')->table('articles')->insert($articles);
hoặc nếu bạn đang sử dụng các mô hình Eloquent, bạn có thể đặt kết nối mặc định được liên kết với mô hình bằng cách sử dụng connection
tài sản
protected $connection = 'newConnection';
hoặc thay đổi trong thời gian chạy bằng cách gọi setConnection
(new User)->setConnection('newConnection');
Nếu bạn muốn thay đổi chi tiết kết nối hiện tại, bạn có thể thay đổi chúng theo ý muốn
Config::set('database.connections.mysql.database', 'db2');
và sau khi thay đổi, bạn cần gọi
DB::reconnect('mysql');
hoặc
DB::purge('mysql');