Archivo etiqueta MySQL
Eliminando registros duplicados de una tabla SQL usando DISTINCT ó GROUP BY.
DISTINCT es una palabra clave que usamos e nuestras consultas SQL para eliminar filas duplicadas.
SELECT DISTINCT columna FROM tabla
Ahora bien si queremos eliminar los registros duplicados de una tabla y copiarlos en una nueva podremos hacerlo con la palabra clave DISTICT o la cláusula GROUP BY que suele tener menos BUGS que la primera.
Opción 1: CREATE TABLE nueva_tabla AS SELECT DISTINCT columna FROM tabla; Opcion 2: CREATE TABLE nueva_tabla AS SELECT * FROM tabla GROUP BY (id);
Eliminamos la tabla con los registros duplicados:
DROP TABLE tabla;
Renombramos la nueva tabla por el nombre de la que ya teníamos:
RENAME TABLE tabla_nueva TO tabla;
Como recuperar las claves de sus Bases de Datos de Plesk
Por admin - Administración, Linux, MySQL, Plesk - Jueves, 2 julio 2009
Tan sencillo como realizar esta consulta a la Base de Datos psa de PLESK. Nos devolverá el dominio, nombre de la base de datos, usuario y clave seleccionada. Esta consulta nos listará todas las bases de datos y sus claves pero si queremos filtrarla para un determinado dominio debemos añadir una cláusula WHERE al final de la consulta; (ejemplo: WHERE domains.name=’dominio.com’).
mysql -u admin -p password: ******* mysql> use psa
SELECT data_bases.name AS bd, db_users.login AS usuario, accounts.password AS clave, domains.name AS dominio, data_bases.type AS tipo FROM db_users INNER JOIN data_bases ON (db_users.db_id = data_bases.id) INNER JOIN accounts ON (db_users.account_id = accounts.id) INNER JOIN domains ON (data_bases.dom_id = domains.id) ORDER BY domains.name ASC
* Probado en Fedora Core 5 Plesk 8.6
Shell Script para hacer copias de seguridad de nuestras bases de datos con ncftpput.
Por admin - Administración, Linux, MySQL - Lunes, 15 junio 2009
Pues ya estoy aquí de nuevo para escribir un shell script que realiza una copia de seguridad de nuestras Bases de Datos y mediante ncftpput las enviamos a nuestro servidor FTP.
# DATOS
SERVIDOR=GENTOO-VPS
FECHA=$(date +"%m-%d-%Y") # mm-dd-yyyy
EMAIL=su@email
ASUNTO="Backup SQL"
TMP=/home/backup/tmp
# DATOS BD
BD_USUARIO=root
BD_CLAVE=*******
# DATOS FTP
NCFTP="/usr/bin/ncftpput"
FTP=ftp.dominio.com
FTP_USUARIO=user
FTP_CLAVE=******
FTP_DESTINO="./servidores/$SERVIDOR/MySQL/"
for BD in `mysql -u$BD_USUARIO -p$BD_CLAVE -e "show databases" -B -N`
do
mysqldump -u$BD_USUARIO -p$BD_CLAVE $BD > $TMP/$BD-$FECHA.sql
$NCFTP -m -u $FTP_USUARIO -p $FTP_CLAVE $FTP $FTP_DESTINO/$BD/ $TMP/$BD-$FECHA.sql
rm -f $TMP/$BD-$FECHA.sql
done
mail -s "$ASUNTO - $FECHA - $SERVIDOR" $EMAIL
Para optimizar la tarea podemos incluirla en nuestro crontab e incluimos la siguiente linea con la programación de la tarea y donde está ubicado nuestro script. Se ejecutará a las 2 de la madrugada todos los días:
crontab -e 0 2 * * * /home/backup/backup-bd-diaria.sh
Como recuperar las claves de sus emails de PLESK
Por admin - Administración, Linux, Plesk - Jueves, 4 junio 2009
Tan sencillo como realizar esta consulta a la Base de Datos psa de PLESK. Nos devolverá la clave, cuota, redirección y si tiene el filtro spam activado. Está claro que hay que indicarle el nombre de dominio que deseamos consultar en la cláusula WHERE pero si eliminamos esta última linea nos listará un registro con todos los correos de la Base de Datos.
mysql -u admin -p password: ******* mysql> use psa
SELECT domains.name AS dominio, mail.mail_name AS cuenta, accounts.password AS clave, mail.mbox_quota AS quota, mail.redir_addr AS redireccion, mail.spamfilter AS spamassassin FROM domains INNER JOIN mail ON (domains.id = mail.dom_id) INNER JOIN accounts ON (mail.account_id = accounts.id) WHERE domains.name = 'dominio.com';
* Probado en Fedora Core 5 Plesk 8.2
Cambiando una clave MySQL desde SHELL.
# Paramos el servicio de MySQL.
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
# recibimos un mensaje como este:
# mysql # nohup: ignoring input and redirecting stderr to stdout. Starting mysqld daemon with databases from /var/lib/mysql
# Y le indicamos a MySQL que deseamos acceder como usuario root.
mysql -u root
# y recibimos el mensaje de bienvenida a MySQL:
# Welcome to the MySQL monitor. Commands end with ; or \g.
# Your MySQL connection id is 1
# Server version: 5.0.44-log Gentoo Linux mysql-5.0.44-r2
# Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
# Una vez dentro solo tenemos que indicarle la Base de Datos a usar.
mysql>use mysql;
# y posteriormente realizamos el cambio de clave para el usuario seleccionado.
mysql>update user set password=PASSWORD("nueva-clave") where User='root';
mysql>flush privileges;
mysql>quit
# Paramos el servicio y lo volvemos a iniciar.
/etc/init.d/mysql stop
/etc/init.d/mysql start
# Ahora solo debemos comprobar que accede con la nueva clave.
mysql -u root -p