错误 1728 (HY000):无法从 mysql.db 加载。该表可能已损坏

问题描述 投票:0回答:2

我最近在我的 Mac mini 上安装了 Mac OS 10.14.5(2012 年末)。我在运行 MySQL 5.6.15 的笔记本电脑上执行了 mysqldump --all-databases,将文件复制到我的 Mac mini,并将转储导入到 8.0.16 MySQL 社区服务器 - Mac OS 10.14 中预装的 GPL .5.当尝试访问使用 MySQL 的网页时,我收到错误消息:

mysqli_connect():服务器请求客户端未知的身份验证方法[caching_sha2_password]

我以为这是因为转储没有包含 MySQL DB(包括 mysql.user),果然除了 mysql.infoschema、mysql.session、mysql.sys 和 root 之外没有其他用户;我创建的用户都不在 mysql.users 中。所以我尝试创建我在 php 网页中定义的用户:

创建由“密码”标识的用户“用户名”@“localhost”;

并收到以下错误消息:

错误 1728 (HY000):无法从 mysql.db 加载。该表可能已损坏

所以我将php网页的登录凭据更改为使用root,但仍然收到错误消息:

mysqli_connect():服务器请求客户端未知的身份验证方法[caching_sha2_password]

我用来连接数据库的代码是:

函数 connectDBi($str_server, $str_username, $str_password, $str_database, $bool_debug=false) { $linkDB = mysqli_connect($str_server, $str_username, $str_password, $str_database);

if(!$linkDB)
{
    if($bool_debug)
    {
        echo '<div style="border:1px solid blue;">';
        echo backtrace(debug_backtrace())
            .'UNsuccessful connection "'.$str_database.'" '
            .'on "'.$str_server.'" '
            ;
        echo '</div>'."\n";
    } // if($bool_debug) else
} // if(!$linkDB)
else
{
    if($bool_debug)
    {
        echo '<div style="border:1px solid blue;">';
        echo backtrace(debug_backtrace())
            .'SUCCESSFUL connection to "'.$str_database.'" '
            .'on "'.$str_server.'" '
            ;
        echo '</div>'."\n";
    }
    return $linkDB;
} // if(!$linkDB) else

} // 函数 connectDBi()

php mysql macos apache
2个回答
1
投票

您需要使用以下命令修复 mysql.db 表:

mysql> REPAIR TABLE mysql.db;

您可以在here找到类似的问题和解释,但这是由于将数据库从以前版本的MySQL移动到版本8而引起的。


0
投票

mysql> 修复表 mysql.user; +------------+--------+----------+---------------- --------------------------------------------------+ |表|欧普|消息类型 |消息文本 | +------------+--------+----------+---------------- --------------------------------------------------+ | mysql.user |维修|注意|表的存储引擎不支持修复 | +------------+--------+----------+---------------- --------------------------------------------------+ 一组 1 行(0.00 秒)

© www.soinside.com 2019 - 2024. All rights reserved.