# MySQL
微信云托管MySQL数据库是全 Serverless 架构的云原生数据库。开通即可使用,支持按实际计算和存储资源使用量收取费用。
当前支持5.7/8.0版本的MySQL。
# 使用限制
- 不支持MyISAM引擎。
- MySQL8.0开通后不支持修改大小写敏感。
- 不支持从MySQL 5.7原地升级到MySQL 8.0,需要注销后重新开通。
# 开通
微信云托管控制台-MySQL,首次进入MySQL页面会显示开通弹窗内容。
输入数据库密码后,点击「确定」即可开通使用MySQL数据库;
- 数据库开通后,会创建出3个系统数据库用于创建系统表,预计占用数据库28M内存,将额外产生0.01/月的费用;
- 微信云托管不会存储数据库密码,请妥善保管,如忘记重置密码即可;
- 数据库开通需要几分钟,请耐心等待;
# 数据库管理
点击数据库页面中的「数据库管理」按钮,页面将跳转至数据库管理页面,将自动带入相关实例信息,输入密码即可登录;
你可以按照正常的mysql数据库使用方式对其进行调配,既可以通过上述WEB控制台管理,也可以通过数据库页面中显示的外网地址(开启时)链接本地的数据库管理软件操作。
需要注意,因为此mysql是 Serverless 架构,所以在登录时,必须将数据库活跃,否则将会报错,第一次报错时会自动触发活跃,你只需要稍等一会儿再次尝试即可成功登录。
# 账号管理
MySQL可创建3个账号,root账号不支持删除及编辑;
# 1. 新建账号
开通成功后,进入数据库账号管理及数据库信息页面,点击「新建账号」,弹窗显示需配置内容;
可按权限范围及主机内容分配账号角色,新建完成后,将在账号列表中显示该条账号信息;
创建账号需要的信息描述如下:
- 账号名:自定义3-16个字符,由字母、数字和特殊字符组成;以字母开头,字母或数字结尾;特殊字符为_
- 主机:账号允许登录的IP地址,如果无限制则填
%
,多个IP由,
、;
、|
、空格
、换行
分隔 - 权限:数据库相关权限,根据自己的需要进行配置
- 密码:8-64个字符,包含大小写英文字母、数字和符号任意三种
- 备注:用于自己的备注信息
主机设置:
主机地址支持单个 IP 形式的地址,也支持填入%(表示不做 IP 范围限制)。
示例1:填入%,表示不做 IP 范围限制,即允许所有 IP 地址的客户端使用该账号访问数据库。
示例2:填入10.5.10.%,表示允许 IP 范围在10.5.10.%内的客户端使用该账号访问数据库。
# 2. 重置密码
选择对应的账号点击「重置密码」,输入新的密码,保存即可;
# 3. 编辑账号
非root账号支持编辑账号,可修改主机、权限及备注内容;
- root账号不支持编辑,默认拥有所有主机的所有权限;
# 网络信息
- 内网地址:内网访问MySQL数据库的IP及端口。同一个环境下的云托管服务和数据库天然在同一个VPC(或内网互联)内,可以内网调用。
- 外网地址:可在外网通过该外网地址访问当前数据库。开放数据库外网地址有安全风险,不建议开启。请自行评估风险,微信云托管对此不提供保障与赔偿。
- 网络:VPC及子网
# 参数设置
数据库开通后会有默认参数信息,如果默认设置不满足你的要求,可以在控制台自行设定。
目前支持的参数信息如下,其他信息请在工单联系我们。
参数名 | 描述 |
---|---|
character_set_server | 字符集 |
event_scheduler | 开启event定时任务 |
lower_case_table_names | 大小写敏感,8.0版本不支持 |
max_connections | 最大连接数 |
sql_mode | sql模式 |
注:以上参数目前只能手动在控制台进行操作,不支持执行SQL语句设置。
注意:8.0版本中,大小写敏感参数不支持配置。
开通数据库选择8.0版本,需要选择是否大小写敏感,选定创建数据库成功后,不支持修改。
针对这种情况,我们建议你如下处理,请选择任意一种执行:
- 选择用5.7版本的,开通8.0则需要注销后重新开通5.7
- 更改表名为大小写不混合的。
- 直接用腾讯云的TDSQL-C,配置在与云托管服务同一vpc(或内网互联)下即可,具体可以参考这里
# 数据库信息
- 数据库版本:目前支持MySQL 5.7版本和MySQL 8.0版本,通过模板一键部署开通的环境,默认选择的是MySQL 5.7版本;选定数据库版本后不可修改,需要注销数据库后重新开通;
- 自动暂停:数据库默认在10min内无连接和CPU使用将自动进入暂停状态,暂停后计算将不再计费,但存储仍然按实际使用量计费;关闭后,数据库将保持持续运行,无连接和CPU使用时按最小CCU算力进行计费。
- 数据库存储使用量:显示当前数据库已使用多少存储;也可以在资源监控中进行查看;
- 算力:计算单位为CCU,1个 CCU 近似等于1个 CPU 和 2GB 内存的计算资源;算力范围为0.25-16个CCU(即最大可等效于使用16核32GB的数据库实例),可按业务实际需求自动伸缩,无需人工干预;
- 字符集:utf8
# 常见问题
# 1. 部署日志/业务日志中出现报错信息“CynosDB serverless instance is resuming, please try connecting again.” 什么意思?怎么处理?
MySQL开启了「自动暂停」功能,则连续10分钟没有收到任何数据库请求以及没有登录访问过数据库(比如通过数据库管理工具),则会将数据库暂停运行(已存储的数据不受影响),等到下一次接受到数据库请求或数据库登录操作,再重新启动数据库。 目前数据库的冷启动还需要耗费一定时间(我们正在持续优化性能),在数据库启动还未完成的时候,请求数据库有概率返回这个报错。等数据库启动完毕,报错即会消失。 数据库暂停期间,CCU使用量为0,数据库存储持续消耗。 处理方式可任选一种:
- 关闭MySQL「自动暂停」功能,彻底避免冷启动。这可能会带来更多的CCU资源使用,在无任何数据库请求的情况下也会以0.25的最小算力消耗资源。
- 在代码中增加兜底逻辑,如果收到这个报错,则再次重试发送请求,直至成功。
# 2. 如何进行数据库备份和回滚
微信云托管目前没有集成备份服务,如果有备份需求可以前往腾讯云控制台建立备份计划。
# 3. 如何查看8.0版本数据库是否开启大小写敏感?
进入数据库实例,执行命令行 `show VARIABLES like "lower_case_table_names"``
# 4. 数据库事务隔离级别是什么?
云托管MySQL数据库引擎是 innoDB,支持4种隔离级别,业务可按需自行操作,参考文档
# 5. 5.7版本数据库修改大小写敏感的数据库参数,一直修改不成功怎么办?
需要先将数据库中所有的库表统一修改为小写或者大写,然后再次修改参数进行保存才可生效。