Un espacio para los entusiastas del web

31 com comentarios en total.
10 may 2002
109.369 Lecturas
Tags: Software Libre,

Compilando MySQL para Linux

En este taller vamos a explicar los pasos a seguir para compilar MySQL en Linux y así poder usarlo con PHP.

  • Nos ponemos como root para empezar a trabajar
  • Creamos el grupo y usuario mysql
  • Descargamos las fuentes de MySQL y las descomprimimos
  • Preparamos las fuentes para ser compiladas
  • Compilamos e instalamos las fuentes
  • Instalamos la Base de Datos
  • Asignamos los direcorios a sus respectivos propietarios
  • Copiamos el archivo de configuración a /etc
  • Probamos MySQL

Adquirimos permisos de root para no tener ningún problema

Obtenemos login como root con el comando su -l:

$ su -l
Password:
#

Notar que el signo $ ha cambiado por #. Si es así, habremos obtenido permisos de root, cosa que usaremos para tareas muy determinadas, ya que podemos dañar el sistema.

Añadimos el grupo mysql y creamos el usuario mysql dentro del grupo mysql:

# groupadd mysql
# useradd -g mysql mysql

Bajamos las fuentes y las preparamos para compilarlas

Descargamos las fuentes en formato .tar.gz ( tarball ) de http://www.mysql.com/. (NOTA: son unos 11 Mb)

Descomprimimos las fuentes:

# gunzip mysql-3.x.x.tar.gz
# tar -xvf mysql-3.x.x.tar    

Preparamos las fuentes para compilarlas:

# cd mysql-3.x.x
# ./configure --prefix=/usr/local/mysql

Si todo ha ido bien, estaremos en condiciones de compilar MySQL:

# make && make install && echo "Bien compilado e instalado"

Instalando las Bases de Datos

Si todo ha ido bien, deberemos ejecutar el script mysql_install_db:

# cd scripts
# ./mysql_install_db

Si nada ha fallado, seguimos con la configuración. Ahora cambiamos los propietarios de los directorios

# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql

Una vez habido entregado los directorios a sus propietarios, creamos el archivo de configuración:

# cd ..
# cp support-files/my-medium.cnf /etc/my.cnf

Probamos el servidor:

# /usr/local/mysql/bin/safe_mysqld
--user=mysql &
Si no devuelve ningún error, entonces está todo bien.      

Comprobamos la conexión con el servidor con el programa mysql:

# /usr/local/mysql/bin/mysql
Si obtenemos la línea de comandos del servidor, entonces está todo correcto

Creamos
los enlaces a los clientes de MySQL:

# ln /usr/local/mysql/bin/mysql
/usr/bin/mysql
# ln /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin

Añadiendo Usuarios al sistema MySQL

Si
has seguido todos los pasos hasta aquí, tendrás una BD llamada mysql que es en la que se administran todos los passwords y usuarios de MySQL, lo primero que haremos será cambiar la password del root ( que ahora está vacía ):

Cambiamos la password de root con el programa mysqladmin:

# mysqladmin -u root password
nuevo_password

Ahora añadiremos algunos usuarios para ver como funciona este sistema:

Para añadir usuarios, usaremos el comando GRANT, que tiene esta sintaxis:

