拆分数据库业务,把耗时的单独一个数据库,这样不会影响线上正常业务访问。
目前服务器连接的是阿里云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);
打印结果
网友评论