A ver, pvaldes... que me parece que te has colado otra vez...
El código que está usando jacks está sacado de aquí, donde comentaba con Txemaracas diversas formas, la más óptimas posibles, para crear bases de datos en una MySQL, a petición de un usuario, en el caso de que la base de datos no exista.
Se puede hacer de varias maneras, como se comenta en ese hilo. Esta es una en la que se dialoga con el motor MySQL de forma directa (no usando las funciones básicas de DBI. Idea sacada de la propia página de manual DBD::mysql).
La línea 13 le pide a DBI que nos dé un manejador para poder dialogar con la biblioteca MySQL. NO estamos instalando nada, sino que estamos pidiendo a DBI que cargue el controlador de MySQL para poder dialogar con el motor. (Tampoco tiene sentido decir "debería": DBI no sabe con qué motor de base de datos queremos dialogar. En un sistema puede haber varios motores simultáneos).
La línea 17 le solicita al controlador de MySQL que cree una nueva base de datos, y que nos dé el resultado de la operación.
Lo que comentas de que $drh no existe, ¿a qué te refieres? Es una variable escalar que salta a la existencia en la misma línea 13 (la estamos declarando y definiendo).
Y sobre el tema de las contraseñas, que te conteste jacks. Por mí, yo no veo problemas.