本文汇总了使用云数据库 MySQL 版的过程中常见的问题。
云数据库 MySQL 版在 MySQL 5.7 及以上版本中默认支持 InnoDB 引擎,不再支持 MyISAM 引擎、Memory 引擎或 Archive 引擎,主要原因是:
云数据库 MySQL 版对 InnoDB 做了很多内核优化,已具备明显的性能优势。
MyISAM 采用的是表级锁机制,而 InnoDB 采用的是行级锁机制,InnoDB 在通常情况下具备更高的写入效率。
MyISAM 对数据完整性的保护存在缺陷,这些缺陷会导致数据库数据的损坏甚至丢失。这些缺陷多为设计问题,无法在不破坏兼容性的前提下进行修复。
MyISAM 和 Memory 向 InnoDB 的迁移代价低,大多数应用仅需要改动建表的代码即可完成迁移。
MySQL 的发展在向 InnoDB 转移。在官方最新的 MySQL 8.0 版本中,系统表均已采用 InnoDB。
Memory 无法保证数据的完整性,实例重启或者切换主备节点时,表中的所有数据都会丢失。
如您对 MyISAM 引擎和 Memory 引擎有特别需要,可提交工单联系云数据库 MySQL 版技术支持。
云数据库 MySQL 版已对接数据库工作台,在数据库工作台中提供了相关能力。更多详细信息,请参见创建 SQL 结果集导出任务。
MySQL 5.7 实例不能直接升级为 MySQL 8.0 实例。如需升级实例版本,可以先创建一个 MySQL 8.0 实例,通过数据库传输服务 DTS(Database Transmission Service)将数据从 MySQL 5.7 迁移至 MySQL 8.0 实例。关于使用 DTS 迁移数据的详细信息,请参见什么是数据库传输服务。
若您出现无法连接数据库的问题,请根据如下建议进行排查:
若排查之后仍无法连接 MySQL 实例,您可以提交工单联系技术支持。
Access denied
。在 ECS 实例使用 MySQL 客户端连接 MySQL 实例时如果收到如下错误提示,建议优先确认是否将 ECS 实例的地址加入了 MySQL 实例的白名单。更多关于创建白名单的信息,请参见创建白名单。
ERROR 1045 (28000): Access denied for user 'example'@'[192.168.xxx.xxx]' (using password: IP NOT IN white List)
不可以。MySQL 的连接地址都是以域名的形式提供。
通常情况下,在不变更实例绑定的私有网络或子网的情况下,连接地址的 IP 不会变化,一个连接终端对应一个 ENI 网卡地址。但建议通过域名访问,使用域名访问时可以隐藏真实的 IP 并提高可用性。关于查看域名的详细信息,请参见查看连接地址和端口。
ERROR 3300 (HY000): Backend NetWork Error
。重启实例或切换主备节点后,可能会收到 ERROR 3300 (HY000): Backend NetWork Error
提示,该错误信息表示代理的网络异常,通过重试即可解决。
高权限账号:一个实例只能创建一个,可以管理所有普通账号和数据库。
普通账号:一个实例中可以创建多个,需要手动给普通账号授予特定数据库权限。
说明
关于账号权限的具体信息,请参见创建账号。
高权限账号只能重置为初始状态,无法修改为指定的权限。
说明
关于账号权限的具体信息,请参见创建账号。
可以。
原因分析:如果在创建数据库账号后,通过命令行删除了该账号,那么在控制台的账号列表中,该账号的状态会显示为不可用。
解决办法:在控制台为账号重置密码,即可恢复账号为可用状态。关于重置密码的详细信息,请参见重置账号密码。建议在控制台进行账号管理相关操作,以避免账号不可用的情况。
面对有大量读请求的应用场景,可以创建一个或多个只读节点,利用只读节点满足大量的数据库读取需求,增加应用的吞吐量,详情请参见只读节点概览。
可以与主节点不一样,并且可以随时更改。建议只读节点规格高于主节点规格,否则容易导致只读节点延迟偏高、负载高等现象。
一样,可以通过主节点的账号访问只读节点。
10 个。
因为主节点已有备份,只读节点暂时不支持备份设置以及手动发起备份。
只能为实例新增只读节点,不能将已有的节点切换为只读节点。
增加只读节点时,可能会因为集群所在资源池或当前实例适合的迁移方式不同而引起主、备库迁移或连接闪断,具体影响以变更配置页面展示的预估影响为准。如果在变更配置中只增加只读节点,选择执行时间为立即执行时有较小概率引起主、备库迁移或连接闪断。
开启读写分离前请确保已创建只读节点,若您出现读写分离报错的问题,请根据如下建议进行排查:
若排查之后仍出现读写分离报错,您可以提交工单联系技术支持。
开启读写分离后,可将满足条件的读请求转发至只读节点执行,降低主节点的读压力。关于开启读写分离后转发请求逻辑的详细信息,请参见开启读写分离。
开启全局只读后,可设置 MySQL 实例只允许读取,无法写入。
开启全局只读后只有读权限,没有其他权限。
若您出现无法进行备份操作的问题,请根据如下建议进行排查:
若排查之后仍出现无法进行备份操作的问题,您可以提交工单联系技术支持。
支持。
如果当前地域有配置默认白名单,MySQL 实例在创建后会绑定默认白名单,默认白名单内的 IP 地址或地址段可以访问实例。如果当前地域没有配置默认白名单,MySQL 实例在创建后不会绑定任何白名单,任何 IP 均无法访问该 MySQL 实例。
单个实例最多可以绑定 100 个白名单。
每个白名单最多支持 300 个 IP 或 IP 段。
支持。一个白名单最多支持绑定到 500 个实例。
慢日志明细可保留 30 天。
默认执行时间超过 1 秒的 SQL 语句会被记录在慢日志。可在参数设置中修改 long_query_time
参数来修改这个时长,详情请参见修改参数。
出于安全和稳定性考虑,当前仅支持修改部分参数,关于可修改的参数,请参见可修改参数列表 5.7 和可修改参数列表 8.0。若您无法找到需要修改的参数,您可以提交工单联系技术支持。
部分参数修改后需要重启实例,您可在控制台的参数配置>MySQL 参数的是否重启生效列查看是否需要重启实例,详情请参见修改参数。
说明
建议在业务低峰中操作,并确保应用程序具有重连机制。
系统参数模板不支持修改,您可以修改自定义模板。
lower_case_table_names
吗?MySQL 5.7 支持修改,MySQL 8.0 及之后的版本已不支持该参数。由于 lower_case_table_names
参数会影响到 MySQL 数据库整体表名和列名的大小写敏感性,建议在修改该参数之前,先备份数据。关于如何备份数据,请参见手动创建备份。
可登录数据库工作台,使用 SQL 语句 SHOW variables like '参数名'
查看。
说明
关于主备切换的更多详情,请参见切换主节点。
主备地址一样,主备切换后不需要更换地址,但需要注意主备切换过程中会有闪断的情况。