使用 PHP 和 PDO 来更改所有表存储引擎的示例脚本:
<?php
$host = '127.0.0.1';
$db = 'your_database_name';
$user = 'your_username';
$pass = 'your_password';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// 获取所有表名
$stmt = $pdo->query('SHOW TABLES');
$tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
// 更改所有表的存储引擎到 InnoDB
foreach ($tables as $table) {
$stmt = $pdo->prepare("ALTER TABLE $table ENGINE=InnoDB");
$stmt->execute();
echo "Table $table has been converted to InnoDB.\n";
}
请确保替换 'your_database_name'
, 'your_username'
, 和 'your_password'
为你数据库的实际名称、用户名和密码。这个脚本将会获取数据库中的所有表,并将它们的存储引擎更改为 InnoDB。