Mysql #1016-Can';t打开文件:'/数据库名称/#sql-38f#u 36aa.frm';(错误编号:24)
我用MyISAM存储引擎在mysql中创建了一个表。 我想在一个特定的表上创建分区,为此我正在执行查询-Mysql #1016-Can';t打开文件:'/数据库名称/#sql-38f#u 36aa.frm';(错误编号:24),mysql,partitioning,Mysql,Partitioning,我用MyISAM存储引擎在mysql中创建了一个表。 我想在一个特定的表上创建分区,为此我正在执行查询- 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) 谁能帮我解决这个问题 谢谢。来自和 er
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)
谁能帮我解决这个问题
谢谢。来自和
errno:24表示为给定进程打开的文件太多。
有一个名为“open\u files\u limit”的只读mysql变量
将显示mysqld允许打开的文件数:
SHOW VARIABLES LIKE 'open%';
很多系统将其设置为非常低的值,比如1024。
不幸的是,以下措施行不通:
设置打开的\u文件\u限制=100000
MySQL将响应:
错误1238(HY000):变量“open\u files\u limit”是只读的
变数
但是,可以对/etc/my.cnf进行更改。此文件可能
不存在,如果不存在,就创建它。确保它具有以下内容
内容:
[mysqld]
open-files-limit = 100000
然后,请确保重新启动mysql:
sudo/etc/init.d/mysql重启
现在,像“open%”这样的显示变量应该显示100000。你要的号码是多少
用途可能不同
谢谢Jacob,它帮助了我。注意,对于Debian,文件位于
/etc/mysql/my.cnf
,变量open\u files\u limit
不在那里。只需将它添加到[mysqld]
部分下面。我的Ubuntu 12.04 LTS也是如此。文件位于/etc/mysql/my.cnf
中,并且打开的\u文件\u限制
不在那里。在[mysqld]
部分添加打开的\u文件\u限制=100000
无效<代码>显示变量,如“打开%”仍然显示1024
@Styopchik您实际上必须使用open files limit=10000
才能在cnf文件中工作,请注意连字符而不是下划线