Referencia MySQL

  • 25 Oct 2008
  • mysql

Conectarse a MySQL por consola

mysql -uroot -p******

Crear un usuario

CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'password'; 

Eliminar un usuario

DROP USER usuariomysql

Dar permisos a un usuario

Los permisos pueden darse en 3 niveles

  • Nivel global
  • Nivel Base de Datos
  • Nivel Tabla
GRANT tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} TO usuario;

Así para dar el permito SELECT al usuario pepe sería:

GRANT SELECT ON *.* TO pepe;

Más información en Sintaxis de GRANT y REVOKE .

Permitir a un usuario conectarse al servidor MySQL remotamente

En el siguiente ejemplo, se permite al usuario de un servidor Asterisk (con FreePBX) conectarse desde un cliente remoto

GRANT SELECT, LOCK TABLES ON asterisk.* TO 'freepbx'@'192.168.200.51' IDENTIFIED BY 'fpbx' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Quitar permisos a un usuario

La sintaxis es:

REVOKE tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} FROM usuario;

Crear una Base de datos

CREATE DATABASE nombre_de_la_base_de_datos; 

Más información en Sintaxis de CREATE DATABASE .

También puedes usar la orden mysqladmin.

$ mysqladmin -h servidor -u usuario -p create nombre_de_la_base_de_datos

Eliminar una Base de datos

Para eliminar una base de datos que ya no es necesaria en el sistema también tenemos, al menos, dos métodos. En un ventana de Terminal ejecuta.

$ mysql -h servidor -u usuario -p

Enter password:

mysql> DROP DATABASE nombre_de_la_base_de_datos;

quit

Más información en Sintaxis de DROP DATABASE .

También puedes obtener el mismo resultado con el comando mysqladmin.

$ mysqladmin -h servidor -u usuario -p drop nombre_de_la_base_de_datos

Hacer Backup de una Base de datos

Para hacer una copia de seguridad de una base de datos tiene el siguiente comando:

$ mysqldump -h servidor -u usuario -p nombre_de_la_base_de_datos > backup.sql

Para hacer una copia de seguridad de una sola tabla:

$ mysqldump -h servidor -u usuario -p nombre_de_la_base_de_datos tabla > backup.sql

Para hacer una copia de seguridad de las bases de datos MySQL de un servidor puedes usar el siguiente script:

#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# script. You can skip few databases from backup too.
# For more info please see (Installation info):
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Aug - 2005
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
MyUSER="SET-MYSQL-USER-NAME"     # USERNAME
MyPASS="SET-PASSWORD"       # PASSWORD
MyHOST="localhost"          # Hostname
 
# Linux bin paths, change this if it can't be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
 
# Backup Dest directory, change this if you have someother location
DEST="/backup"
 
# Main directory where backup will be stored
MBD="$DEST/mysql"
 
# Get hostname
HOST="$(hostname)"
 
# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y")"
 
# File to store current backup file
FILE=""
# Store list of databases
DBS=""
 
# DO NOT BACKUP these databases
IGGY="test"
 
[ ! -d $MBD ] && mkdir -p $MBD || :
 
# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
 
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
 
for db in $DBS
do
    skipdb=-1
    if [ "$IGGY" != "" ];
    then
  for i in $IGGY
  do
      [ "$db" == "$i" ] && skipdb=1 || :
  done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
  FILE="$MBD/$db.$HOST.$NOW.gz"
  # do all inone job in pipe,
  # connect to mysql using mysqldump for select mysql database
  # and pipe it out to gz file in backup dir :)
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
    fi
done

Restaurar el Backup de una Base de datos

Para restaurar una base de datos creada anteriormente ejecuta en un Terminal.

$ mysql -h servidor -u usuario -p nombre_de_la_base_de_datos < backup.sql

Gracias guia-ubuntu.org