Ubuntu 18.04 上 mysql 的大小限制是多少以及如何增加它们?

Ubuntu 18.04 上 mysql 的大小限制是多少以及如何增加它们?

背景:我在 Ubuntu 18.04 LTS 下的 Apache2 网络服务器上运行 cqpweb,这是一个用 PHP 编写并连接到 mysql 数据库的语料库查询接口。Ubuntu 服务器是从头开始设置的,目前没有对 mysql 或 php 进行手动配置。

cqpweb 运行顺利,除非它开始抛出如下错误消息:

 A MySQL query did not run successfully!

 Original query: LOAD DATA LOCAL INFILE '/data2/cqpweb/cach/tab_dist_fycel9oplk' INTO TABLE `db_dist_g2f3ndxf40` FIELDS ESCAPED BY '' /* from User: knappen |
 Function: create_db() | 2019-Apr-25 11:23:01 */

 Error # 0:

这件事发生在一夜之间,系统没有更新或其他更改。因此我怀疑数据库的大小已达到某个限制,我必须增加它。

问题:mysql 数据库的大小限制是多少以及如何增加它们?

附加信息:

php --version
PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )

mysql --version
mysql  Ver 14.14 Distrib 5.7.25, for Linux (x86_64) using  EditLine wrapper

mysql 的大小:

root@corpora:/var/lib/mysql# du -h ./
23M        ./mysql
676K        ./sys
16G        ./cqpweb
1.1M        ./performance_schema
16G        ./

错误日志:有相关消息/var/log/mysql/error.log

从 mysql 提示符(与 cqpweb 在同一数据库用户下)手动运行数据库查询成功(令我大吃一惊)。

编辑:原始磁盘空间不是问题——设备​​上有足够的空间。

EDIT2:我尝试采用蛮力方法解决基本问题,使用备份了数据库中的数据mysqldump,销毁了数据库,重新安装了mysql服务器,从转储中恢复数据库;将大小从16G减少到11G,但原来的问题仍然存在。

答案1

因此,我怀疑数据库的大小已经达到限制,我必须增加它。

我对此表示怀疑。如果达到限制,则会被报告(可能是/var/log/mysql/error.log,和/或/var/log/mysql.log)。

mysql 数据库的大小限制是多少以及如何增加它们

这些限制不可编辑:

  • InnoDB 允许最多 40 亿个表。

  • MySQL 对每个表的列数有严格的限制,为 4096 个

  • 表空间的最大大小为四十亿页(64TB),这也是表的最大大小。

  • MyISAM 默认允许数据和索引文件最大增长到 256 TB,但此限制可以更改为最大允许大小 65,536 TB(2567 − 1 字节)。

但你离这些还差得很远。

其他限制可以通过编辑来强制执行/etc/my.cnf,但如果您添加了它们的话。

MySQL 查询未成功运行!

这条通知没有说任何有用的东西。

您的问题出在函数上create_db,MySQL 抛出了错误。从理论上讲,这确实可能是 MySQL 的限制,但查询出错的可能性要高得多。也许数据中有一个(双)引号或其他字符未正确处理。或者 JOIN 不正确,并且由于数据量大,MySQL 现在认为它需要使用另一个 INDEX(根据我的经验,带有 ORDER BY 的 SELECT 具有大量相同值或字段中有 NULL 值,往往会频繁切换 INDEX)。

您可能需要找出 SQL 命令实际上是什么并检查它或执行的结果。

如果没有函数的实际内容和数据库的示例,那么就没有什么可继续的。

相关内容