MySQL服务

公有数据库导入数据为什么会失败?

数据库文件的导入是异步进行的,需要先提交完毕才能开始实际的导入操作,注意事项如下:

  • 导入的sql文件最大不能超过10G。
  • 导入的sql文件中禁止出现如下内容:

    • astext*(
    • envelope*(
    • geometryn*(
    • load_file*(
    • grant*on*to

    “*”表示可以替换为任意个字符。

    如果导入文件中存在上述内容,请先处理掉再进行导入操作,否则会导入失败。

为什么要选择私有数据库?

公有数据库与私有数据库的异同点如下:

  • 不同点

    • 用户可使用长连接,维护MySQL连接池,不受30秒断连接的限制。但应用代码里面还是要有重连机制,防止后端服务发生热切换,连接失败情况发生。
    • 并发连接数最大支持到500,且直接连接服务实例,与公有集群相比,更能满足应用高并发、低延迟的需求。
    • 无服务使用限制,用户独占服务资源。

    注意:私有服务的密码初始化时为应用的SK (Secret Key),创建成功后,密码会随着重置SK而变化。

  • 相同点

    • 支持各语言原生的SDK访问数据库,用户只需要更改数据库的连接信息即可使用,导入导出和phpmyadmin操作完全相同,应用迁移的代价几乎为零。
    • 数据库自动冗余备份,后端主从切换对开发者完全透明。
    • 数据完全隔离,不同应用的数据会存在于不同的数据库中而不会相互影响。

私有MySQL支持事务吗?

支持。

提示“无法创建新的数据库,请检查数据库名称填写是否正确”错误是什么原因?

在安装一些PHP开源系统时会弹出该错误,原因在于BAE对创建数据库做了限制,没有赋予用户使用sql语句创建数据库的权限(用户需要在界面添加部署)。修改程序源代码,删除创建数据库的相关语句即可解决该错误。

公有MySQL数据库常见问题处理

开发者在使用公有MySQL数据库时,无论是通过phpMyAdmin还是在代码中直接访问,异常情况下都能得到如下的错误信息,请参照如下表格进行处理。

注:若是使用phpMyAdmin,错误信息在返回字段末尾的方括号中,形如Sorry! Login Failed, Please Try Again! [PMA '''错误信息字段''']

错误信息 说明 处理建议
Server Error 服务器错误 联系云数据库管理员
Protocol Packet Invalid 协议包非法 使用标准库连接云数据库
Ak Sk Invalid aksk错误 请核对连接数库时使用的参数正确性
No Database Selected 没有选择数据库 请在发送任何Query前选择数据库
Permission Denied 权限不允许 请正确填写ak,sk和数据库名
Connect Number Exceeded 连接数超限 优化应用代码,连接及时释放
Minute Quota Exceeded 分钟配额超限 联系管理员
Access Forbidden 禁止访问 数据库容量超限或过期,扩容或续费
Operation Not Supported 操作不支持 不使用该操作
Table Number Exceeded 表数量超限 清理不需要的表
Table Rows Exceeded 表行数超限 如果有需求,请联系管理员
Filesort Rows Exceeded 外排序行数超限 优化表或sql
Handle Rows Exceeded 操作行数超限 优化表或sql

尝试从本地环境连接MySQL数据库时连接失败,报503错误是什么?

BAE的数据库扩展服务只能被部署在BAE中的应用访问,无法通过公网或BAE的本地开发环境访问。