RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
修复mysql表的两种方法

修复mysql表是我们经常需要用到的,下面就教您两种修复mysql表的的方法,如果您之前遇到过此方面的问题,不妨一看。

修复mysql表第一种方法:

 
 
 
  1. shell> mysqlcheck -r -c -o -uuser -ppasswd db_name

修复mysql表第二种方法,用以下这个脚本,从网上下的,似很管用.将这个脚本放在你的web根目录下,然后从web页面运行这个脚本.

 
 
 
  1. cat repair.php
  2. 需要修改
  3. $dbuser="root"; --->需要修改
  4. $dbpw=""; --->需要修改
  5. $dbname="db_name"; -->需要修改
  6. #$table="search_profile";
  7. mysql_connect($dbhost, $dbuser, $dbpw);
  8. mysql_select_db($dbname);
  9. if(!get_cfg_var("register_globals")) {
  10. foreach($HTTP_GET_VARS as $key => $val) {
  11. $$key = $val;
  12. }
  13. }
  14. function checktable($table, $loops = 0) {
  15. global $db, $nohtml;
  16. $result = mysql_query("CHECK TABLE $table");
  17. if(!$nohtml) {
  18. echo "Checking table $table";
  19. echo "TableOperationTypeText";
  20. } else {
  21. echo "\n>>>>>>>>>>>>>Checking Table $table\n";
  22. echo "---------------------------------
  23. \n";
  24. }
  25. $error = 0;
  26. while($r = mysql_fetch_row($result)) {
  27. if($r[2] == 'error') {
  28. if($r[3] == "The handler for the table doesn't support check/repair") {
  29. $r[2] = 'status';
  30. $r[3] = 'This table does not support check/repair/optimize';
  31. unset($bgcolor);
  32. $nooptimize = 1;
  33. } else {
  34. $error = 1;
  35. $bgcolor = 'red';
  36. unset($nooptimize);
  37. }
  38. } else {
  39. unset($bgcolor);
  40. unset($nooptimize);
  41. }
  42. if(!$nohtml) {
  43. echo "$r[0]$r[1]$r[2]$r[3]";
  44. } else {
  45. echo "$r[0] | $r[1] | $r[2] | $r[3]
  46. \n";
  47. }
  48. }
  49. if($error) {
  50. if(!$nohtml) {
  51. echo "Repairing table $table";
  52. } else {
  53. echo ">>>>>>>>>>>>>Repairing Table $table
  54. \n";
  55. }
  56. $result2=mysql_query("REPAIR TABLE $table");
  57. if($result2[3]!='OK')
  58. $bgcolor='red';
  59. else
  60. unset($bgcolor);
  61. if(!$nohtml) {
  62. echo "$result2[0]$result2[1]$result2[2]$result2[3]";
  63. } else {
  64. echo "$result2[0] | $result[1] | $result2[2] | $result2[3]
  65. \n";
  66. }
  67. }
  68. if(($result2[3]=='OK'||!$error)&&!$nooptimize) {
  69. if(!$nohtml) {
  70. echo "Optimizing table $table";
  71. } else {
  72. echo ">>>>>>>>>>>>>Optimizing Table $table
  73. \n";
  74. }
  75. $result3=mysql_query("OPTIMIZE TABLE $table");
  76. $error=0;
  77. while($r3=mysql_fetch_row($result3)) {
  78. if($r3[2]=='error') {
  79. $error=1;
  80. $bgcolor='red';
  81. } else {
  82. unset($bgcolor);
  83. }
  84. if(!$nohtml) {
  85. echo "$r3[0]$r3[1]$r3[2]$r3[3]";
  86. } else {
  87. echo "$r3[0] | $r3[1] | $r3[2] | $r3[3]
  88. \n";
  89. }
  90. }
  91. }
  92. if($error&&$loops) {
  93. checktable($table,($loops-1));
  94. }
  95. }
  96. if($check) {
  97. $tables=mysql_query("SHOW TABLES");
  98. if(!$nohtml) {
  99. echo "";
  100. }
  101. if($iterations) {
  102. $iterations--;
  103. }
  104. while($table=mysql_fetch_row($tables)) {
  105. if(substr($table[0], -8) != 'sessions') {
  106. $answer=checktable($table[0],$iterations);
  107. if(!$nohtml) {
  108. echo " ";
  109. }
  110. flush();
  111. }
  112. }
  113. if(!$nohtml) {
  114. echo "";
  115. }
  116. } else {
  117. echo "Database Table Repair Utility for Discuz! (Require MySQL 3.23 )
  118. ".
  119. "This script will attempt to repair corrupted databases. While it can repair most common errors,
  120. ".
  121. "it can not repair everything. As a side benefit it will also optimize your tables.
  122. ".
  123. "This script was copyrighted by Jelsoft and modified by Crossday Studio to make it apply for Discuz!.
  124. ".
  125. "Usage:
  126. ".
  127. "iterations=x (x is the number of times you wish for the script to attempt to repair a broken table)
  128. ".
  129. "nohtml=1 (Output text only no html. Useful for cronjobs and you wish to receive text only)
  130. ".
  131. "check=1 (without this you will get this screen and no checking)
  132. ".
  133. "Example Usage:
  134. ".
  135. "repair.php?html=1&check=1 (most common usage, will check a forum and return html results)
  136. ". "repair.php?check=1&iterations=5 (try to repair damaged tables 5 times)".
  137. "";
  138. }
  139. ?>

新闻标题:修复mysql表的两种方法
文章分享:http://www.jxjierui.cn/article/cohsjco.html