Archivos de Categoría: MySQL

Alias útiles de los servicios Apache 2 y MySQL 5 para MacPorts

Estos son algunos de los alias que utilizo para arrancar, parar y reiniciar Apache 2 y MySQL 5 en mi instalación de MacPorts hecha con el script de instalación que publiqué hace un tiempo. Tienes que editar el fichero “~/.bash_profile” y añadir estas líneas:

alias mysql5start='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start'
alias mysql5stop='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop'
alias mysql5restart='sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper restart'

alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start'
alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop'
alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart'

Luego ejecuta “source ~/.bash_profile” para cargar los nuevos alias o simplemente abre otra ventana de terminal.

Cambiar contraseña de root en MySQL

En GNU/Linux:

$ sudo mysqld_safe --skip-grant-tables &
$ mysql -u root -p
#pulsar enter para meter una password en blanco
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit;
$ sudo service mysql stop
$ sudo service mysql start
#probar la nueva contraseña
$ mysql -u root -p

En Mac OS X con MySQL instalado mediante MacPorts:

$ sudo /opt/local/lib/mysql5/bin/mysqld_safe --skip-grant-tables &
$ mysql5 -u root -p
#pulsar enter para meter una password en blanco
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit;
$ sudo port unload mysql5
$ sudo port load mysql5
#probar la nueva contraseña
$ mysql5 -u root -p

Ejecutar comandos de shell en Mac OS X ejecutando una aplicación normal

Después de instalarme Apache2+MySQL5+PHP5.3 usando MacPorts quería tener la posibilidad de arrancar y parar los servicios sin tener que abrir una consola de comandos y ejecutar a mano los script de arranque y parada. Esto se puede conseguir creando un AppleScript que ejecute el comando en cuestión y luego guardándolo como una aplicación.

Abrir el editor de AppleScript (Utilidades→Editor AppleScript.app) y poner el comando que se quiera ejecutar. En mi caso voy a hacer 4 aplicaciones diferentes porque quiero hacer 4 scripts para el arranque y parada de Apache2 y MySQL5. Como debo ejecutarlos con derechos de administrador hay que añadir al final “with administrator privileges” (la aplicación nos pedirá la contraseña):

do shell script "/opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start" with administrator privileges
do shell script "/opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop" with administrator privileges
do shell script "/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start" with administrator privileges
do shell script "/opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop" with administrator privileges

Es MUY IMPORTANTE hacer clic en el botón “Compilar” para comprobar que todo es correcto y para que la aplicación funciones correctamente. Solo falta ir a “Archivo→Guardar…” y guardarlo en formato “Aplicación”.

Script de instalación de Apache 2 + MySQL 5 + PHP 5.3 + phpMyAdmin 3.5.4 para Mac OS X usando MacPorts

Basándome en las instrucciones de Gilles Fabio he creado un completo script para instalar Apache 2, MySQL 5, PHP 5.3 y phpMyAdmin 3.5.4 en Mac OS X usando MacPorts.

Ya que MacPorts compila todos los ports desde el código fuente es necesario tener instalado “Command Line Tools” (descárgalo desde http://connect.apple.com/, se necesita un Apple ID) y una vez instalados hay que ejecutar xcodebuild -license en la línea de comandos para aceptar la EULA (End User License Agreement).

Instala y configura automáticamente todo lo que se necesita para tener en funcionamiento un entorno Apache+MySQL+PHP. Una vez instalado los ficheros de configuración más importantes se encuentran aquí:

httpd.conf:         /opt/local/apache2/conf/httpd.conf
httpd-vhosts.conf:  /opt/local/apache2/conf/extra/httpd-vhosts.conf
htdocs folder:      /opt/local/apache2/htdocs
php.ini:            /opt/local/etc/php5/php.ini
config.inc.php:     /opt/local/apache2/htdocs/phpmyadmin/config.inc.php
my.cnf:             /opt/local/my.cnf
mysqld.sock:        /opt/local/var/run/mysql5/mysqld.sock

Puedes descargar el script desde mi repositorio Github: installMacPorts-Apache-MySQL-PHP-phpMyAdmin-OSX.sh

Echa un vistazo a mi artículo de cómo configurar los virtual hosts para poder tener multiples webs alojadas en el mismo servidor.

ACTUALIZACIÓN: Puedes instalar PHP 5.4 usando esta guia: https://gist.github.com/2721719

No se pueden cambiar las opciones de los usuarios en MySQL Administrator

Es posible que una vez instalado MySQL 5 no seas capaz de cambiar la informacion de usuario, los privilegios de los esquemas y los recursos de los usuarios de tu MySQL desde MySQL Administrator. Seleccionas “User Administration” luego una “User Account” pero no para de decirte que “No user selected” como se ve en esta captura:

Puede deberse a que tu base de datos mysql no tiene la tabla user_info. Ejecuta esta consulta en MySQL Query Browser o en el terminal de MySQL para crear la tabla user_info y el problema debería solucionarse.

DROP TABLE IF EXISTS `mysql`.`user_info`;
CREATE TABLE  `mysql`.`user_info` (
  `User` varchar(16) COLLATE utf8_bin NOT NULL,
  `Full_name` varchar(60) COLLATE utf8_bin DEFAULT NULL,
  `Description` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `Email` varchar(80) COLLATE utf8_bin DEFAULT NULL,
  `Contact_information` text COLLATE utf8_bin,
  `Icon` blob,
  PRIMARY KEY (`User`),
  KEY `user_info_Full_name` (`Full_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Stores additional user information';

Gente que se actualiza a MySQL 5 desde otras versiones dicen que el problema se soluciona ejecutando el siguiente comando desde la carpeta bin dentro del directorio de instalación de MySQL:

mysqlcheck --check-upgrade --all-databases --auto-repair

Y luego ejecutando el script mysql_fix_privilege_tables.sql. Tienes que hacer login en MySQL como root en la base de datos mysql ejecutando el siguiente comando desde la carpeta bin dentro del directorio de instalación de MySQL:

mysql -u root -p mysql

Escribe la contraseña de root cuando se te solicite y luego en el terminal de MySQL ejecuta:

SOURCE ../scripts/mysql_fix_privilege_tables.sql;

Si no tienes el fichero mysql_fix_privilege_tables.sql en la carpeta scripts (o no tienes ni siquiera la carpeta de scripts) descárgate la versión noinstall de MySQL en un fichero zip, extráela y busca el fichero. O también puedes descargártelo de aquí: mysql_fix_privilege_tables.sql.zip. No te olvides de extraerlo y copiarlo dentro de la carpeta scripts en tu directorio de instalación de MySQL.

Una vez ejecutes el script reinicia tu servidor MySQL.

Fuente: http://bugs.mysql.com/bug.php?id=25515