GRANT priv_type [(column list)]
[, priv_tipe[(column_lis)] ...]
ON {table_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[, user_name [IDENTIFIED BY 'password'] ...]
[WITH GRANT OPTION]

Bueno, puede parecer m ás difícil de lo que es en realidad, imaginemos que queremos crear un usuario llamado Pedro con todos los permisos sobre su base de datos llamada pedro_db, y que solo pueda conectar desde cualquier máquina de dominio.com pues haremos algo así:

# mysql -p
Enter password:
mysql> GRANT insert,select,update,delete,create,drop,alter ON
pedro_db.* TO pedro@"%.dominio.com" IDENTIFIED BY 'p3dr0';

Una explicación de lo anterior, vamos a darle permiso
a hacer ( insert, select, update … ) sobre cualquier tabla de pedro_db
a un usuario llamado pedro que conectará desde cualquier máquina de dominio.com,
cuya password será p3dr0.

Ahora vamos a crear otro superusuario llamado ferdy que tendrá todos los
privilegios, y que podrá conectar desde cualquier sitio:

mysql> GRANT ALL PRIVILEGES
ON *.* TO ferdy@"%" IDENTIFIED BY 'gh4limones25tf' WITH
GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO ferdy@localhost IDENTIFIED
BY 'gh4limones25tf' WITH GRANT OPTION;

Con esto tendremos a nuestro nuevo superusuario.

Supongamos por último que queremos borrar a Pedro, pues como los usuarios se guardan en la base de datos mysql en la tabla user:

mysql> use mysql;
mysql> DELETE FROM user WHERE user = 'pedro';
Pedro habrá desaparecido de nuestro sistema MySQL. Y teniendo en cuenta que Ferdy no debería tener tantos permisos le quitaremos los permisos sobre la base de datos usuarios:
mysql> REVOKE ALL PRIVILEGES
ON usuarios.* FROM ferdy;
Y Ferdy no tendrá permisos sobre la base de datos usuarios. La sintaxis de REVOKE es:

REVOKE priv_type [(column_list)]
[, priv_type [(column_list)] ...]
ON {table_name | * | *.* | db_name.*}
FROM user_name [, user_name ...]

Y esto es todo lo básico que necesitas saber para empezar a trabajar con MySQL sobre Linux

Si has llegado hasta aquí entonces todo ha ido bien. Sólo me queda recomendarte el tutorial de MySQL

Documento redactado por Ferdy gracias a Herminio Heredia Santos para Maestros del Web.

Fernando José Pereda GarcimartínFernando José Pereda Garcimartín para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: @maestros | /maestrosdelweb

Comentarios

  1. rstapia

    Hola, he hecho todo lo que dice en este manual, pero no me funciona la compilación…cuando entro en el directorio de mysql y ejecuto ./configure –prefix=/usr/local/mysql …se me para y la última linea que me pone es….mysql ended…. y se me queda parpadeando, al dar a intro y hacer el make me dice que no hay ningun objeto o miembro para hacer un makefile…..he instalado todos los paquetes en el Red Hat 8.0 referentes a mysql,apache y php, y me he descargado todo los paquites, pero no consigo que funcione….a que puede ser debido….

    Gracias por todo

  2. Augusto

    falta mas informacion espero que lo mejores para sacar mis tareas que me solicitan

  3. Unregistered

    bueno bueno

  4. YAST2

    excelente

  5. No Registrado

    Bueno en ese tutorial habla todo pero de instalacion desde codigo fuente y que pasa cuando estamos trabajando con rpm

  6. No Registrado

    Me paso lo mismo no pude pasar del paso 1 al 2 de la seccion Instalando las BD :S mala onda. :_( es una pena. tendre que acudia a otra fuente de info.

  7. No Registrado

    jau4ju4a mira el error es que no bajaste el source ;) bajaste el archivo equivoco el source se encuentra en la parte inferior creo todas las demas son binario
    ami me funko espero = ati

  8. Jose

    bueno yo soy muy nobato en esto..primeramente no se donde tengo que escribir esos codigos..

  9. Jorge Ospina

    Pues hombre toda la informacion esta muy completa, aunque sugiero las sintaxis de los diferentes composiciones de una Base de Datos…

    Gracias…

  10. juampi

    bueno me parece muy bien pero como entro al shell

  11. gabriela cabrera

    me parecio muy bueno tu tutorial , me gustaria saber como restaurar a mysql manda error de user y password y en ocaciones no permite realizar un dump gracias

  12. MCZ

    Tengo una duda.., tengo mysql ya instalado, una aplicación en php, pero no se logra ejecuar el sql, me faltara algun perimiso?.., si ejecuta la sql directo no hay problema…

  13. acsa

    hola, son nueva en esto pero me gustaria saber como exportar una bd mysql en windows a linux que cambios se hace porfa es urgente

  14. gabriel

    un poco mas claro

  15. Reno Wellcom

    Esta muy bueno pero lo estas haciendo para q version de linux???

  16. RICHAR

    QUISIERA SABER LA DIFERENCIA ENTRE SUSE LINUX Y RED HAT LINUX

  17. mauricio_c

    no entiendo de como debo descargar esas fuentes de mysql, abro la pagina pero me pierdo, como hago o que ruta sigo??

  18. chiky

    lo necesito tal y como esta pero para fedora… gracias

  19. maria

    bueno todo esta muy bien pero prodrian agregar un poco mas …?

  20. eugenio

    no se, pueden ofrecer un video tutorial de como istalar mysql en linux

  21. matthew

    la verdad no me sirvio de nada
    no hay acaso una manera grafica de usar todos los programas de linuz ? kiero saber como enlazar mi base datos de phpmyadmin con mi pagina web en php pero no meda las herramientas por que dice qeu estan bloqueadas

  22. Roku

    oops!!! olvidé el mail, bueno, xq no contestan? o si contestan? :) gracias

  23. blakf

    Estimados usuarios, quiero pedir su ayuda.

    desafortunadamente por cuestiones economicas no contaba con pc ni acceso a internet y por lo tanto no tenia conocimietos sobre linux, en la universidad me han pedido que realice bases de datos en red en diferentes SO(linux y windows), ok, conozco windows, pero absolutamente nada de linux, apenas hace 2 dias ue consigo una pc viejita para trabajar (mia)(pentiun 3, 600 Mhz, 256 RAm, HP kayack), hoy esta misma noche, instala ubunto 7, les pido sean tan amables de ayudarme con guias y manaules que puedan obsequiarme para aprender este sistema, Pues me quedan 2 semans para la entrega de mi proyecto, loes agradeceria mucho la ayuda, lamentablemente no tengo acceso a internet , solo por cibers.., gracias de antemano.

  24. nancy prieto

    Usted llego a una empresa y se encontró con el siguiente desafío:
    1.) El sistema operativo de los clientes y servidores están Linux y el ERP es un software Web escrito en php y MySQL como Base de Datos, el cual trabaja en la Intranet de la compañía y los vendedores usan un modulo que sale a Internet; El gerente de la empresa se queja de que casi todo el personal nuevo que contrata no conoce Linux y desea migrar a Windows.
    ¿Que haría usted?, envíenos en un zip todos los archivos que involucren su solución, no olvidar el plan de trabajo

  25. Adolfo

    Esta mu bien pero, para Linux Min Elysa

  26. 1.) El sistema operativo de los clientes y servidores están Linux y el ERP es un software Web escrito en php y MySQL como Base de Datos, el cual trabaja en la Intranet de la compañía y los vendedores usan un modulo que sale a Internet; El gerente de la empresa se queja de que casi todo el personal nuevo que contrata no conoce Linux y desea migrar a Windows.

    ¿Que haría usted?, envíenos en un zip todos los archivos que involucren su solución, no olvidar el plan de trabajo

  27. Liliana

    Hola,

    La primera instalación nos funciono bien. Sin embargo tuvimos un evento en el servidor y necesitamos instalar nuevamente. NO genera el directorio /usr/local/mysql/var y cuando se intenta subir el servicio genera el siguiente error:

    root@BDB01-44 init.d]# /etc/init.d/monmysql start
    Starting MySQL.Manager of pid-file quit without updating fi[FALLÓ]

    Que puede ser?

  28. pajita

    Christian Van der Herst tiene un pipi chiquitooooooooooo

Los comentarios de este post están cerrados. Si quieres seguir la discusión, debatir, criticar, sugerir o expandir el tema te invitamos a hacerlo en tu propio blog, en twitter o donde puedas publicar. No olvides enlazar a este post para que sigamos la conversación y se genere un trackback.



Acerca de
Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web