Maestros del Web


Estás en Inicio / Editorial / Software Libre

10.05.2002

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:

[shell]$ su -l
Password:
[shell]#

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:

[shell]# groupadd mysql
[shell]# 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:

[shell]# gunzip mysql-3.x.x.tar.gz
[shell]# tar -xvf mysql-3.x.x.tar    

Preparamos las fuentes para compilarlas:

[shell]# cd mysql-3.x.x
[shell]# ./configure –prefix=/usr/local/mysql

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

[shell]# 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:

[shell]# cd scripts
[shell]# ./mysql_install_db

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

[shell]# chown -R root /usr/local/mysql
[shell]# chown -R mysql /usr/local/mysql/var
[shell]# chgrp -R mysql /usr/local/mysql

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

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

Probamos el servidor:

[shell]# /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:

[shell]# /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:

[shell]# ln /usr/local/mysql/bin/mysql
/usr/bin/mysql
[shell]# 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:

[shell]# 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í:

[shell]# 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.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5 de 5)
Loading ... Loading ...
Fernando José Pereda Garcimartín

Sobre el autor

Fernando José Pereda Garcimartín
Colaborador de Maestros del Web y uno de los moderadores en Foros del Web

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

22 comentarios en total.

  1. rstapia 02.04.2003 - 05:53 - #

    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 17.09.2003 - 11:04 - #

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

  3. Unregistered 10.12.2003 - 10:06 - #

    bueno bueno

  4. YAST2 06.04.2004 - 17:11 - #

    excelente

  5. No Registrado 29.09.2004 - 05:46 - #

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

  6. No Registrado 04.11.2005 - 23:40 - #

    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 05.11.2005 - 01:32 - #

    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 26.05.2006 - 18:07 - #

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

  9. Jorge Ospina 31.05.2006 - 16:15 - #

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

    Gracias…

  10. juampi 22.06.2006 - 11:10 - #

    bueno me parece muy bien pero como entro al shell

  11. gabriela cabrera 21.07.2006 - 12:54 - #

    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 24.08.2006 - 10:15 - #

    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 07.09.2006 - 14:59 - #

    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 22.09.2006 - 21:48 - #

    un poco mas claro

  15. Reno Wellcom 09.11.2006 - 11:34 - #

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

  16. RICHAR 16.11.2006 - 10:29 - #

    QUISIERA SABER LA DIFERENCIA ENTRE SUSE LINUX Y RED HAT LINUX

  17. mauricio_c 07.01.2007 - 23:50 - #

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

  18. chiky 20.03.2007 - 23:30 - #

    lo necesito tal y como esta pero para fedora… gracias

  19. maria 23.09.2007 - 14:42 - #

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

  20. eugenio 23.10.2007 - 09:47 - #

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

  21. matthew 19.12.2007 - 09:39 - #

    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 26.12.2007 - 21:30 - #

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

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.


Boletín

Agrega nuestro feed a  Netvibes
wikio Add to Technorati Favorites

-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress