image not found 

Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] 

For information about writing connectors to gracefully handle requests from the server for unknown default authentication plugins, see Authentication Plugin Connector-Writing Considerations. 

•Clients that use an account that authenticates with caching_sha2_password  must use either a secure connection (made using TCP using TLS/SSL credentials, a Unix socket file, or shared memory), or an unencrypted connection that supports password exchange using an RSA key pair. This security requirement does not apply to mysql_native_passsword , so the switch to caching_sha2_password  may require additional configuration (see Section 6.4.1.2, “Caching SHA-2 Pluggable Authentication” ). However, client connections in MySQL 8.0 prefer use of TLS/SSL by default, so clients that already conform to that preference may need no additional configuration. 

•Clients and connectors that have not been updated to know about caching_sha2_password cannot connect to accounts that authenticate with caching_sha2_password  because they do not recognize this plugin as valid. (This is a particular instance of how client/server authentication plugin compatibility requirements apply, as discussed at Authentication Plugin Client/Server Compatibility.) To work around this issue, relink clients against libmysqlclient  from MySQL 8.0 or higher, or obtain an updated connector that recognizes caching_sha2_password . 

•Because caching_sha2_password  is also now the default authentication plugin in the libmysqlclient  client library, authentication requires an extra round trip in the client/server protocol for connections from MySQL 8.0 clients to accounts that use mysql_native_password (the previous default authentication plugin), unless the client program is invoked with a --default- auth=mysql_native_password  option. 

The libmysqlclient  client library for pre-8.0 MySQL versions is able to connect to MySQL 8.0 servers (except for accounts that authenticate with caching_sha2_password ). That means pre-8.0 clients based on libmysqlclient  should also be able to connect. Examples: 

•Standard MySQL clients such as mysql  and mysqladmin  are libmysqlclient -based. 

•The DBD::mysql driver for Perl DBI is libmysqlclient -based. 

•MySQL Connector/Python has a C Extension module that is libmysqlclient -based. To use it, include the use_pure=False  option at connect time. 

When an existing MySQL 8.0 installation is upgraded to MySQL 8.0.4 or higher, some older libmysqlclient -based clients may “automatically”  upgrade if they are dynamically linked, because they use the new client library installed by the upgrade. For example, if the DBD::mysql driver for Perl DBI uses dynamic linking, it can use the libmysqlclient  in place after an upgrade to MySQL 8.0.4 or higher, with this result: 

•Prior to the upgrade, DBI scripts that use DBD::mysql can connect to a MySQL 8.0 server, except for accounts that authenticate with caching_sha2_password . 

•After the upgrade, the same scripts become able to use caching_sha2_password  accounts as well. 

However, the preceding results occur because libmysqlclient  instances from MySQL 8.0 installations prior to 8.0.4 are binary compatible: They both use a shared library major version number of 21. For clients linked to libmysqlclient  from MySQL 5.7 or older, they link to a shared library with a different version number that is not binary compatible. In this case, the client must be recompiled against libmysqlclient  from 8.0.4 or higher for full compatibility with MySQL 8.0 servers and caching_sha2_password  accounts. 

