使用自有MySQL
开发者在开发调试时,可以是自有的MySQL数据库用来存储钉钉推送的数据。
但需注意以下事项:
-
MySQL数据库必须可以被公网访问。
-
为保障推送成功率,从钉钉云访问MySQL数据库批量插入50条数据,总耗时需<3S。
-
由于是开发调试,钉钉无法保障推送稳定性。
-
请使用MySQL 5.6或5.7版本,不要选择MySQL的8.x版本。
注意
部署线上应用必须使用聚石塔环境的RDS,且RDS实例不可以被公网访问。
安装MySQL
-
下载并安装MySQL。
yum install mysql-server 下载 service mysqld start 启动mysql实例 cat /var/log/mysqld.log|grep 'password' 查看新安装mysql的默认账号密码
-
登录已创建的数据库。
mysql -h -P${prot} -u{username} -p
-
修改数据库密码。
set password = password('1#QAZ2@wsx'); 密码自行更换。 alter user 'root'@'localhost' password expire never; 密码不过期 flush privileges;
设置字符集
如果字符集不是utf8mb4请按照下面指引修改,可支持emoji表情存储。
-
查看数据库的字符集设置。
show variables like '%char%';
如下示例,实例的字符集默认为latin1或者utf8。
+--------------------------------------+----------------------------+ | Variable_name | Value | +--------------------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | validate_password_special_char_count | 1 | +--------------------------------------+----------------------------+
-
修改mysql配置文件/etc/my.cnf文件,增加如下配置:
[mysqld] character-set-server=utf8mb4 [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4
-
重启数据库。
service mysqld restart
-
再次查看数据库的字符集配置,确认是否修改成功。
+--------------------------------------+----------------------------+ | Variable_name | Value | +--------------------------------------+----------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | validate_password_special_char_count | 1 | +--------------------------------------+----------------------------+
创建数据表
-
在MySQL中创建一个名为ding_cloud_push的数据库。
CREATE DATABASE ding_cloud_push DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-
创建一个数据库用户,用于连接ding_cloud_push数据库。
注意
密码包含中英文大小写字母以及特殊符号。要满足Mysql密码安全规则。否则无法执行SQL。
CREATE USER 'your_name'@'xx.xx.xxx.xx' IDENTIFIED BY 'your_pass';
-
授权创建的数据库用户,赋予数据库用户增删改查ding_cloud_push数据库表的权限。
GRANT DELETE,SELECT,UPDATE,INSERT ON `ding_cloud_push`.* TO 'your_name'@'连接DB的外网IP';
-
权限生效。
FLUSH PRIVILEGES;
-
切换到ding_cloud_push数据库下,执行以下命令创建两张数据表:
-
open_sync_biz_data表用于接收高优先级事件的推送信息。
-
open_sync_biz_data_medium用于接收低优先级事件的推送信息。
CREATE TABLE `open_sync_biz_data` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `gmt_create` datetime NOT NULL COMMENT '创建时间', `gmt_modified` datetime NOT NULL COMMENT '更新时间', `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID', `corp_id` varchar(64) NOT NULL COMMENT '企业ID', `biz_id` varchar(128) NOT NULL COMMENT '业务ID', `biz_type` int(11) NOT NULL COMMENT '业务类型', `biz_data` text NOT NULL COMMENT '业务数据', `open_cursor` bigint(20) NOT NULL COMMENT '对账游标', `status` int(11) NOT NULL COMMENT '处理状态0为未处理。其他状态开发者自行定义', PRIMARY KEY (`id`), UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='高优先级数据'; CREATE TABLE `open_sync_biz_data_medium` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `gmt_create` datetime NOT NULL COMMENT '创建时间', `gmt_modified` datetime NOT NULL COMMENT '更新时间', `subscribe_id` varchar(64) NOT NULL COMMENT '订阅方ID', `corp_id` varchar(64) NOT NULL COMMENT '企业ID', `biz_id` varchar(128) NOT NULL COMMENT '业务ID', `biz_type` int(11) NOT NULL COMMENT '业务类型', `biz_data` text NOT NULL COMMENT '业务数据', `open_cursor` bigint(20) NOT NULL COMMENT '对账游标', `status` int(11) NOT NULL COMMENT '处理状态0为未处理。其他状态开发者自行定义', PRIMARY KEY (`id`), UNIQUE KEY `uk_subscribe_corp_biz` (`subscribe_id`,`corp_id`,`biz_id`,`biz_type`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='中低优先级数据';
-
设置数据推送源
-
登录开发者后台,选择聚石塔 > 云推送数据源,然后单击添加MySql实例。
-
输入MySQL实例信息,然后单击确定完成添加。