Você está na página 1de 5

Cmo instalar y configurar MySQL

Introduccin.
Acerca de MySQL.
MySQL es un DBMS (bataBase Management System) o sistema de gestin de base de datos SQL
(Structured Query Language o Lenguaje Estructurado de Consulta) multiusuario y multihilo con
licencia GNU/GPL.
MySQL es propiedad y patrocinio de MySQL AB, compaa fundada por David Axmark, Allan
Larsson y Michael Widenius, con base de operaciones en Suecia, la cual posee los derechos de autor de
casi todo el cdigo que lo integra. MySQL AB desarrolla y mantiene el sistema vendiendo servicios de
soporte y otros valores agregados, as como licenciamiento propietario para los desarrollos de
equipamiento lgico que requieren mantener cerrado su cdigo.
MySQL es actualmente el servidor de base de datos ms popular para los desarrollos a travs de la
red mundial, con una estimacin de ms de diez millones de instalaciones. Es muy rpido y slido.
Instalacin a travs de yum.
Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo se necesita realizar lo siguiente para
instalar o actualizar el equipamiento lgico necesario:
yum -y install mysql mysql-server
Instalacin a travs de up2date.
Si se utiliza Red Hat Enterprise Linux 4, solo bastar realizar lo siguiente para instalar o actualizar
el equipamiento lgico necesario:
up2date -i mysql mysql-server

Procedimientos.
SELinux y el servicio mysqld
Si utiliza CentOS 4, Red Hat Enterprise Linux 4 o White Box Enterprise Linux 4, utilice la
herramienta system-config-securitylevel (desde el modo grfico), seleccione la pestaa de SELinux, y
habilite la casilla con la leyenda Disable SELInux protection for mysqld daemon en la seccin de
SELinux Service Protection. De otro modo, el servicio mysqld no podr iniciar.
Desactivar proteccin de SELinux para mysqld.

Iniciar, detener y reiniciar el servicio mysqld.


Para iniciar por primera vez el servicio mysqld y generar la base de datos inicial (mysql), utilice:
/sbin/service mysqld start
Para reiniciar el servicio mysqld, utilice:
/sbin/service mysqld restart
Para detener el servicio mysqld, utilice:
/sbin/service mysqld stop
Agregar el servicio mysqld al arranque del sistema.
Para hacer que el servicio de mysqld est activo con el siguiente inicio del sistema, en todos los niveles
de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
/sbin/chkconfig mysqld on
Asignacin de clave de acceso al usuario root.
El usuario root en MySQL%trade;, no tiene asignada clave de acceso alguna despus de iniciado el
servicio por primera vez. Por razones de seguridad, es muy importante asignar una clave de acceso.
Mtodo corto.
La forma ms simple de asignar una clave de acceso al usuario root de MySQL solo requiere de un
nico mandato, descrito a continuacin.
mysqladmin -u root password nueva-clave-de-acceso
En adelante, ser necesario aadir la opcin -p a cualquier sentencia de lnea de mandatos para,
mysqladmin y mysqldump para ingresar la clave de acceso del usuario root y poder, de esta forma,
realizar diversas tareas administrativas.
Mtodo largo.
La forma complicada de realizar lo anterior se describe solo con fines didcticos y como prueba de
concepto. No es del todo prctico realizar asignacin de la clave de acceso del usuario root con
este mtodo, pero sirve para entender el funcionamiento en cuanto a asignacin de claves de
acceso. Como root, utilice el mandato mysql:
# mysql
Dentro del intrprete de mandatos de MySQL, indique con el mandato use mysql que utilizar nica
base de datos existente, mysql:

> use mysql


