added a behavior to pass NULL if hostname, username, or password is empty.

MySQL recognizes "" as an empty string password, not NULL
(no password is used).
Actually empty password is not used. So we add this behavior.