Buscar en el Blog

jueves, 17 de marzo de 2011

Cómo instalar MySQL Server en un servidor Ubuntu

En esta publicación explico el procedimiento para instalar el servidor de base de datos MySQL Server en un servidor Ubuntu.
1. En la consola de comandos (shell) ejecutar el siguiente comando:

sudo apt-get install mysql-server 

   NOTA: de preferencia antes de correr el comando apt-get install, actualizar la lista de
   paquetes disponibles usando el comando:
  
sudo apt-get update

2. Seguir con los pasos del asistente de instalación y no olvidarse la clave asignada al superusuario
    root. Una vez instalado el servidor MySQL verificamos que el servidor se haya levantado a
    través del siguiente comando:
  
sudo netstat -tap | grep mysql 

    El comando mostrará algo similar a lo siguiente, indicando el nombre de proceso asignado y que el
    servidor se encuentra escuchando (LISTEN).

tcp        0      0 UbuntuSrv:mysql *:*                     LISTEN      667/mysqld

3. El archivo de configuración del servidor MySQL se crea en el directorio /etc/mysq/my.cnf
    En éste archivo descomentar la línea:
  
bind-address = 127.0.0.1
  
   Y colocar la IP asignada al servidor, esto sirve para que el servidor acepte conexiones de clientes
    externos. Por ejemplo:
  
bind-address = 192.168.90.100
  
4. Reiniciar el servidor MySQL usando el comando:
   

sudo /etc/init.d/mysql restart 

5. En la consola de comandos acceder a la consola de administración de MySQL usando:

mysql -u root -p

   NOTA: recordar la contraseña que se colocó para el usuario root en el paso 1.

6. Crear un usuario para realizar tareas administrativas.
  
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'manager' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>QUIT;

  
   NOTA: en éste caso la contraseña para el usuario creado es manager, de preferencia cambiarla
   a una más segura.
  
7. Instalar un cliente de administración gráfico para conectarse al servidor MySQL con el usuario
    creado en el paso 6. En mi caso instalé la versión para Windows de la herramienta MySQL GUI 
    Tools descargando la aplicación del siguiente link:


http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-win32.msi/from/pick

Gestión de los servicios [Iniciar | Detener | Reiniciar]

Para detener el servicio de MySQL ejecutar el siguiente comando:

/etc/init.d/mysql stop

Para iniciar el servicio ejecutar el comando:

sudo sudo /etc/init.d/mysql start

Para reiniciar el servicio ejecutar el comando:

sudo /etc/init.d/mysql restart

Cambiar la contraseña de los usuarios del servidor MySQL

Ingresar a la consola del servidor MySQL usando el comando mysql -u root -p

mysql>use mysql;
mysql>UPDATE user SET password=PASSWORD('nuevaClave'), host='%' WHERE user='nombreUsuario';
mysql>FLUSH PRIVILEGES;
mysql>QUIT;

En donde nombreUsuario corresponde al usuario que deseo cambiar la contraseña y nuevaClave a la nueva contraseña que se asignará al usuario. Es importante también definir el host desde el cual se conectará el usuario. De preferencia usar % para permitir al usuario conectarse desde cualquier IP.

Desinstalar el servidor MySQL

Para desintalar el servidor MySQL ejecutar los siguientes comandos:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server-core-5.5
sudo apt-get purge mysql-client-core-5.5

11 comentarios:

  1. Ayuda!!! cuando intento dar un restart al mysql me sale este error que pude ser?

    Rather than invoking init scripts through /etc/init.d, use the service(8)
    utility, e.g. service mysql stop

    Since the script you are attempting to invoke has been converted to an
    Upstart job, you may also use the stop(8) utility, e.g. stop mysql
    mysql stop/waiting

    ResponderEliminar
  2. Ejecuta el comando:

    sudo service mysql stop

    Para detener el servidor

    sudo service mysql start

    Para iniciar el servidor

    ResponderEliminar
  3. De todas formas aqui tienes un tutorial completisimo:
    http://blog.widplay.org/?p=58

    ResponderEliminar
  4. Disculpa
    hay alguna forma de saber el nombre del Admin y la Contra ?? :O
    Es que no me Acuerdo de esas Cosas xD
    y queria probarlo con el phpAdmyn :O me ayudarias :O ??

    ResponderEliminar
  5. Hola, por políticas de seguridad de MySQL no puedes saberlo, pero lo que sí puedes hacer es resetear la contraseña del usuario root, en el siguiente blog explico como:

    Resetear contraseña MySQL

    ResponderEliminar
  6. Hola q tal ya lo instale y me funciona al pelo...!, desde el mismo servidor xD, excepto porque intente hacer una conexion desde otro host y no pude.

    DATOS IMPORTANTES:
    -Tengo instalado y corriendo ubuntu server sobre una maquina virtual de VMware
    -La maquina sobre la que corro el VMware es Windows 7

    Cosas que ya hice:
    -Ya cambie la ip de bind-address = la mia, es decir la del server.
    -Le doy ping desde mi maquina a la ip del servidor y viceversa. (Funciona bien)

    Preguntas:
    -¿Hay alguna forma de hacer ping al servidor mysql es decir al servicio o algo asi? o ¿como probar que funciona desde otro host?
    -¿necesito configurar el archivo hosts.allow y hosts.deny para eso?
    -¿Necesito un programa adicional como apache o samba?

    Nota:
    -Solo quiero que funcione como Servidor de Bases de Datos por eso no le tengo instalado nada mas de lo anterior mencionado.
    -Si necesita mas informacion con gusto la dare.

    Muchas Gracias

    ResponderEliminar
  7. Jeisson,

    Sí puedes hacerlo instala MySQL Workbench de http://dev.mysql.com/downloads/workbench/ para que accedas a la consola de administración.

    ResponderEliminar
  8. Hombre muchas gracias xD, gracias a eso cai en cuenta de que todos los usuarios que tenia creados solo tenian permiso al servidor localhost, cree un nuevo usuario con permiso de cualquier servidor % y listo. :D

    ResponderEliminar
  9. Hola estoy intentando hacer que a traves de una pagina en php, realice una función de insert into a una base de datos que tengo en ubuntu server, pero no guarda nada. hay algún parámetro de algún archivo mysql que tenga que configurar en ubuntu??
    Tengo un usuario 'usuario', que tiene todos los privilegios, en /etc/mysql/mycnf tengo puesta la ip del servidor...
    Nosé si me he saltado alguna configuración. (las conexiones del php estan bien configuradas...)

    ResponderEliminar
  10. muy buen aporte en verdad me sirvio de mucho , muchas gracias (:

    ResponderEliminar
  11. Hola, Cuando entre al archivo de configuración no encontre nada de bind-address pero al estar buscando en otros foros encontré que la ruta que debo ingresar es:
    /etc/mysql/mysql.conf.d/mysqld.cnf
    Espero que le sirva a alguien que tenga la misma situción que la mía. Saludos

    ResponderEliminar