Instalar y configurar MySQL

  Linux, Manuales, MySQL

MySQL™ es un DBMS (DataBase Management System) o sistema de gestión de base de datos SQL (Structured Query Language o Lenguaje Estructurado de Consulta) multiusuario y multihilo con licencia GNU/GPL.

Hoy vamos a ver como se instala y se configura MySQL en un servidor linux, aunque antes de empezar tenemos que comprobar si MySQL está instalado en nuestro servidor, para ello ejecutamos el siguiente comando:

rpm -q mysql mysql-server 

Si el servidor nos responde lo siguiente:

[root@javierandres etc]# rpm -q mysql mysql-server
package mysql is not installed
package mysql-server is not installed


Se debe a que no esta instalado, con lo que podemos comenzar el proceso de instalación.

Si utiliza Red Hat™ Enterprise Linux, procederemos a instalar lo necesario del siguiente modo:

up2date -i mysql mysql-server

Si como en nuestro caso utiliza Centos o cualquier otro SO que posea preinstalado el gestor “YUM” podemos ejecutar el siguiente comenzo para realizar la instalación:

yum -y install mysql mysql-server 

La manera más apropiada de iniciar el servicio mysqld será ejecutado el siguiente comando:

/sbin/service mysqld start

Procederemos a agregar a MySQL al los niveles de corrida 3, 4 y 5, de modo que la siguiente vez que se tenga que iniciar el servidor, MySQL se encuentre habilitado.

/sbin/chkconfig --level 345 mysqld on

Después de iniciado MySQL por primera vez, como root ejecute el comando mysql:

[root@javierandres /]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

A través de este comando accedemos a la Shell de MySQL, donde lo primero será asignar una contraseña cifrada al usuario root por seguridad.

Primero indicaremos que base de datos vamos a utilizar, en este caso será la principal y única existente, mysql:

mysql> use mysql

Y nos aparecerá el siguiente mensaje:

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Ahora ejecutaremos “show tables” para ver todas las tables:

> show tables; 

Y nos aparecerá algo parecido a esto:

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              | 
| db                        | 
| func                      | 
| help_category             | 
| help_keyword              | 
| help_relation             | 
| help_topic                | 
| host                      | 
| proc                      | 
| procs_priv                | 
| tables_priv               | 
| time_zone                 | 
| time_zone_leap_second     | 
| time_zone_name            | 
| time_zone_transition      | 
| time_zone_transition_type | 
| user                      | 
+---------------------------+
17 rows in set (0.00 sec)

Ejecutamos una consulta para que se muestre el contenido de la tabla user:

select * from user;

Entre otros muchos datos nos aparecerá lo siguiente:

+-------------------------+----------+------------------+--------------+
| Host                    | User     | Password         | Select_priv  |
+-------------------------+----------+------------------+--------------+
| localhost               | root     |                  | Y            |
+-------------------------+----------+------------------+--------------+

Como podeis ver el usuario root no tiene asignada una contraseña, por lo que cualquiera que se identifique como root tendrá acceso. Asignaremos una contraseña del siguiente modo:

update user set Password=PASSWORD('nuevo_password') where user='root';

Ahora observará que al ejecutar de nuevo la consulta “select * from user;” le aparecerá el campo “password” rellenado con la clave encriptada

+-------------------------+----------+------------------+--------------+
| Host                    | User     | Password         | Select_priv  |
+-------------------------+----------+------------------+--------------+
| localhost               | root     |4593274b8e0d68j852| Y            |
+-------------------------+----------+------------------+--------------+

Refresquemos los privilegios para que repliquen los cambios.

flush privileges;

Salimos y para probar la nueva contraseña.

quit

Entramos de nuevo al Shell de MySQL:

mysql

Ahora veremos como ya no accedemos directamente sino que nos aperece el siguiente error:

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

Para acceder tendrás que utilizar el siguiente comando:

mysql -u root -pclave

o

mysql -u root -p (luego en otra línea nos solicita la clave)

LEAVE A COMMENT