MySQL 8 introduced a new authentication scheme that's used by default. While old behavior can be restored by using runtime flag of --default-authentication-plugin=mysql_native_password, it's not resonable to expect that consumers will do that (or potentially be able to). mysql dependency does not support this new auth, and probably will not until v3 is released which is not clear as to when that'll happen. mysql2 on the other hand happily supports it, as well as some nifty futures like prepared queries, ssl, and better performance.
MySQL 8 introduced a new authentication scheme that's used by default. While old behavior can be restored by using runtime flag of --default-authentication-plugin=mysql_native_password, it's not resonable to expect that consumers will do that (or potentially be able to). mysql dependency does not support this new auth, and probably will not until v3 is released which is not clear as to when that'll happen. mysql2 on the other hand happily supports it, as well as some nifty futures like prepared queries, ssl, and better performance.