配置thinkphp对mysql线上线下切换不同环境的配置 - (mysql-thinkphp)

Posted chenyi4

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置thinkphp对mysql线上线下切换不同环境的配置 - (mysql-thinkphp) 相关的知识,希望对你有一定的参考价值。

1.先打印出配置项的信息,在Index控制器下面的index->index里面设置

namespace app\\index\\controller;

class Index
{
    public function index()
    {
        dump(config());
    }
}

 

2.在总入口文件,thinkphp是单入口文件(和vue很像,vue也是单html的),在public/index.php加一行

define(\'CONF_PATH\', __DIR__.\'/../conf/\');

 

3.在config或者app的同级放conf目录,创建3个文件,config.php, home.php,line.php,分别放置默认配置项,本地的配置项,在线配置项

 

4.然后在config.php里面写

<?php
     return [
        \'app_status\' => \'line\'
    ];
?>

5.分别在home.php和line.php里面写下数据库配置,可以去thinkphp目录下面的convention.php里面拷贝粘贴进去

<?php
     return [
       \'database\' => [// 数据库类型
            \'type\'            => \'mysql\',
            // 数据库连接DSN配置
            \'dsn\'             => \'\',
            // 服务器地址
            \'hostname\'        => \'127.0.0.1\',
            // 数据库名
            \'database\'        => \'\',
            // 数据库用户名
            \'username\'        => \'root\',
            // 数据库密码
            \'password\'        => \'\',
            // 数据库连接端口
            \'hostport\'        => \'\',
            // 数据库连接参数
            \'params\'          => [],
            // 数据库编码默认采用utf8
            \'charset\'         => \'utf8\',
            // 数据库表前缀
            \'prefix\'          => \'\',
            // 数据库调试模式
            \'debug\'           => false,
            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
            \'deploy\'          => 0,
            // 数据库读写是否分离 主从式有效
            \'rw_separate\'     => false,
            // 读写分离后 主服务器数量
            \'master_num\'      => 1,
            // 指定从服务器序号
            \'slave_no\'        => \'\',
            // 是否严格检查字段是否存在
            \'fields_strict\'   => true,
            // 数据集返回类型
            \'resultset_type\'  => \'array\',
            // 自动写入时间戳字段
            \'auto_timestamp\'  => false,
            // 时间字段取出后的默认时间格式
            \'datetime_format\' => \'Y-m-d H:i:s\',
            // 是否需要进行SQL性能分析
            \'sql_explain\'     => false,
            ]
       ];
?>

账户和密码,根据线上和本地不同配置不同的。

6.然后替换config里面的

app_status的值,就能切换线上和本地不同的数据库密码,不需要每次上线修改一大串代码

刷新页面可以看到不同的配置信息

 

以上是关于配置thinkphp对mysql线上线下切换不同环境的配置 - (mysql-thinkphp) 的主要内容,如果未能解决你的问题,请参考以下文章

由一个GC Overhead线上问题谈谈Metaspace

thinkphp 前后台如何共用一个数据库

不同环境下的应用配置管理

nuxt项目打包上线之二

centos 7下配置mysql+php(ThinkPHP)+nginx

thinkphp如何配置errno