Database Laravel-如何实现从数据库的数据库连接
正如上面的标题,出于某种原因,我需要连接到从属数据库 但我找不到怎么做 下面是我的数据库配置:Database Laravel-如何实现从数据库的数据库连接,database,laravel,connection,replication,slave,Database,Laravel,Connection,Replication,Slave,正如上面的标题,出于某种原因,我需要连接到从属数据库 但我找不到怎么做 下面是我的数据库配置: 'mysql' => [ 'read' => [ 'host' => env('DB_SLAVE', '127.0.0.1'), 'port' => env('DB_SLAVE_PORT', '3306'), 'username' => env('DB_SLAVE_USERNAME', 'root'),
'mysql' => [
'read' => [
'host' => env('DB_SLAVE', '127.0.0.1'),
'port' => env('DB_SLAVE_PORT', '3306'),
'username' => env('DB_SLAVE_USERNAME', 'root'),
'password' => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
],
'write' => [
'host' => env('DB_MASTER', '127.0.0.1'),
'port' => env('DB_MASTER_PORT', '3308'),
'username' => env('DB_MASTER_USERNAME', 'masteruser'),
'password' => env('DB_MASTER_PASSWORD', 'pwdformaster'),
],
'driver' => 'mysql',
'database' => 'amazingapp',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'aa_',
'strict' => false,
'engine' => env('DB_ENGINE', 'InnoDB'),
'unix_socket' => env('DB_SOCKET', ''),
],
要连接从数据库,目前我想的是DB::connection'mysql.slave'
但它不起作用。您的意思是在database.php中创建新的数据库连接条目,并通过DB::connection'mysql2'使用统计方法连接 也许你可以查看这个链接 您可以尝试此配置
'mysql' => [
'read' => [
'host' => env('DB_SLAVE', '127.0.0.1'),
'port' => env('DB_SLAVE_PORT', '3306'),
'username' => env('DB_SLAVE_USERNAME', 'root'),
'password' => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
],
'write' => [
'host' => env('DB_MASTER', '127.0.0.1'),
'port' => env('DB_MASTER_PORT', '3308'),
'username' => env('DB_MASTER_USERNAME', 'masteruser'),
'password' => env('DB_MASTER_PASSWORD', 'pwdformaster'),
],
'driver' => 'mysql',
'database' => 'amazingapp',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'aa_',
'strict' => false,
'engine' => env('DB_ENGINE', 'InnoDB'),
'unix_socket' => env('DB_SOCKET', ''),
],
'mysql_master' => [
'host' => env('DB_MASTER', '127.0.0.1'),
'port' => env('DB_MASTER_PORT', '3308'),
'username' => env('DB_MASTER_USERNAME', 'masteruser'),
'password' => env('DB_MASTER_PASSWORD', 'pwdformaster'),
'driver' => 'mysql',
'database' => 'amazingapp',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'aa_',
'strict' => false,
'engine' => env('DB_ENGINE', 'InnoDB'),
'unix_socket' => env('DB_SOCKET', ''),
],
'mysql_slave' => [
'host' => env('DB_SLAVE', '127.0.0.1'),
'port' => env('DB_SLAVE_PORT', '3306'),
'username' => env('DB_SLAVE_USERNAME', 'slaveuser'),
'password' => env('DB_SLAVE_PASSWORD', 'pwdforslave'),
'driver' => 'mysql',
'database' => 'amazingapp',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'aa_',
'strict' => false,
'engine' => env('DB_ENGINE', 'InnoDB'),
'unix_socket' => env('DB_SOCKET', ''),
],
所以,如果想要连接到从服务器,只需使用DB::connection'mysql_slave' 您可以在.env上进行多个DB连接,而无需接触database.php
这就是我连接多数据库连接的方式
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=sample
DB_USERNAME=root
DB_PASSWORD=123456
DB_CONNECTION=mysql1
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=sample
DB_USERNAME=root
DB_PASSWORD=123456
当你想在你的代码上调用它时,如protrafree所述
像这样的
DB::connection('mysql')
或
我认为不复制/粘贴相同的配置有一种更简单的方法。。。。但是如果没有更简单的方法,那么我想我会把你的答案标记为正确的…@SyamsoulAzrien没有比这更简单的方法了Pwait…我们可以在.env中设置重复变量???我不这么认为。。。
DB::connection('mysql1')