PHP does not like the new MySQL 8 authentication. In order to get PHP+MySQL 8 (which is required for WordPress) you must use the legacy authentication method. See below:
CREATE [or ALTER ] USER 'wordpressuser'@'localhost' IDENTIFIED WITH mysql_native_password by 'a password';