美文网首页
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