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 😎