Un espacio para los entusiastas del web

Compilando MySQL para Linux

Publicado el 10 de Mayo, 2002

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.

¿Te gustó?

¡Sí, me gusta! Le ha gustado a 6 personas
Loading ... Loading ...

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 | Fan page

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

    Responder
  2. Augusto

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

    Responder
  3. Unregistered

    bueno bueno

    Responder
  4. YAST2

    excelente

    Responder
  5. No Registrado

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

    Responder
  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.

    Responder
  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

    Responder
  8. Jose

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

    Responder
  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…

    Responder
  10. juampi

    bueno me parece muy bien pero como entro al shell

    Responder
  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

    Responder
  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…

    Responder
  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

    Responder
  14. gabriel

    un poco mas claro

    Responder
  15. Reno Wellcom

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

    Responder
  16. RICHAR

    QUISIERA SABER LA DIFERENCIA ENTRE SUSE LINUX Y RED HAT LINUX

    Responder
  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??

    Responder
  18. chiky

    lo necesito tal y como esta pero para fedora… gracias

    Responder
  19. maria

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

    Responder
  20. eugenio

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

    Responder
  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

    Responder
  22. Roku

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

    Responder
  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.

    Responder
  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

    Responder
  25. Adolfo

    Esta mu bien pero, para Linux Min Elysa

    Responder
  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

    Responder

Deja tu Comentario

Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.



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