¡Esta es una revisión vieja del documento!
MySQL
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;
- Ref: Create Database
Crear usuario
Para crear un usuario y asignarle permisos a una base de datos (nombre_db) se debe:
GRANT ALL PRIVILEGES ON nombre_db.* TO 'usuario'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
* Ref: Adding users
Cambiar clave de Usuario
Usar la base de datos *mysql*
mysql> use mysql;
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.
* 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