2012-03-13 51 views
0

我試圖用MyISAM作爲MySQL中的存儲引擎創建一個表。但查詢無法執行以下錯誤代碼。使用存儲引擎'myisam'和數據目錄在mysql中創建表錯誤

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的是它會支持不同的表,在這裏我需要存儲在一個磁盤和幾張桌子磁盤分區保留在同一數據庫中的另一個磁盤上。

請幫我解決這個問題。

+0

這對我的作品。 – 2012-03-13 12:00:30

+0

你確定MySQL有權寫入該目錄嗎? – 2012-03-13 12:02:41

+0

我給這個目錄的所有權利 – 2012-03-13 12:22:47

回答

1

操作系統錯誤代碼13是「權限被拒絕」。 檢查你的mysql的系統用戶是否有權限chdir()到目錄「/ Users/arun_kumar/Desktop/Test_DB_Data/Inde」和「/ Users/arun_kumar/Desktop/Test_DB_Data/Data」。這些目錄必須具有像u + rwx,g-rwx,o-rwx(「700」)這樣的權限,並且必須屬於mysql用戶。任何subdir應該屬於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'; 
+0

我已經使用(sudo chmod 700 Test_DB_Data命令)更改了Test_DB_Data的目錄權限,並將DATA DIRECTORY PATH更改爲/ Users/arun_kumar/Desktop/Test_DB_Data。 仍然面臨同樣的問題。 CREATE TABLE'test'.'new_table'( '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' INDEX DIRECTORY ='/ Users/arun_kumar/Desktop/Test_DB_Data'; – 2012-03-13 12:49:03

+1

我認爲創建該表的臨時文件時MySQL有問題。 – 2012-03-13 12:54:13

+0

@Arun請檢查我修改後的答案,並請讓我知道它是否有效。 – dAm2K 2012-03-13 13:19:11

相關問題