在数据库

时间:2016-10-03 13:46:01

标签: mysql blob mariadb

我有一个带有longblob的表格,我在里面存放文件。由于我的主机将MySql更改为MariaDB版本10.0.27,因此在将数据加载到大于5 MB的blob时出现问题。然后我想在数据库中添加一个新列,通过将更大的文件存储到文件系统中来以编程方式处理它。但是在添加新列时,我收到以下错误:

  

错误1030:从存储引擎InnoDB获得错误66“对象是远程的”   SQL代码:           ALTER TABLE asbestdokumente           添加列extfile INT(11)NOT NULL默认0评论'Die Datei ist extern gespeichert(uber 5 MB)im Verteichnis / doks'After size

我在Stack Overflow上发现MySql和MariaDB中的Bug导致与大数据blob相关的几个问题。

这种行为与此有关吗?可以通过将存储引擎更改为Barracuda来解决吗?

1 个答案:

答案 0 :(得分:1)

我知道这是一个较旧的线程,但是我没有看到它的答案。遇到此问题时,我的操作系统是CentOS7。根据在https://dev.mysql.com/doc/refman/5.7/en/server-error-reference.html

上找到的mysql文档。

错误编号:1030;符号:ER_GET_ERRNO; SQLSTATE:HY000 消息:从存储引擎收到错误%d 检查%d值以查看操作系统错误的含义。例如,28表示磁盘空间不足

此处的关键字是“操作系统错误”

对于我来说,增加“ my.cnf”文件中的innodb_buffer_pool_size(大于300M,最大1G)并调整innodb_log_file_size(log_file_size为缓冲池大小的25%)解决了我的问题。