Con el plug-in de Netbeans, instalar la base de datos de ejemplo Sakila es sencillo (con los permisos adecuados).
La base de datos de ejemplo Sakila fue desarrollada por Mike Hillyer, un pasado miembro del equipo de documentación de MySQL AB, y su intención fue la de proveer un esquema estándar que pueda ser usado para ejemplos en libros, tutoriales, artículos, ejemplos, y así en adelante. La base de datos de ejemplo Sakila también sirve para destacar las últimas características de MySQL tales como Vistas, Procedimientos Almacenados, y Disparadores (Triggers).
Diagrama relacional del Scheme de Sakila DB (ver más grande)
Instalar el plug-in de Sakila es muy sencillo, sólo vamos al menú Herramientas > Complementos, en el panel que se abre, existe una sección llamada Plugins disponibles.
Para instalarlo, espera que cargue la larga lista de plugins disponibles, marca la casilla de Sakila Sample Database y presiona el botón Instalar que está debajo. Sigue el proceso de instalación, reinicia Netbeans IDE si es necesario.
Luego, en el panel de Servicios (si no lo ves, elije el menú Ventana > Prestaciones) y con el menú contextual sobre la parte de Bases de datos elije la opción Registrar servidor MySQL... si todavía no lo has hecho.
Ya, cuando te hayas conectado al servidor MySQL como root u otra cuenta con los suficientes permisos, selecciónala y en el menú contextual elije la nueva opción Crear base de datos....
En el cuadro de diálogo que se abre, seleccionamos sakila en el primer campo, y en el segundo seleccionamos al usuario que tendrá todo el poder sobre esta nueva base de datos.
Ya, con eso, después de esperar que se creen todas las tablas y se llenen de datos de ejemplo, podemos conectarnos y empezar a utilizarlas para nuestros experimentos y lecciones.
Voy a borrar toda una base de datos usando las líneas de comandos.
Eliminar una base de datos involucra eliminar también todas las tablas y contenidos de éstas y para hacerlo se necesita tener permiso para borrar dicha base de datos, y en mi caso usaré la cuenta root.
Voy al terminal, e inicio sesión como root:
/usr/local/mysql/bin/mysql -u root -p
Si el usuario root tiene contraseña, la ingresamos.
El comando para borrar una base de datos, según la documentación oficial, es:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
Por ejemplo, para el caso que quiera eliminar una base de datos llamada ooscarr, pondría:
DROP DATABASE IF EXISTS ooscarr;
Obviamente, se advierte precaución ya que si no se ha hecho un respaldo previo, los datos no se podrán recuperar.
Si estás usando un Mac con un procesador de 64 bits (como un Core 2 Duo o Core i5, i7) y tienes algún Leopardo (OS X 10.5 u OS X 10.6) mejor descarga la versión de 64 bits para ir acorde a Apache2 que se ejecuta a 64 bits.
2. Leer antes de instalar
Si usas Mac OS X Server te recomiendo que leas el archivo Readme.txt que viene con el DMG para leer la documentación (en inglés) ya que Mac OS X Server viene con MySQL pre-instalado.
Aún si no usas la versión server, puede que ya tengas MySQL previamente instalado. Revisa si lo tienes instalado buscando algún archivo o carpeta con la palabra "mysql" en la carpeta /usr/local ó en Librería/StartupIyems, ya sea con el Finder (Menú Ir > Ir a la carpeta...) o con el Terminal:
ls /usr/local
ls /Library/StartupItems
Otra opción es ejecutar el comando de apagar el servidor MySQL que podría estar corriendo (y que es necesario hacerlo antes de comenzar la instalación) con el comando:
mysqladmin shutdown
Si no existe el comando, estamos bien. De todos modos, el instalador archivará una versión antigua de MySQL con la extensión .bak (siempre que el servidor MySQL haya sido parado antes de instalar).
3. Asistente de instalación
Ahora instala el paquete de instalación que NO se llama "MySQLStartupItem.pkg" y el rutinario Siguiente, Siguiente, Instalar, Finalizar.
El instalador te puede decir que no hay espacio, es un bug; retrocede y vuelve a intentarlo y no debería pasar.
Ojo, el instalador requiere un usuario llamado "mysql", pero los buenos de Apple lo crearon durante la instalación del sistema operativo. :-)
Configurar Mac OS X
Iniciar servidor
Iniciar y apagar MySQL es mucho más fácil y gráfico si se instala el panel de preferencias del sistema abriendo el archivo MySQL.prefPane incluido en la DMG de instalación de MySQL.
Con esto, iniciar o detener el servidor MySQL es muy sencillo; basta presionar un botón en el panel de Preferencias del sistema MySQL, incluso se puede configurar para que se inicie automáticamente cuando arranque el sistema sin necesidad de modificar archivos de sistema.
PHP
Apple fue lo suficientemente amable para compilar php con soporte para MySQL así que sólo hay que configurar el archivo php.ini.
Primero ve a la carpeta /etc ó /private/etc, si ves algún archivo llamado php.ini no sigas el siguiente comando que consiste en crear una copia del archivo php.ini.default para usarlo como php.ini. Las intrucciones para el Terminal son las siguientes:
cd /etcsudo cp php.ini.default php.ini
Edita el archivo recién creado con permisos de administrador con la instrucción:
sudo pico php.ini
Presiona control + W, busca mysql.default_socket, y hazlo que se vea como esto:
mysql.default_socket = /tmp/mysql.sock
Guarda los cambios presionando controlX, luego presiona Y, luego presiona enter.
Si tenías el Compartir web corriendo, reinicia Apache desactivándolo y volviéndolo a activar.
Si quieres hacer una prueba, crea el siguiente archivo:
Entonces todo salió bien. Si no, quizás todavía no has configurado Apache para que funcione con PHP o qué sé yo.
Configurar bases de datos inciales
Durante la instalación por defecto de MySQL, se crearon unas cuentas de usuario:
root
El usuario root tiene acceso de super-usuario a todas las bases de datos, sólo se puede conectar desde el computador local y por defecto no lleva contraseña.
Cuentas anónimas
Dos cuentas de usuario anónimas son creadas y tampoco llevan contraseña, y sólo se puede conectar a ellas desde el local-host. Estas cuentas tienen todos los privilegios para la base de datos de prueba (test) y para otras bases de datos con nombres que empiezan con test_.
Cambiar las contraseñas por defecto
Primero debes averiguar cuáles son las cuentas que se crearon; para eso, voy al Terminal y primero me conecto como root:
/usr/local/mysql/bin/mysql -u root
...listo las cuentas con la consulta:
mysql> SELECT Host,User FROM mysql.user ORDER BY User DESC;
Para cambiar estas 5 contraseñas que están en blanco por el momento, escribo las siguientes consultas:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('contraseña_root');
mysql> SET PASSWORD FOR 'root'@'MacBook.local' = PASSWORD('contraseña_root');
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('contraseña_root');
mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('contraseña_anónima');
mysql> SET PASSWORD FOR ''@'MacBook.local' = PASSWORD('contraseña_anónima');
Obviamente, reemplazando contraseña_root por la clave que le quieras poner al super-usuario, y las contraseña_anónima por la de las cuentas anónimas.
Desde ahora, la próxima vez que ingreses a MySQL con una cuenta que requiera contraseña, deberás agregar el parámetro -p al final, por ejemplo:
Ahora voy a crear una base de datos nueva llamada "db_name". Para eso, entro a MySQL como root y escribo:
CREATE DATABASE IF NOT EXISTS db_name;
Crear un nuevo usuario
Pata crear un nuevo usuario escribimos (como rootMySQL):
CREATE USER 'ooscarr'@'localhost' IDENTIFIED BY 'obscure';
Con esto se creará el usuario "ooscarr" con la contraseña "obscure" para que se conecte desde localhost. Si queremos que pueda acceder desde otro equipo, habría que hacer lo mismo que se hizo anteriormente con los dominios o la dirección IP listados, que en mi caso sería:
CREATE USER 'ooscarr'@'MacBook.local' IDENTIFIED BY 'obscure';
CREATE USER 'ooscarr'@'127.0.0.1' IDENTIFIED BY 'obscure';
Asignar base de datos a un usuario
Ya, finalmente, le damos el permiso al usuario "ooscarr" recién creado para que administre la base de datos db_name, por ejemplo, con la siguiente sentencia SQL:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON db_name.*
TO 'ooscarr'@'localhost';
Y como uno se puede imaginar:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON db_name.*
TO 'ooscarr'@'MacBook.local';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON db_name.*
TO 'ooscarr'@'127.0.0.1';
Para salir de MySQL escribimos exit; y para salir del Terminal, tipeamos logout.
Instalar software para trabajar con MySQL
Existen herramientas más cómodas para utilizar una base de datos MySQL, como son las interfaces gratuitas phpMyAdmin, Netbeans IDE y la sensacional Sequel Pro, entre otros.
Importante
En el futuro si lo actualizas, asegúrate de hacerle un dump a tus bases de datos, ya que haciendo una instalación sobre una instalación existente destruirá tu directorio de datos.
Esto es un blog escrito por un tal Oscar desde Iquique (Chile), para compartir y comunicarse con el resto de la comunidad de Internet. También escribo opiniones y HOW-TOs a pedido.