【问题标题】:Creating table with error in mysql with Storage engine 'myisam' and data directory使用存储引擎“myisam”和数据目录在 mysql 中创建错误表
【发布时间】:2012-03-13 11:57:09
【问题描述】:

我尝试在 mysql 中创建一个以 MyISAM 作为存储引擎的表。但是查询执行失败,错误码如下。

Can't create/write to file '/Users/arun_kumar/Desktop/Test_DB_Data/Inde/myisam_data.MYI' (Errcode: 13)

以下是我使用的查询,

CREATE TABLE `test`.`myisam_data` (
  `tee_id` INT NOT NULL AUTO_INCREMENT,
  `name` TEXT,
  PRIMARY KEY (`tee_id`)
)
ENGINE = MyISAM
CHARACTER SET utf8
DATA DIRECTORY = '/Users/arun_kumar/Desktop/Test_DB_Data/Data'
INDEX DIRECTORY = '/Users/arun_kumar/Desktop/Test_DB_Data/Inde';

选择myisam的目的是支持不同表的磁盘分区,我需要将几个表存储在一个磁盘中,其余的存储在另一个磁盘中并在同一个数据库中。

请帮帮我。

【问题讨论】:

  • 您确定 MySQL 有权写入该目录吗?
  • 我已授予此目录的所有权限
  • @AmitBhargava:我使用命令 'chmod a+w' 授予了此目录的所有权限,但仍然无法创建表。
  • @juergend:我在另一台 ubuntu 机器上尝试了上述查询。它以相同的错误代码响应。

标签: mysql


【解决方案1】:

操作系统错误代码 13 是“权限被拒绝”。 检查您的 mysql 的系统用户是否有权对目录“/Users/arun_kumar/Desktop/Test_DB_Data/Inde”和“/Users/arun_kumar/Desktop/Test_DB_Data/Data”进行 chdir()。这些目录必须具有 u+rwx,g-rwx,o-rwx ("700") 之类的权限,并且必须属于 mysql 用户。任何子目录都应属于 mysql 用户或对“其他”具有“+x”权限

为了再次确定这是一个权限问题,请尝试使用此脚本创建一个名为 /tmp/mysqltest 的目录并更改其权限:

TESTDIR="/tmp/mysqltest"
mkdir "$TESTDIR"
sudo chown `ps faxu | grep 'mysqld ' | grep -v logg | grep -v grep | cut -d' ' -f1` "$TESTDIR"
sudo chmod 700 "$TESTDIR"

尝试修改后的查询:

CREATE TABLE `test`.`myisam_data` (
  `tee_id` INT NOT NULL AUTO_INCREMENT,
  `name` TEXT,
  PRIMARY KEY (`tee_id`)
)
ENGINE = MyISAM
CHARACTER SET utf8
DATA DIRECTORY = '/tmp/mysqltest'
INDEX DIRECTORY = '/tmp/mysqltest';

【讨论】:

  • 我已使用(sudo chmod 700 Test_DB_Data 命令)更改了 Test_DB_Data 的目录权限,并将 DATA DIRECTORY PATH 更改为 /Users/arun_kumar/Desktop/Test_DB_Data。仍然面临同样的问题。创建表test.new_tabletee_idINT NOT NULL AUTO_INCREMENT,name 文本,主键(tee_id))引擎 = MyISAM 字符集 utf8 数据目录 = '/Users/arun_kumar/Desktop索引目录 = '/Users/arun_kumar/Desktop/Test_DB_Data';
  • 我认为 MySQL 在为该表创建临时文件时出现问题。
  • @Arun 请检查我修改后的答案,如果可行,请告诉我。
  • 我已经通过配置 AppArmor 解决了这个问题 informationideas.com/news/2010/04/15/… 感谢您的支持:
猜你喜欢
  • 2013-07-12
  • 2011-09-07
  • 2016-12-23
  • 2012-05-04
  • 2018-06-25
  • 2011-07-17
  • 1970-01-01
  • 2012-10-02
  • 2019-01-14
相关资源
最近更新 更多