Instalé MySQL en Mac OS X

14.11.09. Por ooscarr (ooscarr)

Mac OS X viene con Apache y PHP, pero sólo la versión server incluye MySQL, y hasta ahora no lo había instalado.

Puedes compilar MySQL tú mismo, como con PostgreSQl, pero para qué.

Descarga e instalación

1. Descarga MySQL

Ve a la página http://dev.mysql.com/downloads/mysql/ y descarga la última versión para Mac OS X. La versión x86 en formato DMG es la recomendada.

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.

Una vez que aparezca o suene la señal de instalación correcta, hay que elegir la opción Finalizar para cerrar el asistente de instalación.

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.

El botón de iniciar o detener el servidor MySQL se encuentra en las Preferencias del sistema, en la última sección de Complementos, se agrega un botón llamado 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 /etc

sudo 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 control X, 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:

<?php
$con = mysql_connect("localhost","root","");
if (!$con){
 die('No se pudo conectar porque: ' . mysql_error());
} else{
 echo "Conectado exitosamente";
}
mysql_close($con);
?>

Guárdalo como probando.php en tu carpeta ~/Web o ~/Sites, entra a http://localhost/~USUARIO/probando.php y si sale

Conectado exitosamente

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;

En mi caso me entregó lo siguiente:

+------------------+------+
| Host             | User |
+------------------+------+
| localhost        | root |
| MacBook.local    | root |
| 127.0.0.1        | root |
| localhost        |      |
| MacBook.local    |      |
+------------------+------+
5 rows in set (0.00 sec)

Como se ve, hay 3 cuentas root (127.0.0.1, MacBook.local, y localhost; y 2 anónimas (localhost y MacBook.local)

Las cuentas anónimas se pueden eliminar, pero como ignoro si me servirán algún día, mejor le cambiaré sus contraseñas solamente.

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:

/usr/local/mysql/bin/mysql -u root -p

Si se te olvida la contraseña, consulta el manual.

Crear nueva base de datos

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 root MySQL):

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.

Referencias

Artículos relacionados

Etiquetas: , , ,

0 comentarios (RSS ATOM) :

Página principal

Publicidad