# 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版本,需要选择是否大小写敏感,选定创建数据库成功后,不支持修改。

针对这种情况,我们建议你如下处理,请选择任意一种执行:

  1. 选择用5.7版本的,开通8.0则需要注销后重新开通5.7
  2. 更改表名为大小写不混合的。
  3. 直接用腾讯云的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版本数据库修改大小写敏感的数据库参数,一直修改不成功怎么办?

需要先将数据库中所有的库表统一修改为小写或者大写,然后再次修改参数进行保存才可生效。