I have run a mysql server in my macbook, where I can access via both mysql command mysql -u root
and navicat application. However, when I open the install page of a brand new wordpress app in my macbook. During the installation, I had got:
相关问题
- Display product ACF field value in Woocommerce tra
- sqlyog export query result as csv
- Adding a custom button after add to cart button in
- How to add a “active” class to a carousel first el
- Setting custom order statuses as valid for payment
For docker mysql instance
It turned out to be I have MySQL version at 8.0.11 that might be unsupported by WordPress (I guess). When I switch the mysql version from 8.0.11 to 5.7.16. It works. Fairly wired though.
What I did that solved my issue was to update to PHP 7.2.x on my IIS Server, then assigned this version to the Wordpress Website in PHPManager (In IIS Manager).
This worked for me.
Do not connect with MySQL root user. Create another user in MySQL to connect in Wordpress.
In MySQL 8 the team changed default value of default_authentication_plugin configuration variable from previous
mysql_native_password
tocaching_sha2_password
.What this means is that when a client connects to MySQL without specifying which password encryption method it uses MySQL assumes it to be using
caching_sha2_password
. But most of clients currently in use are assuming to usemysql_native_password
.To fix this problem, edit your mysql config file. On linux it should be at:
/etc/my.cnf
Find and uncomment the following line:
default_authentication_plugin=mysql_native_password
if you can't find it, just add it under
[mysqld]
.You must restart mysql after this change. On CentOS 7 you can issue this command:
systemctl restart mysqld
This permanent solution will fix mysql connection error for all wordpress installations.
MySQL 8.x actually IS supported, but requires a slightly different command when creating the user and password, as version 8 expects passwords to be SHA256 encoded.
When creating the database user, with the MySQL prompt, use the following:
So WITH mysql_native_password being the main difference. Good luck!