首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel5.7迁移拆分读写数据库的问题

Laravel5.7迁移拆分读写数据库的问题
EN

Stack Overflow用户
提问于 2019-02-12 15:05:13
回答 1查看 983关注 0票数 1

我正在经历以下情况:

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

代码语言:javascript
复制
    '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

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

代码语言:javascript
复制
php artisan migrate

但是只有写数据库才会被设置。

这是预期的行为吗?

是否必须手动迁移每个数据库?

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

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

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

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

感谢您的关注。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-13 12:42:17

@Travis Britz:谢谢你的提示。我错过了"MySQL复制“这个词,这在中没有得到评论。我误以为laravel算法是自己处理同步的,其实是没有发生的。

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

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

我通过数字海洋来手动设置mysql复制:https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql

数字海洋是我的应用程序的服务器提供商。

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

诚挚的问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54653043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档