¿Cómo instalar MySQL en CentOS 6?
Actualizado el 8 de septiembre, 2016. Por BlueHosting.
MySQL es un sistema de gestión de bases de datos utilizados para web y aplicaciones de servidor. Esta guía aborda la instalación, configuración y gestión básica de MySQL para un servidor Linux con una distribución CentOS 6.
Esta guía está escrita para un usuario no root. Los comandos que requieren privilegios elevados están precedidos por sudo
.
Antes de comenzar
-
Asegúrese de seguir nuestra guía de seguridad Además será necesario que tenga establecido un hostname.
Para verificar su hostname puede ejecutar:hostname hostname -f
El primer comando debería mostrar el hostname corto, y el segundo debería mostrar el nombre de dominio completamente calificado (o FQDN, por sus siglas en inglés).
-
Actualice su sistema:
sudo yum update
Instalar y arrancar MySQL
-
Instale MySQL y especifique los niveles de ejecución en el iniciará:
sudo yum install mysql-server sudo /sbin/chkconfig --levels 235 mysqld on
-
Luego arranque el servidor MySQL:
sudo service mysqld start
Por defecto, MySQL se vinculará con el localhost (127.0.0.1). Existen otros métodos para acceder a sus bases de datos MySQL de forma remota pero no se abordan en este tutorial.
Nota:
No se aconseja permitir acceso sin restricciones a MySQL bajo una IP pública, pero puede cambiar la dirección en la que escucha MySQL modificando el parámetro bind-address
en el archivo /etc/my.cnf
. Si decide vincular MySQL a su IP pública, deberá implementar reglas de firewall que solo admitan conexiones desde direcciones IP específicas. Para más información sobre cómo configurar un firewall usando iptables visite nuestro tutorial: iptables.
Fortalecer su servidor MySQL
- Ejecute el script
mysql_secure_installation
para hacer frente a varios problemas de seguridad en una instalación predeterminada de MySQL.sudo mysql_secure_installation
Si aún no ha establecido una contraseña para el usuario root, simplemente presione Enter en el siguiente mensaje:
Enter current password for root (enter for none):
Se le dará la opción de cambiar su contraseña root de MySQL, eliminar cuentas de usuario anónimas, deshabilitar los inicios de sesión root fuera del localhost y eliminar bases de datos de prueba. Se recomienda contestar yes
a todas estas opciones durante la instalación.
Usar MySQL
La herramienta estándar para el uso de MySQL es el cliente mysql
que se instala con el paquete mysql-server
. El cliente MySQL se utiliza a través de un terminal.
Inicio de sesión con usuario root
-
Para iniciar sesión como usuario root:
mysql -u root -p
-
Cuando se le solicite, ingrese la contraseña de usuario root que asignó al momento de ejecutar el script
mysql_secure_installation
. Podrá ver un encabezado de bienvenida de MySQL seguido de la línea de comandos MySQL:Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
-
Para generar una lista de los comandos más comunes, puede utilizar
\h
ohelp;
. Se mostrará una salida como la siguiente:List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear the current input statement. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement.
Crear un nuevo usuario MySQL y una base de datos
-
En el siguiente ejemplo,
bdprueba
es el nombre de la base de datos,usuarioprueba
es el nombre del usuario ySuContraseña
es la contraseña correspondiente a ese usuario.create database bdprueba; create user 'usuarioprueba'@'localhost' identified by 'SuContraseña'; grant all on bdprueba.* to 'usuarioprueba' identified by 'SuContraseña';
Puede acortar este proceso creando el usuario mientras asigna los permisos de la base de datos:
create database bdprueba; grant all on bdprueba.* to 'usuarioprueba' identified by 'SuContraseña';
-
Luego salga de MySQL.
exit
Crear una tabla de muestra
-
Vuelva a ingresar a MySQL usando ahora el usuario
usuarioprueba
:mysql -u usuarioprueba -p
-
Cree una tabla de muestra llamada
clientes
. Esto crea una tabla con un campoID
de tipoINT
(número entero que va incrementando a medida que se añaden nuevos registros) usado como llave primaria, así como dos campos adicionales para almacenar el nombre del cliente:use bdprueba; create table clientes (id_cliente INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nombre TEXT, apellido TEXT);
-
Luego salga de MySQL:
exit
Reiniciar la contraseña del usuario root de MySQL
Si usted olvida la contraseña del usuario root de MySQL, esta puede ser vaciada y reiniciada.
-
Detenga la instancia actual del servidor MySQL y luego reiníciela especificando una opción que evita la solicitud de contraseña:
sudo /etc/init.d/mysqld stop sudo mysqld_safe --skip-grant-tables &
-
Vuelva a conectarse al servidor MySQL usando la cuenta root:
mysql -u root
-
Utilice los siguientes comandos para reiniciar la contraseña del usuario root. Remplace
SuContraseña
con una contraseña sólida y guárdela en un lugar seguro:use mysql; update user SET PASSWORD=PASSWORD("SuContraseña") WHERE USER='root'; flush privileges; exit
-
Finalmente, reinicie MySQL:
sudo service mysqld restart
Ahora podrá volver a ingresar como root usando el comando: mysql -u root -p
.
Optimizar MySQL
MySQL Tuner es un script en lenguaje Perl que se conecta a una instancia en ejecución de MySQL y proporciona recomendaciones de configuración con base en su carga de trabajo. Idealmente, la instancia MySQL debe tener al menos 24 horas de ejecución antes de ejecutar este optimizador. Mientras más tiempo tenga su instancia en ejecución, mejores los consejos que le dará MySQL Tuner.
-
Descargue
MySQL Tuner
en su directorio principal:wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
En caso de no tener instalado el gestor de paquetes
wget
use primero:sudo yum install wget
-
Para ejecutar el script ingrese lo siguiente:
perl ./mysqltuner.pl
La salida le mostrará dos áreas de interés: Recomendaciones generales y variables a ajustar.
MySQL es un excelente punto de partida para optimizar un servidor MySQL, pero sería prudente que investigue un poco más para adaptarse a su uso particular de MySQL en su servidor.
Recursos adicionales
Para complementar la información aquí presentada en esta guía puede consultar los siguientes recursos. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos certificar su actualidad o precisión.
- Esta guía explora los comandos más básicos de MySQL. Puede visitar la documentación oficial para desarrolladores de MySQL: Documentación MySQL.
- Manual de referencia de MySQL 5.1.
- Manual PHP MySQL.
- Ejemplos de DBI Perl para DBD::mysql.
- Guía de uso de MySQLdb.