将MySQL升级到8.0版后,任何迁移数据库的尝试都会引发异常,指示<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css" rel="stylesheet"/>
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/plugins/debug.addIndicators.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.5/ScrollMagic.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
</head>
<body>
<div id="root"></div>
</body>
unknown authenticaion method
答案 0 :(得分:3)
这是因为MySQL 8.0.4已将其默认身份验证机制更改为 [Illuminate\Database\QueryException]
SQLSTATE[HY000] [2054] The server requested authentication method unknown t
o the client (SQL: select * from information_schema.tables where table_sche
ma = wiki and table_name = migrations)
[PDOException]
SQLSTATE[HY000] [2054] The server requested authentication method unknown t
o the client
[PDOException]
PDO::__construct(): The server requested authentication method unknown to t
he client [caching_sha2_password]
。 (second clause)
要使用caching_sha2_password
.env
和DB_USERNAME
对其进行身份验证,请按照以下说明操作:
将DB_PASSWORD
添加到您的default-authentication-plugin=mysql_native_password
在CentOS / RHEL上,它位于my.cnf
在Debian / Ubuntu上,我相信它位于/etc/my.cnf
这会将默认身份验证机制恢复为用户名密码。
登录您的mysql并按照程序
删除现有数据库用户并重新创建它。
为了删除用户:
/etc/mysql
(假设您的数据库是本地的)
创建另一个用户
DROP USER yourUser@localhost;
CREATE USER user@localhost IDENTIFIED BY 'yourpassword';
冲洗特权
GRANT ALL PRIVILEGES ON dbName.* TO user@localhost;
退出mysql并运行:
On Centos / RHEL:FLUSH PRIVILEGES;
在Debian / Ubuntu上:systemctl restart mysqld
我可以在不删除数据库的情况下启动并运行。
参考文献:
答案 1 :(得分:0)
从任务管理器终止sqld,现在从XAMPP控制面板终止并重新启动MySQL。