Para las instalaciones recientes, querrá ejecutar el script de seguridad que viene incluido. Esto cambia algunas de las opciones predeterminadas menos seguras para cosas como inicios de sesión root remotos y usuarios de ejemplo. Para las versiones antiguas de MySQL, también deberá inicializar el directorio de datos manualmente, pero ahora esto se hace automáticamente.
Archivo de la categoría: Administracion
Copiar base de datos MySql sin Backup
Hoy en mi trabajo tuve la necesidad de copiar una base de datos mysql de un servidor a otro sin poder utilizar las funciones de backup y restore, ya que el servidor principal, donde recidía la base de datos se daño, y el sistema operativo no funcionaba…… Pensé que con sólo copiar la carpeta de la base de datos en el directorio de datos de mysql era suficiente. Luego de hacer me fijé que no se mostraban ninguna de las tablas con el motor de almacenamiento InnoDB…. Tras unas horas de búsqueda, descubrí que también tenía que copiar en el directorio de mysql los siguientes archivos:
- ib_logfile1
- ibdata1
- ib_logfile0
Estos son los archivos de datos y logs poseen información sobre la configuración de InnoDB.
Al hacer el reemplazo de la carpeta data se obtiene el siguiente mensaje de error:
ErrorTable 'performance_schema.session_variables' doesn't exist
Ejecutando la siguiente instrucción de línea de comando soluciona este error:
mysql_upgrade -u root -p --force
Luego reiniciar el servicio de mysql:
sudo /bin/systemctl restart mysqld.service
Permitir acceso remoto a ‘root’ en MySQL desde consola
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit
Respaldo automatizado de MySQL con MySQLDump
Generar archivo my.cnf
[client]
user=user
password=secret
routines
databases
Es conveniente cambiar permisos a este archivo con el comano
chmod 600 my.cnf
mysqldump --defaults-extra-file="my.cnf" database1 database2 database3 > database.sql
Operaciones administrativas basicas de MySQL desde consola
create database database;
GRANT ALL PRIVILEGES ON database.* TO 'usuario'@'servidor' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
mysql --user=usuario --password database < database.sql
mysqldump --opt --password=password --user=usuario database > database.sql
REVOKE GRANT OPTION ON database.* FROM 'usuario '@'localhost';