Diferencia entre revisiones de «MySQL»

De Guía Ubuntu
Saltar a: navegación, buscar
(completando)
(Backup)
Línea 57: Línea 57:
  
 
Más información en [http://dev.mysql.com/doc/refman/5.0/es/grant.html Sintaxis de GRANT y REVOKE].
 
Más información en [http://dev.mysql.com/doc/refman/5.0/es/grant.html Sintaxis de GRANT y REVOKE].
 +
 +
== Backup ==
 +
 +
Para hacer una copia de seguridad de las bases de datos MySQL de un servidor puedes usar el siguiente script:
 +
 +
<bash>
 +
#!/bin/bash
 +
 +
## BEGIN CONFIG ##
 +
HOST=localhost
 +
USER=usuario
 +
PASS=secreto
 +
BACKUP_DIR=Backup
 +
## END CONFIG ##
 +
 +
if [ ! -d $BACKUP_DIR ]; then
 +
  mkdir -p $BACKUP_DIR
 +
fi
 +
 +
# Backup de MySQL
 +
MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');
 +
 +
for DB in $MYSQL_DBS ; do
 +
  echo "* Backuping MySQL data from $DB@$HOST..."
 +
  mysqldump -h $HOST -u $USER -p$PASS $DB > $BACKUP_DIR/mysql_$DB.sql
 +
done
 +
</bash>
  
 
[[Categoría: Administración del sistema]]
 
[[Categoría: Administración del sistema]]

Revisión de 09:56 21 sep 2006

MySQL es un gestor de bases de datos bastante popular y rápido. Normalmente lo puedes encontrar instalado en los sitios de hosting.

Conexión desde un host remoto

Por defecto, MySQL no permite que cualquier usuario puede acceder a las bases de datos usando un conexión TCP. Para que lo permita debes crear un usuario con los permisos correspondientes.

También tendrás que editar el fichero /etc/mysql/my.cnf y modificar la línea:

bind-address            = 127.0.0.1

Cambiándola por:

bind-address            = 0.0.0.0

Para que todos los demás ordenadores tengan acceso al servidor. Para más seguridad puedes poner solamente una lista de las IPs de los ordenadores que quieres que tengan acceso.

Gestión de usuarios

Crear un usuario

Para la creación de usuarios tendremos que conectarnos al servidor MySQL con un usuario que tenga el permiso global CREATE USER o el permiso INSERT para la base de datos mysql. La sintaxis es la siguiente:

CREATE USER usuario IDENTIFIED BY 'password';

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

Eliminar un usuario

El usuario que usemos en la conexión debe tener el permiso global CREATE USER o el permiso DELETE para la base de datos mysql. La sintaxis es la siguiente:

DROP USER usuario;

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

Dar permisos a un usuario

Los permisos pueden darse en varios niveles:

  • Nivel global
  • Nivel de base de datos
  • Nivel de tabla

La sintaxis es:

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.

Quitar permisos a un usuario

La sintaxis es:

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

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

Backup

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

<bash>

  1. !/bin/bash
    1. BEGIN CONFIG ##

HOST=localhost USER=usuario PASS=secreto BACKUP_DIR=Backup

    1. END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then

 mkdir -p $BACKUP_DIR

fi

  1. Backup de MySQL

MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');

for DB in $MYSQL_DBS ; do

 echo "* Backuping MySQL data from $DB@$HOST..."
 mysqldump -h $HOST -u $USER -p$PASS $DB > $BACKUP_DIR/mysql_$DB.sql

done </bash>