sql >> Base de Datos >  >> RDS >> Mysql

Configuración de Macports mysql5 bajo Snow Leopard

Acabo de instalar mysql5 yo mismo, y dado que esto siempre es un dolor, he notado el proceso que seguí. Esto se hizo en Leopard, pero me imagino que el proceso es el mismo en Snow Leopard y Lion. No responde a todas las preguntas originales, pero al menos es una especie de guía.

Instalación de Mysql

Primero, instale el servidor mysql5 con:

sudo port install mysql5-server

Solo instalando mysql5 no instala el servidor.

Preste atención a la salida de la consola, incluye instrucciones para configurar macports. Es posible que desee copiarlo y pegarlo en un archivo de texto. Lo siguiente se basa en ello.

En lugar de mysql5-server , podría usar un puerto como mysql55-server , mysql56-server , mariadb-server o percona-server para obtener una versión más reciente de mysql o una bifurcación. Si lo hace, preste atención a la salida de la consola, ya que las siguientes instrucciones se basan en mysql5-server y deberá ajustarse para usar las rutas y ejecutables correctos.

Si se trata de una instalación nueva, configure la base de datos:

sudo -u _mysql mysql_install_db5

Eso genera algunas instrucciones genéricas, que no creo que sean del todo apropiadas para macports. En mi opinión, la mejor forma de cargar mysql5 como demonio es usar el método de macport:

sudo port load mysql5-server

Además de iniciar mysql5, esto lo carga permanentemente; se ejecutará al arrancar. Para detener esto más tarde:

sudo port unload mysql5-server

Si no desea ejecutarlo como un demonio, puede ejecutarlo en la línea de comando:

sudo /opt/local/lib/mysql5/bin/mysqld_safe

Compruebe que se está ejecutando iniciando sesión en la línea de comando:

mysql5 -u root -p

De manera predeterminada, la contraseña está vacía, así que simplemente presione Intro cuando se le solicite. Para establecer una contraseña de root:

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'

A continuación, se incluyen las instrucciones para configurar Macports php y la instalación nativa de php.

Configurar Macports PHP

Asumiendo que ya tienes macports php instalado y ejecutándose. Necesitas instalar php5-mysql (o algo así como php54-mysql dependiendo de la versión de php que estés usando):

sudo port install php5-mysql

Esto instala los controladores mysql, mysqli y pdo.

Ahora mira en tu /opt/local/etc/php5 directorio, si aún no tiene un php.ini copia del archivo de configuración ya sea php.ini-development o php.ini-production a php.ini . Ahora edite php.ini y busque las líneas apropiadas para agregar:

pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock

y:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

y:

mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Si no desea configurarlos, puede configurarlos explícitamente en su secuencia de comandos php cuando se conecte.

Si tiene problemas para conectarse, es posible que desee ver otras configuraciones cercanas y compararlas con php.ini-development y php.ini-production para ver qué ha cambiado.

Luego use la secuencia de comandos a continuación, o algo similar para probar que puede conectarse con php.

Configuración del sistema PHP

El php de OS X viene con soporte mysql y mysqli incorporado (pero no pdo), por lo que todo lo que necesita hacer es configurar el zócalo macport unix. La ubicación predeterminada es /opt/local/var/run/mysql5/mysqld.sock . Encuentra el lugar correcto en /etc/php.ini (si aún no lo tiene, cópielo de /etc/php.ini.default ) para agregar:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

y:

mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Si no desea configurarlos, puede configurarlos explícitamente en su secuencia de comandos php cuando se conecte.

Guión de prueba

Aquí hay un script php para comprobar que se puede conectar. Obviamente, normalmente no usará la cuenta raíz en sus scripts php, por lo que es posible que desee crear primero otra cuenta mysql para probar la conexión. La conexión PDO no funcionará para php nativo ya que no tiene controladores PDO.

<?php

$username = 'root';
$password = 'correct horse battery staple';

/* Try mysql: */

$connection = mysql_connect('localhost', $username, $password);
if ($connection === FALSE) {
    echo "Error connecting using mysql.\n\n";
    echo "Error ".mysql_errno().": ".mysql_error()."\n\n";

}
else {
    echo "Connected using mysql.\n\n";
    mysql_close($connection);
}

/* Try mysqli: */

$connection = mysqli_connect('localhost', $username, $password);
if ($connection->connect_error) {
    echo "Error connecting using mysqli:\n\n";
    echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
}
else {
    echo "Connected using mysqli.\n\n";
    $connection->close();
}

/* Try pdo:
 * Won't work for the version of php supplied with OS X. */

try {
    $pdo = new PDO('mysql:host=localhost', $username, $password);
    echo "Connected using PDO.\n\n";
    $pdo = null;
}
catch(PDOException $e) {
    echo "Error connecting using PDO:\n\n";
    echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
}