天天看點

mysql的data資料庫隻有.frm 而.myd和.myi沒有,使用正常

正常 data目錄下的資料庫檔案隻要表結構檔案frm檔案...甚是不解  鑽研過後知道

mysql的預設資料庫引擎模式呗設定成了InnoDB 

innodb表沒有沒有MYD和.MYI,其資料檔案對應于ibdata1檔案中

要讓.myd和.myi的資料庫檔案也出現,則轉換表類型innodb為myisam.

解決方法:

Sql中InnoDB類型轉換為MyISAM指令

ALTER TABLE 表名 engine= MyISAM;

連編碼一起轉

ALTER TABLE 表名 engine=MyISAM CHARACTER SET utf8;

下面提供一個資料庫批量轉換PHP代碼

 一個php腳本,沒有錯誤檢查,謹慎使用,最好使用前先備份!

,儲存成zhuanhuan.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?php

//連接配接資料庫

$host='localhost';

$user='mysql_username';   //管理賬戶

$passwd='mysql_password'; //密碼

$db='wordpressdb';  //資料庫名稱

$link= mysql_connect($host,$user,$passwd);

if (!$link) {

die('Could not connect: '.mysql_error() );

}

mysql_select_db( $db,$link ) or die ('can\'t use'. $db . mysql_error());

$result=mysql_query("show tables ") or die( mysql_error());

while($row=mysql_fetch_row($result)){

#echo $row[0];

#var_dump($row);

echo "$row[0] \n";

mysql_query("alter table  $row[0] engine='MYISAM'") or die (mysql_error());

#var_dump($result);

mysql_close($link);

?>