![](/img/trans.png)
[英]Disk full, table crash… what is the right way to repair without phpmyadmin
[英]How to repair a MySQL table without using phpMyAdmin?
我有一个包含复杂列的表,我开始用大量数据填充它,在此期间,它崩溃了。
表报告为崩溃,需要修复。
phpmyadmin 中的修复表无法修复它。
然后我决定再次开始填充过程,但我什至无法检索表结构。
我怎样才能取回数据? 还是只是结构?
(我在 amd quad 上的 xampp/windows 下运行 mysql)
PHPMyadmin 在执行长查询时往往会出现问题。 如果修复表失败并显示特定错误消息,请发布。 如果它只是挂了,您应该使用mysql的命令行版本尝试修复,它位于mysql安装的bin目录中。
mysql -u username -p
mysql> use dbname;
mysql> repair table tablename;
根据桌子的大小,这可能需要一段时间。
如果这不起作用,如果您的表使用 MyISAM 引擎,则下一步是使用 myisamchk。
您也可以像这样使用 php 脚本:
<?php
$host="localhost";
$user="db_username";
$password="db_password";
$db="database_name";
// connect to database
$con = mysqli_connect($host,$user,$password);
// select the correct database
mysqli_select_db($con,$db);
// get a list of the tables
$alltables = mysqli_query($con,"SHOW TABLES;");
// record the output
$output = array();
while($table = mysqli_fetch_assoc($alltables)){
foreach($table as $db => $tablename){
$sql = 'REPAIR TABLE '.$tablename.';';
$response = mysqli_query($con,$sql) or die(mysqli_error($con));
$output[] = mysqli_fetch_assoc($response);
};
};
// print output
print_r($output);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.