MySQL
by Juan Manuel González Garzón
- I. Instalar y configurar.
- II. Crear una base de datos, un usuario y dar acceso
- III. Carga y volcado de datos
- IV. Resetear la contraseña del usuario root
I. Instalar y configurar.
A. Instalar los paquetes cliente & servidor.
# En Ubuntu.
sudo apt install mysql-client mysql-server
B. Instalar base de datos.
sudo mysql_secure_installation
- Put the root password
- Keep the root password
- Remove anonymous users
- Disallow root login remotely
- Remove test database and access to it
- Reload privilege tables
C. Abrir puertos en el firewall.
# --permanent: Para cuando se desea dejar el puerto abierto permanentemente.
firewall-cmd --add-port=3306/tcp # --permanent
# Si se está usando iptables (Aún no entiendo este bien).
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
II. Crear una base de datos, un usuario y dar acceso
Esta operación se hace como usuario root.
sudo mysql -u root -p
-- Crea la base de datos.
CREATE DATABASE db_name;
-- Establece un usuario y su contraseña.
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
-- Dar todos los privilegios sobre la base de datos al usuario que se creó.
USE db_name;
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
Ya se puede acceder a la base de datos con ese usuario.
$ mysql -u username -p db_name
Carga y volcado de datos
# Cargar datos desde un archivo, ejecutando un script desde una terminal.
$ mysql -u username -p database < script.sql
# Volcar datos.
# Opción 1:
$ mysqldump [options] [db_name [tbl_name ...]] > dump.sql
# Opción 2:
$ mysqldump [options] [db_name [tbl_name ...]] --result-file=dump.sql
Resetear la contraseña del usuario root
Se va a configurar MySQL para que inicie sin ‘Grant Tables’ y asi poder cambiar la contraseña. Por seguridad también se deshabilitan las conexiones por la red.
sudo systemctl stop mysql
sudo systemctl edit mysql
……. En el archivo que se abre, se escribe:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
…….
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
-- Editar la contraseña
ALTER USER 'root'@'localhost' IDENTIFIED
WITH caching_sha2_password -- Para MySQL, no la usan en MariaDB.
BY 'new_password';
sudo systemctl revert mysql
# Debe salir:
# Removed /etc/systemd/system/mysql.service.d/override.conf.
# Removed /etc/systemd/system/mysql.service.d.
sudo systemctl daemon-reload
systemctl restart mysql