美文网首页
thinkphp6连接远程数据库操作!

thinkphp6连接远程数据库操作!

作者: DragonersLi | 来源:发表于2021-01-29 20:04 被阅读0次
    拆分数据库业务,把耗时的单独一个数据库,这样不会影响线上正常业务访问。
    目前服务器连接的是阿里云RDS服务,想把耗时业务代码和数据库单独放置一台服务器。 
    
    

    在被访问的数据库去授权,添加访问者IP,远程连接不能使用root超管用户。

    宝塔数据库,要连接的数据库对应权限设置访问权限,添加访问者IP地址。
    宝塔数据库设置访问权限
    不能使用root账户访问数据库
    ERROR 1045 (28000): Access denied for user 'root'@'47.xxx.xxx.xxx' (using password: YES)
    
    服务器连接远程数据库
    mysql -h 47.xxx.xxx.xxx -P 3306 -u DBNAME -pPASSWORD
    
    一、使用Db远程连接:
        // database数据库连接配置信息 
        'connections'     => [ 
            // 更多的数据库配置信息
            'teamaward' => [ 
                  ...
            ]
        ],
    
    use think\facade\Db;
    
    Db::connect('teamaward')->query("select * from pjh_user_team_award limit 0,10");//可以连接
    Db::connect('teamaward')->name('user_team_award')->find();//打印返回^ null 
    

    出现报错:Trying to access array offset on value of type null,有可能是配置错误。比如数据库账密。权限等。如果服务器更换IP后,要记得修改授权IP

    二、使用model方式:
    #新建模型文件UserTeamAwardOnline,对应远程数据表pjh_user_team_award
    class UserTeamAwardOnline extends BaseModel
    { 
        protected $connection = 'teamaward';//远程连接
        protected $name = 'user_team_award';//表名
    }
    
    
    
    use app\common\model\{UserTeamAwardOnline as UserTeamAwardOnlineModel }
    
    UserTeamAwardOnline::paginate(10);
    
    打印结果

    相关文章

      网友评论

          本文标题:thinkphp6连接远程数据库操作!

          本文链接:https://www.haomeiwen.com/subject/cbqarxtx.html