我知道之前曾问过这个问题,但似乎没有任何帮助.
我在2 - 3天前遇到过这个问题,询问服务器支持,他们告诉我,我必须将mysql从/ var移动到/ home所有的磁盘空间,这就是我所做的.然后我运行我的插入,一切都很顺利,直到今天我完成数据的插入,我想在我的表中添加索引,当我在2分钟后运行ALTER查询时,我得到了这个错误.
我在my.cnf中放了innodb_file_per_table = 1并重新启动了mysql,但没有用.
目前我们正在另一台服务器上运行,其中所有数据都很好,并且mysql运行良好,数据库表大约250GB,我检查了该服务器上比较2台服务器的设置,似乎没有什么不同我.
编辑: 显示表状态像'whois_main'
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
whois_main InnoDB 10 Compact 140859771 694 97812217856 0 6618562560 6291456 191781518 2014-02-13 16:45:16 NULL NULL utf8_general_ci NULL
Run Code Online (Sandbox Code Playgroud)
在工作服务器上:
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
whois_main InnoDB 10 Compact 140472243 694 97812217856 0 6618562560 6291456 191781518 2013-11-19 15:39:38 NULL NULL utf8_general_ci NULL
Run Code Online (Sandbox Code Playgroud)
问题来自使用 /var/tmp 作为 tmpdir 的 mysql,它不足以复制表并创建所需的索引。我通过将 tmpdir 位置更改为包含更多空间的位置来修复它。
首先我创建了 /home/mysql/tmp 目录
mkdir /home/mysql/tmp
Run Code Online (Sandbox Code Playgroud)
然后我将该目录的所有者更改为 mysql:mysql
chown mysql:mysql /home/mysql/tmp
Run Code Online (Sandbox Code Playgroud)
然后我停止了mysql服务器
service mysql stop
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令再次启动它:
service mysql start --tmpdir=/home/mysql/tmp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15634 次 |
| 最近记录: |