Windows 10
Codeigniter 3
php 7
mysql服务器8
mysql工作台
编辑 关于标题,我已经尝试过了: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
这: MySQL 8.0.11 error connecting due to caching_sha2_password
标记为答案/重复的链接未描述此问题的实际解决方案。
为什么它不是该答案的重复
该答案和其他答案缺少的是找到正确的.cnf文件的位置。我已经通过工作台创建了一个,将其放在Windows下的programFiles /文件夹中。使用该链接https://dev.mysql.com/doc/refman/8.0/en/option-files.html,我能够确定文件的其他位置。
解决方案
起作用的实际部分是这样写的:
[mysqld]
default_authentication_plugin = mysql_native_password
这里:
C:\ProgramData\MySQL\MySQL Server 8.0
不在这里:
C:\Program Files\MySQL\MySQL Server 8.0
请注意细微的差别。同样,这是在Windows 10上。
我已经查看并查看了有关此问题的其他答案,但是这些答案在解决方案中并不完整。
END EDIT
我尝试过:
[mysqld]
default_authentication_plugin = mysql_native_password
use mysql;
select * from user \G;
结果
plugin: mysql_native_password
但在我的配置/数据库文件中:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '**********',
'database' => 'Ian',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
我已经多次重置了sql server和apache server。
我拥有新用户的刷新权限以及授予所有访问权限。
由于尝试通过caching_sha2_password连接而出现错误。 请提供任何帮助。
实际错误:
消息:mysqli :: real_connect():服务器请求客户端[caching_sha2_password]未知的身份验证方法