【问题标题】:Laravel 5.7 problems migrating split read-write databaseLaravel 5.7 迁移拆分读写数据库的问题
【发布时间】:2019-07-06 06:35:27
【问题描述】:

我遇到以下情况:

我想将我的数据库拆分为单独的读写数据库。出于这个原因,我设置了 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

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

感谢您的关注。

【问题讨论】:

标签: mysql database migration laravel-5.7 read-write


【解决方案1】:

致@Travis Britz:感谢您的提示。我错过了“MySQL 复制”一词,在 laravel 文档中没有评论。我错误地认为 laravel 算法自己处理同步,实际上并没有发生。

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

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

我按照数字海洋的这个指南手动设置了一个 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

最好的问候。

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 2019-04-22
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多