Wiki.Pilas.Guru

Crear base datos, usuario y permisos

Crear database

Para la creación de nuevas bases de datos usar la órden

   CREATE DATABASE nombre_db

Para evitar error de DB existente:

   CREATE DATABASE IF NOT EXISTS nombre_db

Para pasar más datos a la DB a crear con un tipo específico de codificación:

   CREATE DATABASE nombre_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  1. Ref: Create Database

Crear usuario

Para crear un usuario y asignarle permisos a una base de datos (nombre_db) se debe:

Mysql 8.0

   CREATE USER 'usuario'@'%' IDENTIFIED BY 'password';
   GRANT ALL PRIVILEGES ON nombre_db.* TO 'usuario'@'%';
   FLUSH PRIVILEGES;

Mysql 5.7

   GRANT ALL PRIVILEGES ON nombre_db.* TO 'usuario'@'localhost' IDENTIFIED BY 'password';
   FLUSH PRIVILEGES;
  1. Ref: Adding users

Cambiar clave de Usuario

Mysql 8.0

Cuando tiene que utilizar una clave con el sistema anterior:

    ALTER USER 'usuario'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Mysql 5.7

Cambiar clave:

   SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');

O también:

   UPDATE mysql.user SET Password=PASSWORD('new-password-here') \
     WHERE User='user-name-here' AND Host='host-name-here';

Confirmación de cambio:

   Query OK, 1 row affected (0.00 sec)
   Rows matched: 1  Changed: 1  Warnings: 0

Reset clave root

Detener servicio mysql y reiniciarlo con:

   $ mysqld --skip-grant-tables --user=root &

Conectarse al mysql con:

   $ mysql -u root

Cambiar la clave de root con:

   UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
   FLUSH PRIVILEGES;

Apagar el mysql y reiniciarlo en forma normal.

  1. Ref: Resetting permissions

Respaldar y recuperar Mysql

Para respaldar mysql completo usar:

   $ mysqldump --user=root --password=[passwd] \
      --lock-all-tables --all-databases \
|  gzip -9 > backup-$(date +%F).sql.gz |

Para recuperar:

   $ zcat backup-20090730.sql.gz | mysql -u root -p

Reparar tabla

MySQL Table is marked as crashed and last (automatic?) repair failed:

   $ myisamchk -r -v -f --sort_buffer_size=128M \
     --key_buffer_size=128M /var/lib/mysql/database/table.MYI

Login command line sin password

   $ mysql_config_editor set \
     --login-path=staging \
     --host=mysql.staging.example.com \
     --user=example \
     --password
   Enter password:

   cat .mylogin.cnf

   $ mysql --login-path=staging