【发布时间】:2019-10-31 12:41:14
【问题描述】:
我最近在我的 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]
我以为这是因为dump没有包含MySQL DB(包括mysql.user),果然除了mysql.infoschema、mysql.session、mysql.sys和root之外没有其他用户;我创建的所有用户都不在 mysql.users 中。所以我尝试创建我在我的 php 网页中定义的用户:
创建由“密码”标识的用户“用户名”@“本地主机”;
并收到以下错误消息:
错误 1728 (HY000):无法从 mysql.db 加载。该表可能已损坏
所以我将php网页的登录凭据更改为使用root,但仍然收到错误消息:
mysqli_connect():服务器请求的客户端未知的身份验证方法[caching_sha2_password]
我用来连接数据库的代码是:
function 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()
【问题讨论】: