
'mysql_center'
=>
[
'driver'
=>
'mysql',
'host'
=>
env('DB_HOST',
'
localhost
'),
'database'
=>
env('DB_DATABASE_CENTER',
'forge'),
'username'
=>
env('DB_USERNAME',
'forge'),
'password'
=>
env('DB_PASSWORD',
''),
'charset'
=>
'
utf8
',
'collation'
=>
'utf8_unicode_ci',
'prefix'
=>
'',
'strict'
=>
false,
],
我自己建立的model
User.php
是可以通过下面这种方式切换数据库的。
class
User
extends
Model
implements
AuthenticatableContract,
CanResetPasswordContract
{
protected
$
connection
=
'mysql_center'
如何实现多数据源动态切换!
最近接到一个监控数据库资源情况的小项目。需要监控多个数据库的长时间耗时的SQL,并发出短信预警提醒。
技术实现思路:
1、通过配置设置一个主数据库,通过主数据库读取需要监控的数据库的地址,账号密码,驱动类型,需要执行的SQL,以及查询结果字段,短信模板等。
2、使用jdbc模板实现,动态数据源的配置及切换。
3、短信内容实现动态替换,模板引擎替换
4、动态SQL,根据执行类型字段,支持增删改查的SQL
5、可以根据插入的SQL的链路串起来SQL执行顺序。前边的SQL也可以动态生成后续需要动态执行的SQL,动态插入到执行SQL列表中。
今天先把思路设计出来,后续再上实现的代码。
1、在不退出sqlplus的情况下,直接在命令行输入conn username/password;即可完成切换。2、在退出sqlplus的情况下,windows下:set ORACLE_SID=db_namelinux下:export ORACLE_SID = db_name再登录相应的用户即可完成切换。
3、创建用户命令:create user usernamer identified by passwd;
4、给用户赋权限:grant connect,resource,dba to username
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)