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] type='MYISAM'"
)
or
die
(
mysql_error
(
)
)
;
}
#var_dump($result);
mysql_close
(
$link
)
;
?>
|
MySQL 从 5.5 之后默认引擎是 InnoDB,InnoDB 比 MyISAM 要好不少,但是毕竟庞大臃肿,所以以前都是默认 MyISAM,软硬件资源日渐丰富之后,InnoDB 就被重视了。
如果是老的数据库,用的是 MyISAM 引擎,可以用顺利转换到 InnoDB 引擎。MySQL 提供了一个转换脚本(其实默认是用来给你往回转的 InnoDB –> MyISAM),可以在两种引擎中互换,用法很简单,具体可以自己看 help,这里举例一个刚刚转换过来的表:
1
2
3
4
|
mysql_convert_table_format
yourdb
--
user
=
root
--
password
=
'youpw'
-
f
--
socket
=
'/var/run/mysqld/mysqld.sock'
yourdb
是要转换的数据库名
yourpw
是
root
密码
socket
可以在
my
.
cnf
文件中找到。
|
注意事项:
1、MySQl 5.5 以后,mysql_convert_table_format 默认是将 InnoDB 转换成 MyISAM,如果要反过来转,用 –engine= INNODB 是不行的(莫名其妙就是不行),要直接修改 /usr/bin/mysql_convert_table_format 脚本,将里头 $opt_engine=”MYISAM”; 改成 $opt_engine=”INNODB”; 然后运行就可以了。
2、不要随便转换 MySQL 自己的数据库(mysql),这个数据库必须是 MyISAM 引擎的。