我在mysql中使用MyISAM存储引擎。 我想在特定的表上创建分区,为此我正在执行查询 -
alter table Stops PARTITION BY KEY(`stop_id`) PARTITIONS 200
其中'stop_id'是varchar的类型。执行上述查询时,我收到错误 -
#1016 - Can't open file: './database_name/#sql-38f_36aa.frm' (errno: 24)
有人可以帮我解决这个问题吗?
谢谢。
答案 0 :(得分:18)
错误:24表示为给定进程打开的文件太多。 有一个名为'open_files_limit'的只读mysql变量 将显示mysqld允许的打开文件数:
SHOW VARIABLES LIKE 'open%';
许多系统将此设置为非常低的值,如1024。 不幸的是,以下内容不起作用:
SET open_files_limit = 100000
MySQL会回复:
ERROR 1238(HY000):变量'open_files_limit'是只读的 变量
但是,可以对/etc/my.cnf进行更改。这个文件可能 不存在,如果不存在,只需创建它。确保它具有以下内容 内容:
的[mysqld]
open-files-limit = 100000
然后,请务必重启mysql:
sudo /etc/init.d/mysql restart
现在,SHOW VARIABLES LIKE'open%'应该显示100000.你的号码 使用可能会有所不同。