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
.
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.
Ejecute el script mysqlsecureinstallation
para hacer frente a varios problemas de seguridad en una instalación predeterminada de MySQL.
sudo mysqlsecureinstallation
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.
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.
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 mysqlsecureinstallation
. 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
o help;
. 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 [topager]. 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 [tooutfile]. 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.
En el siguiente ejemplo, bdprueba
es el nombre de la base de datos, usuarioprueba
es el nombre del usuario y SuContraseñ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
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 campo ID
de tipo INT
(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 (idcliente INT NOT NULL AUTOINCREMENT PRIMARY KEY, nombre TEXT, apellido TEXT);
Luego salga de MySQL:
exit
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
.
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.
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.