mysql - Laravel 5.7 迁移拆分读写数据库时出现问题

标签 mysql database migration laravel-5.7 read-write

我遇到以下情况:

我想将我的数据库拆分为单独的读写数据库。因此,我设置了 config/database.php

    'mysql' => [
        'driver' => 'mysql',
        'write' => ['host' => env('DB_HOST_WRITE', 'localhost'),],
        'read'  => ['host' => env('DB_HOST_READ', 'localhost'),],
        '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,
    ],

对于 DB_HOST_WRITEDB_HOST_READ,我已经为运行数据库的服务器设置了 IP 地址。

对于DB_DATABASEDB_USERNAMEDB_PASSWORD,我已经设置了数据库名称和登录凭据。

当我尝试使用这样的 mysql 控制台命令访问它们时,两台服务器都是可访问的:mysql -u USERNAME -h IPADDRESS -p

问题是:当我尝试从像这样的第三个服务器运行迁移时

php artisan migrate

但只有写入数据库被设置。

这是预期的行为吗?

我必须手动迁移每个数据库吗?

迁移命令是否有一个标志,允许我指定要迁移的连接?

当我用谷歌搜索时,我找不到任何有关读写数据库迁移的信息。

没有完成进一步的数据库设置。我的信息来源是以下指南:https://laravel.com/docs/5.7/database#read-and-write-connections

非常欢迎提供有用指南或解决方案建议的链接。

感谢您的关注。

最佳答案

致@Travis Britz:感谢您的提示。我遗漏了术语“MySQL Replication”,laravel 文档中没有对此进行评论。我错误地认为 Laravel 算法正在自行处理同步,但事实上并没有发生。

数据库服务器之间的同步由 MySQL 内部机制处理

enter image description here

通过这些 MySQL 算法,我能够实现这样的通信结构,这可能是 Web 应用程序部署步骤中的常见任务:

enter image description here

我按照 digital ocean 的指南手动设置了 mysql 复制:https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql

Digital Ocean 是我托管应用程序的服务器提供商。

图片取自: https://www.toptal.com/mysql/mysql-master-slave-replication-tutorial

致以诚挚的问候。

关于mysql - Laravel 5.7 迁移拆分读写数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54653043/

相关文章:

mysql - 如何在MySQL上调用存储过程并一次选择返回值

php - 将具有匹配 ID 的表中的数据获取到 Laravel 中的数据透视表

mysql - 数据库索引创建与用户为表创建索引

php - 存储 - 逻辑/性能 - PHP/MySQL

mysql - 在sql中计算datediff

android - 根据我的需要选择正确的数据库

java - 如何显示条目是否在数据库中?

ruby-on-rails - Rails Migrations 可以用来转换数据吗?

c# - MySql 数据库中的 Entity Framework 代码优先迁移

mysql - 将表数据迁移到其他表的最佳方法