账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    tp3.1同一个链接地址下多个数据库下主从分离
    20
    0

    参照手册加入
    'DB_DEPLOY_TYPE'=> 1, // 设置分布式数据库支持
    'DB_RW_SEPARATE'=>true, //默认第一个数据库配置是主服务器的配置信息,负责写入数据
    链接ip同一个分别给了 如 192.168.1.1 'DB_HOST' => '192.168.1.1,192.168.1.1',
    数据库账户密码一样的也填写了
    不同的是数据库有多个,
    'DB_CONFIG2' => array(

        ...
    ),
    'DB_CONFIG3' => array(
        ...
    ),
    我在conf.php接着这样配置
    最后代码运行时只识别默认第一个数据库,其他的是识别不了
    日志记录 
    [ 2018-06-06T15:02:20+08:00 ] 127.0.0.1 /index.php?m=manage&a=set

    ERR: 1146:Table 'fen.config_game_list' doesn't exist
    实在没法子了相关资料也没找到 想在此问下大牛该怎么解决呢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 幽恋£如歌々 普通会员 1楼

      在TP3.1中,主从分离的策略是通过在数据库中设置事务隔离级别来实现的。以下是一些可能的解决方案:

      1. 设置默认隔离级别为读未提交:这是最简单的策略,可以确保在任何时刻只有一个事务能够对数据库进行操作。

      sql SET TRANSACTION ISOLATION nivel默认 = READ UNCOMMITTED;

      1. 设置默认隔离级别为读已提交:这种策略可以确保在任何时刻只有一个事务能够对数据库进行操作,但可能会有数据丢失的风险。

      sql SET TRANSACTION ISOLATION nivel default = READ COMMITTED;

      1. 设置默认隔离级别为读写锁:这种策略可以在一个事务中同时读取和修改数据库,但可能会有数据丢失的风险。

      sql SET TRANSACTION ISOLATION nivel default = REPEATABLE READ;

      1. 使用带锁的事务:这种策略可以在一个事务中同时读取和修改数据库,但可能会有数据丢失的风险,并且需要额外的资源来维护锁。

      sql SET TRANSACTION ISOLATION nivel default = READ COMMITTED; BEGIN TRANSACTION; INSERT INTO table (column1, column2) SELECT value1, value2 FROM table WHERE condition; COMMIT;

      在实际应用中,选择哪种策略取决于你的具体需求和环境。例如,如果你的数据库是实时的,你可能希望使用读未提交或读写锁来保证数据的一致性。如果你的数据库是长时间运行的,你可能希望使用默认隔离级别,因为它更节能。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部