mysql.proc的列数错误。预期为20,找到16。该表可能已损坏

2021/01/06 06:21 · php ·  · 0评论

我正在使用000webhost.com,并且在那里使用phpMyAdmin。当我运行PHP脚本时,如标题所示,我从MySQL收到此错误:

mysql.proc的列数错误。预期为20,发现为16。

该表可能已损坏。

有什么解决办法吗?

<?php
$username="usrname";
$password="passwd";
$database="a1xxxxx_mydb";
$host="mysqlxx.000webhost.com";
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
if (isset($_GET["userLatitude"]) && isset($_GET["userLongitude"])) {

 $userLatitude=$_GET['userLatitude']; 
 $userLongitude=$_GET['userLongitude']; 
 $result = mysql_query("SELECT locationName, ( 6371 * acos( cos( radians(floatval(     $userLatitude) )) * cos( radians( locationLatitude ) ) * cos( radians( locationLongitude ) - radians( floatval($userLatitude)) ) + sin( radians(floatval($userLongitude)) ) * sin( radians( locationLatitude) ) ) ) AS distance 
         FROM Location HAVING distance < 2 ORDER BY distance LIMIT 0 ,20") or die(mysql_error()); 
echo $result;

 // check for empty result
if (mysql_num_rows($result) > 0) {
   // looping through all results
   // products node
  $response["Location"] = array();

  while ($row = mysql_fetch_array($result)) {
    // temp user array
    $product = array();
    $product["locationName"] = $row["locationName"];
    $product["locationInfo"] = $row["locationInfo"];
    $product["locationLatitude"] = $row["locationLatitude"];
    $product["locationLongitude"] = $row["locationLongitude"];
    $product["locationPic"] = $row["locationPic"];
    $product["city"] = $row["city"];

    // push single product into final response array
    array_push($response["Location"], $product);
 }
 // success
 $response["success"] = 1;

   // echoing JSON response
   echo json_encode($response);
 } else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";

// echo no users JSON
echo json_encode($response);
 }
 }
  else {
    // required field is missing
   $response["success"] = 0;
   $response["message"] = "Required field(s) is missing";

  // echoing JSON response
  echo json_encode($response);
 }
mysql_close();
?>

我也有这个错误。我通过运行修复了它

mysql_upgrade -u root -p

另外,通过运行重启mysql服务

service mysqld restart

完成不良升级后,将发生此错误。例如,如果您从5.0升级到5.1,但不运行mysql_upgrade脚本,则会发生这种情况。或者,在极少数情况下,如果直接从5.0升级到5.5,则可能会发生这种情况。(很多人这样做,但是官方并未支持这种升级)。您说您正在使用主机服务-好吧,我认为您应该创建票证并告知他们有关问题。如果您没有SUPER特权,那么您将无能为力。但是,如果您有此权利,只需运行mysql_upgrade:http ://dev.mysql.com/doc/refman/5.1/en/mysql-upgrade.html

在MacOS Mohave中将XAMPP从xampp-osx-7.2.10更新到7.3.9时,我遇到了同样的问题。因此解决方案是:

在“ Macintosh HD▸应用程序▸XAMPP▸xamppfiles▸bin”中找到文件mysql_upgrade并双击它。

在Debian 8(jessie)中将mysql服务器从5.5更新到5.7时,我遇到了同样的问题。就我而言,当我执行以下命令时,它运行良好:

mysql_upgrade --force -uroot -p

希望对您有帮助

在Ubuntu 18.04上安装XAMPP 7.4.8后,MySQL Workbench 8.0.21中出现了类似的错误。使用phpMyAdmin没有问题。

Error Code: 1558 Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100108, now running 100413. Please use mysql_upgrade to fix this error

解:

sudo /opt/lampp/lampp start
/opt/lampp/bin/mysql_upgrade

问题解决了

鸣谢:XAMPP中似乎有一个错误-https://community.apachefriends.org/f/viewtopic.php ? f =17& t = 78386 & sid = 3d3824dd​​0b6aa2e33c3adc73c744b4b4

尽管您对升级的必要性可能是正确的,但这不是发生此错误的唯一原因。

通过返回1行的查询调用以下命令时

 my $rv = $sth_indexq->fetchall_arrayref;

报告了以下错误:

DBD::mysql::st execute failed: Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50520, now running 50528. Please use mysql_upgrade to fix this error. at 
...

但是,错误的真正原因是使用fetchall_arrayref而不是fetchrow_arrayref。以下工作没有错误:

my $rv = $sth_indexq->fetchrow_arrayref;

$ rv中的数据深度仅为1级,而不是2级

mysql_upgrade解决方案很可能解决了这个问题,但是简单的解决方案是知道您的数据并使用正确的检索代码。

怀特

我正在使用Windows 10系统,对我有用的解决方案是mysql_upgrade -u root -p

但是,您需要确保需要在环境变量路径中添加安装目录的mysql / bin文件夹中存在的mysql_upgrade脚本的路径,此命令才能起作用

我在Ubuntu 20.04上使用xampp,使用以下解决方案解决了返回相同消息错误的问题:

  1. 转到xampp目录:cd / opt / lampp /
  2. 转到bin目录:cd bin
  3. 执行脚本:sudo ./mysql_upgrade

积分:https : //askubuntu.com/questions/1171409/how-to-run-mysql-upgrade-when-using-xampp

点击浏览器下面的命令

/opt/lampp/bin/mysql_upgrade

本文地址:http://php.askforanswer.com/mysql-procdelieshucuowuyuqiwei20zhaodao16gaibiaokenengyisunhuai.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!