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)