puppetlabs / puppetlabs-mysql

MySQL Puppet Module / Manifests + Types & Providers
Apache License 2.0
380 stars 790 forks source link

Implement caching_sha2_password Hashing #1602

Open daylicron opened 10 months ago

daylicron commented 10 months ago

Use Case

I want to be able to use the Puppet MySQL module with future MySQL 8 versions. The MySQL Server warns me in his logs, that mysql_native_password will be removed in the future

[Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

Describe the Solution You Would Like

Implementing a feature that can create MySQL users using caching_sha2_password.

Additional Context

This one seems difficult as I couldn't find a documented way that MySQL uses to hash passwords with caching_sha2_password, so that Puppet can hash the password the same way. The MySQL password function has been removed, too. I was thinking about using IDENTIFIED WITH caching_sha2_password BY '#{string}'" but I guess this way Puppet would recreate the user every run.

Does anybody has already started on this or has any idea?

C24-AK commented 8 months ago

Hey I started a PR #1612 for this topic and found a way to implement it. Maybe someone with more knowledge can improve it.

david-barbion commented 2 months ago

caching_sha2_password is now the default on MySQL 8.4 and mysql_native_password is disabled by default.