Instalación y configuración del servidor MySQL en Ubuntu

196

Para  instalar el servidor y el cliente MySQL en Ubuntu/Debian se realiza de esta manera:

sudo apt-get install mysql-server mysql-client

Se sabe que el directorio de archivos de configuración se encuentra en /etc/mysql y el directorio de almacenamiento de la base de datos /var/lib/mysql.

Ahora para permitir el acceso remoto al servidor mysql, en el archivo de configuración /etc/mysql/my.cnf, se debe de comentar la línea bind-address = 127.0.0.1 (ponga un símbolo # delante) y reinicie el servidor mysql para aplicar los cambios:

sudo service mysql restart

Aquí puedes establecer la contraseña de root, eliminar la base de datos de prueba, denegar el acceso remoto del usuairo root y configurar otras recomendaciones de seguridad ejecutando el comando:

sudo mysql_secure_installation

Se motrarán algunos ejemplos de comandos.

Conexión a mysql a través de la línea de comandos:
mysql -u USERNAME -p

Ver bases de datos disponibles:
show databases;

Abra la base de datos requerida:
use DATABASENAME;

Veamos qué tablas hay en la base de datos:
show tables;

Un ejemplo de creación de una nueva base de datos:
create database DATABASENAME;

Eliminar una base:
drop database DATABASENAME;

Creación de usuarios:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;

Le damos al usuario privilegios completos sobre la base de datos requerida:
GRANT ALL PRIVILEGES ON databasename.* to ‘username’@’localhost’;

Creando un volcado de base de datos:
mysqldump -u USERNAME -p DATABASENAME > mysqldump.sql

Importando un volcado a la base de datos requerida:
mysql -u USERNAME -p DATABASENAME < mysqldump.sql

Para obtener ayuda, puede escribir: Help

Por seguridad, hay que eliminar la base de prueba estándar:
DROP DATABASE test;

Observamos los privilegios de un usuario vacío y, si existe, lo eliminamos:
SHOW GRANTS FOR ”@’localhost’;
DROP USER “”;

Observamos qué usuarios existen y qué privilegios tienen:
use mysql;
select * from user;

Puede comprobar si el servidor se está ejecutando así:
sudo netstat -tap | grep mysql

Observamos las conexiones en el puerto 3306:
netstat -na | grep 3306

Puede ver los paquetes en el puerto 3306 cuando tenga problemas para conectarse a mysql:
tcpdump port 3306
tcpdump port 3306 -i eth0

Suerte 😎