Solicite con el mandato show tables que se muestren las tablas de la base de datos mysql:
> show tables;
Con el mandato select * from user se mostrar el contenido de la tabla user de la base de datos actual:
> select * from user;
Esto har que se vea, entre otras muchas cosas, lo siguiente:
+-------------------------+----------+------------------+--------------+
| Host | User | Password | Select_priv |
+-------------------------+----------+------------------+--------------+
| localhost | root | | Y |
+-------------------------+----------+------------------+--------------+
Como se podr observar, el usuario root no tiene asignada una clave de acceso, por lo que cualquiera
que se identifique como root en el sistema tendr acceso a todo en MySQL. Se asignar una clave de
acceso del siguiente modo:
> update user set Password=PASSWORD('nuevo_password') where user='root';
Utilice de nuevo el mandato select * from user y vuelva observar el campo que correspondera al de la
clave de acceso del usuario root:
> select * from user;
Deber aparecer ahora un criptograma en el campo que corresponde a la clave de acceso del usuario
root.
+-------------------------+----------+------------------+--------------+
| Host | User | Password | Select_priv |
+-------------------------+----------+------------------+--------------+
| localhost | root |4593274b8e0d68j852| Y |
+-------------------------+----------+------------------+--------------+
Se recomienda realizar refresco de los privilegios a fin de que tomen efecto los cambios.
> flush privileges
Para probar, solo hay que salir del intrprete de MySQL.
> quit

Intente ingresar de nuevamente al intrprete de mandatos de MySQL:


#mysql
Notar que ya no se puede acceder como antes, y regresa un mensaje de error.
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
Ejecute ahora el mismo mandato, pero especificando un usuario (-u root) y solicitando se pregunte por
una clave de acceso (-p):
mysql -u root -p
A continuacin se le pedir ingrese una clave de e acceso, tras lo cual obtendr de nuevo acceso al
intrprete de mandatos de MySQL
Creando y destruyendo bases de datos.
Para crear una nueva base de datos, puede utilizarse el mandato mysqladmin con el parmetro create:
mysqladmin -u root -p create dbejemplo
Si queremos eliminar dicha base de datos, utilizamos el parmetro drop en lugar de create.
mysqladmin -u root -p drop dbejemplo
Otorgando permisos a los usuarios.
En adelante el usuario root solo se utilizar para tareas administrativas y creacin de nuevas bases de
datos. Resultar conveniente delegar a los usuarios ordinarios el manejo de sus propias bases de datos.
Una vez generada una base de datos, debemos determinar con que usuario y desde que equipo en la red
local, se podr tener acceso, as como los privilegios para modificar esta. Lo ms comn, y seguro, es
asignar el acceso solo desde el mismo servidor (localhost), a menos que el desarrollo web o aplicacin
se localice en otro equipo.
Genere un base de datos denominada directorio:
mysqladmin -u root -p create directorio
Se accede hacia el intrprete de mandatos de MySQL y se utiliza lo siguiente, suponiendo que se
desea asignar permisos select (seleccionar), insert (insertar), update (actualizar), create (crear), alter
(aldetar), delete (eliminar) y drop (descartar) sobre las tablas de la base de datos directorio al usuario
prueba desde el anfitrin localhost (equipo local):
GRANT select, insert, update, create, alter, delete, drop ON directorio.* TO
prueba@localhost IDENTIFIED BY 'password_del_usuario_prueba';

Al concluir, se tendr una base de datos denominada directorio que podr ser utilizada y modificada
por el usuario prueba desde el anfitrin localhost. Esto establecer un nivel de seguridad apropiado, y
garantizar que de verse comprometida la seguridad, la clave de acceso de un usuario no podr ser
utilizada desde un sistema remoto.
Si, por mencionar un ejemplo, se requiere permitir el acceso hacia la base de datos directorio desde
otro equipo en la red local, con fines administrativos, se puede otorgar el acceso y permisos al usuario
jperez desde el anfitrin 192.168.1.253, es decir jperez@192.168.1.253.
GRANT
select, insert, update, create, alter, delete, drop
ON
directorio.*
TO
jperez@192.168.1.253
IDENTIFIED BY
'clave_de_acceso_para_jperez';
Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuegos con polticas estrictas, como por ejemplo Shorewall, es necesario abrir el
puerto 3306 por TCP (mysql). Las reglas para el fichero /etc/shorewall/rules de Shorewall en un
sistema con una zona (net), correspondera a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw tcp 3306
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Las reglas para el fichero /etc/shorewall/rules de Shorewall en un sistema con dos zonas (net y loc),
donde solo se va a permitir el acceso al servicio mysqld desde la red local, correspondera a lo
siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT loc fw tcp 3306
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Você também pode gostar