自建中间库就是在我们的nccs库中,新建一个Icsync表,单独把这表的增删改查的权限授权给对接的第三方平台。该表中有触发器,会自动同步表中的信息到User表中。
优点:操作简单,缺点:只做增量备份,同一个学工号如果更新卡号不会被更新,只能删掉该用户后,重新更新。
第一步:导入事先设计好的icsync.sql语句
mysql -u root -p < icsync.sql
第二步:给中间库icsync.sql授权
grant select,update, insert,delete on nccs.IcSync to 'Hello'@'%' identified by "12345" ##表示运行任何ip地址都可以用户名Hello,密码12345去增删改查nccs库中的IcSync表 如果需要数据库所有权限可执行: grant ALL PRIVILEGES ON *.* to ''Hello'@'%' identified by '12345'; flush privileges; ##不重启数据库,立即生效
经过上述两步,表结构、触发器、授权相关工作就做完了。
查询表信息:
mysql> show columns from IcSync; +-----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+-------+ | sn | varchar(32) | NO | PRI | NULL | | | name | varchar(32) | NO | | NULL | | | card | varchar(32) | YES | | NULL | | | department_sn | varchar(32) | YES | | NULL | | | department_name | varchar(32) | YES | | NULL | | | type | varchar(32) | YES | | NULL | | +-----------------+-------------+------+-----+---------+-------+
查询触发器是否随数据库导入进去了:
最终提供给一卡通厂家的信息如下:
中间库信息
ip:服务器IP 数据库类型:mysql 数据库名称:NCCS 中间库账号:为了规范统一用BaseInfo表中313ID的前8位作为用户名 中间库密码:为了规范统一用BaseInfo表中313ID的后8位作为密码 表信息如下: +-----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------+-------------+------+-----+---------+-------+ | sn | varchar(32) | NO | PRI | NULL | | | name | varchar(32) | NO | | NULL | | | card | varchar(32) | YES | | NULL | | | department_sn | varchar(32) | YES | | NULL | | | department_name | varchar(32) | YES | | NULL | | | type | varchar(32) | YES | | NULL | | +-----------------+-------------+------+-----+---------+-------+
其中:sn表示学工号,name表示姓名,card表示卡号, department_sn表部门编号(没有可不填),department_name表示部门名称,type=1(学生),2(老师),3(临时卡)