Instalacion y Configuración de MySQL en OpenSUSE Linux
Guía de Instalacion y Configuracion de MySQL Server en OpenSUSE Linux 13.2.
domingo, 27 de septiembre de 2015
Descargar Tutorial en PDF
Descargue aquí el tutorial "Instalación y Configuración de MySQL 5.6 en OpenSUSE 13.2 PDF: Tutorial
4 - CONFIGURACIÓN DE MYSQL SERVER
Unas de las cosas más deseadas es la replicación de
información con la intención de tener la información fresca en otro servidor en
caso de problemas con el servidor principal, para este ejemplo vamos a
configurar una replicación maestro-esclavo, tomando como ejemplo:
Servidor Master, IP: 180.180.1.8
|
Servidor Slave, IP: 180.180.1.9
|
1.1. Configuración del Servidor Master
-
Editamos el archivo my.cnf agregando las
siguientes líneas:
Server-id=1
Log-bin=mysql-bin
|
-
Reiniciamos el MySQL: sudo service mysql restart
-
Entramos al MySQL para crear el usuario que hará
la replicación: CREATE USER replicador
IDENTIFIED BY ‘lacontraseña’;
-
Le damos los permisos necesarios: GRANT REPLICATION SLAVE ON *.* TO
‘replicador’@’%’ IDENTIFIED BY ‘lacontraseña’; FLUSH PRIVILEGES;
-
Ya configurado el servidor debemos bloquear las
tablas para crear una copia de la(s) base(s) de dato(s):
-
Bloquear tablas: FLUSH
TABLES; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
-
Al ejecutar SHOW MASTER STATUS el MySQL podrá
mostrarnos la siguiente información, tal información es importante y se debe
anotar tanto File como Position (pueden variar):
-------------------+----------+--------------+------------------+
| File |
Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |
664 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
|
-
Creamos la copia de del master con la
herramienta que se desee (Workbench, mysqldump etc) lo importante es que TODA
la base de datos sea copiada.
1.2. Configuración del Servidor Slave
-
Editamos el archivo my.cnf agregando las siguientes
líneas:
Server-id=2
Relay-log=mysqld-relay-bin
|
-
Reiniciamos el MySQL: sudo service mysql restart
-
Restauramos en este servidor la copia hecha del
Master.
Dentro del MySQL ejecutamos la
instrucción siguiente:
CHANGE MASTER TO
MASTER_HOST=’180.180.1.8’,
MASTER_USER=’replicador’,
MASTER_PASSWORD=’lacontraseña’,
MASTER_LOG_FILE=’mysql-bin.000001’,
MASTER_LOG_POS=664, MASTER_PORT=3306; |
-
Iniciamos la replicación: START SLAVE;
Desbloqueamos las tablas dentro
del servidor Master UNLOCK TABLES;
Y podemos verificar el estatus del
master con SHOW MASTER STATUS;
Y podemos verificar el estatus del
slave con SHOW SLAVE STATUS\G;
3 - RESPALDOS AUTOMATICOS CON CRON
1.1. Creación de Script de Respaldo
-
Lo primero que hay que hacer es tener un
directorio específico para crear los respaldos. Ejemplo: /mi_directorio/dumps/
-
Crear el archivo .sh que ejecutará los respaldos
vi /mi_directorio/dumps/ejecuta_respaldo.sh
-
Agregar el escript:
#!/bin/sh
#
Respaldos de MySQL
#
nombre del respaldo
ARCHIVO="resp_prueba_`date
+%m%d%H%M`"
#
carpeta donde se hace los dumps
cd
/home/mysql/dumps/
#
dumps de las bases de datos que se requieren
mysqldump
-u miuser -pmipass --opt miBD01 > resp_miDB01.sql
mysqldump
-u miuser -pmipass --opt miDB02 > resp_miDB02.sql
#
se comprime todos los dumps en un solo archivo
tar
-zcvf $ARCHIVO.tgz *.sql
#
(opcionales) mover el archivo a un directorio destino y limpiar
#cp
-rv $ARCHIVO.tgz /directorio_destino/$ARCHIVO.tgz
#rm
*.tgz
|
-
Una vez creado el script a nuestra conveniencia,
se debe cambiar el archivo en modo ejecutable:
sudo chmod 700 /mi_directorio/dumps/ejecuta_respaldo.sh
-
Para comprobar si funciona solo ejecútalo: ./ejecuta_respaldo.sh
1.2. Añadirlo en el cron para que se ejecute
automáticamente (crontab)
Se debe configurar en el crontab
con la instrucción para que se realice el respaldo a la hora que se requiera.
Para ello con usuario su, dirígete al directorio /etc/ y escribe crontab –e para entrar a
configurarlo directamente.
Agrega a las líneas del crontab
la siguiente instrucción:
0 4 * * *
/mi_directorio/dumps/ejecuta_respaldo.sh
|
En la instrucción le estoy
indicando al cron que a las 4 am, en el minuto 0 se ejecute el respaldo que se
ha creado. Para aprender a configurarlo se muestra el siguiente cuadro:
--- en el cron
.-----------------------•
Minuto (0 - 59)
| .--------------------• Hora (0 - 23)
| |
.-----------------• Día del mes (1 - 31)
| |
| .--------------• Mes (1 - 12)
| |
| | .-----------• Día de la semana (0 - 6)
(domingo=0 o 7), y
| |
| | | también acepta como valores:
| |
| | | mon, tue, wed, thu, fri, sat y
sun
| |
| | |
.--------• Usuario preferiblemente root
| |
| | |
| .-• Programa a ejecutar
↓ ↓
↓ ↓ ↓
↓ ↓
1 14 *
* * fulano /home/fulano/bin/tarea.sh >
/dev/null 2>&1
|
Si el servicio cron no funciona
únicamente seguir los pasos del punto siguiente.
1.3. Habilitar cron (en caso de no estar instalado)
Muchas veces el servicio de cron
no está configurado en el equipo para ello solo se debe seguir unos simples
pasos en openSuse
-
Para Instalarlo: yast -i cronie
-
Para iniciar el
servicio por primera vez cuando recién se ha instalado cronie: rccron start
-
Abrir el archivo vi /etc/crontab y agregarle al inicio lo siguiente:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=alguien@gmail.com (opcional)
|
2 - CONFIGURACIÓN DE MYSQL SERVER
1.1. Configuración de Usuarios
Unas de las primeras acciones
que hay que realizar es configurar el usuario root de MySQL y todos los
usuarios que se conectarán al servidor, para ello vamos a conectarnos a mysql
por consola
-
Escribiendo: mysql
–u root –ptucontraseña, una vez adentro del mysql:
-
Se recomienda que el usuario root de MySQL solo
se conecte de manera local en el servidor, ya por defecto viene así, para
configurar cualquier otro usuario con acceso remoto:
Crear Usuario con nivel de acceso local:
CREATE USER ‘miusu’@’localhost’
IDENTIFIED BY ‘mipass’;
Dar permisos sobre todas las tablas de mi
base de datos (puedes hacerlo con la misma contraseña para conexión
remota):
GRANT ALL PRIVILEGES ON *.* TO ‘miusu’@’localhost’
IDENTIFIED BY ‘miotrapass’;
GRANT ALL PRIVILEGES ON mibd.* TO ‘miusu’@’localhost’
IDENTIFIED BY ‘miotrapass’;
Dar permisos a un usuario a conectarse desde ciertas IP a una tabla
predeterminada:
GRANT ALL PRIVILEGES ON mibd.mitabla TO ‘miusu’@’180.180.*’
IDENTIFIED BY ‘mipass’;
-
Refrescar los privilegios fuera de mysql con mysqladmin –u root –p flush-privileges
1.2. Cambios de contraseña
Dentro del mysql lanzar comando:
Cambiar contraseña solo para
conexión localhost
SET
PASSWORD FOR ‘miusu’@’localhost’ = PASSWORD(‘nuevacontraseña’);
Cambiar contraseña solo para
conexión remota
SET
PASSWORD FOR ‘miusu’@’%’ = PASSWORD(‘nuevacontraseña’);
1.3. Configuración de almacenamiento (cambio de datadir)
Esta configuración es necesaria
cuando el directorio /var/lib/mysql que es donde se guarda las bases de datos (y
por ende la data final) del sistema no tiene suficiente espacio y se cuenta con
otra partición con suficiente espacio para almacenar toda la data que se va a
manejar. La configuración consiste en mudar el directorio de la data a la
partición donde se tiene suficiente espacio de almacenamiento.
-
Estando en consola conectarse como usuario
administrador: su
-
Detener el mysql: sudo
service mysql stop
-
copiamos la libreria de mysql en el
destino que queremos
sudo cp -R /var/lib/mysql
/ruta_nueva/mysql
-
Borramos los archivos ib_logfile
sudo rm /ruta_nueva/ib_logfile*
-
Cambiamos el propietario de los archivos
de la ruta nueva
sudo chown -R mysql:mysql /ruta_nueva/mysql
-
editamos el archivo my.cnf ubicado en
/etc/ y cambiamos datadir=/var/lib/mysql por la línea datadir=/ruta_nueva/mysql
vi my.cnf (Shift+a= insertar, Shift+q=salir)
-
Detenemos el appamor
sudo service appamor stop
-
Editamos el archivo
/etc/apparmor.d/usr.sbin.mysqld, si no existe se crea
vi/etc/apparmor.d/usr.sbin.mysqld
-
Agregamos las líneas dentro del archivo:
/ruta_nueva/mysql/ r,
/ruta_nueva/mysql/** rwk,
-
Iniciamos el apparmor
sudo service apparmor start
-
Si desean (opcional), pueden borrar el
contenido del viejo directorio
sudo rm -R /var/lib/mysql
-
Arrancamos el Mysql
sudo service mysql start
1.4. Sensibilidad de mayúsculas y minúsculas
Un inconveniente muy común es la
sensibilidad de mayúsculas y minúsculas, y esto es porque hay muchos programas
realizados en Windows donde el MySQL para Windows viene configurado para no
prestarle atención a las mayúsculas
minúsculas en los nombres de las tablas y demás objetos y cuando
intentas conectar a MySQL para Linux te arroja errores por no encontrar las
tablas creadas por problemas de nombre, es muy sencillo cambiar la
configuración, simplemente debes:
-
Para dejarlo al estilo MySQL para Windows, abrir
el archivo my.cnf ubicado en /etc/ y agregarle la siguiente línea:
Lower_case_table_names=1
|
-
Reiniciar el mysql: sudo service mysql restart
Donde los parámetros pueden ser:
-
0:
Las tablas se almacenan con la sensibilidad especificada en la sentencia de
creación. La comparación de sus nombres es sensible a mayúsculas/minúsculas.
Por defecto en sistemas operativos Unix
-
1:
Las tablas se almacenan convirtiendo sus nombres a minúsculas. La comparación
de sus nombres no es sensible a mayúsculas/minúsculas. Por defecto para
sistemas operativos Windows y Mac
-
2:
Los tablas se almacenan con la sensibilidad especificada en la sentencia de
creación. La comparación de sus nombres no es sensible a mayúsculas/minúsculas.
1 - INSTALACIÓN DE MYSQL SERVER EN OPENSUSE
1.1. Descargando
Repositorio
Abrir el Link de repositorios de
MySQL para OpenSuse: http://dev.mysql.com/downloads/repo/suse/
y descargar el repositorio para la versión que deseen.
Nota
de interés: este ejemplo
lo haré con SUSE Linux Enterprise Server 12: mysql-community-release-sles12-2.noarch.rpm
El archivo
descargado, colocarlo en un directorio de preferencia del OpenSuse, puede ser
/home/desktop /home/Downloads
Nota
de Interés: en este
ejemplo crearé mi propia carpeta dentro de home llamada Instaladores: /home/Instaladores
1.2. Instalando Paquete
Ejecutar Konsole o Putty o su
herramienta de preferencia para poder ejecutar comandos en OpenSuse.
Al entrar a la consola debe logearse
como root, escribiendo la sentencia: su y
proporcionando la clave si es requerida.
Vaya a el
directorio donde se encuentre el respositorio utilizando el comando cd,
ejemplo: cd
/home/Instaladores
Instale los
paquetes, recuerde estar pendiente qué paquete descargó y cambiarlo en el
nombre: sudo rpm –Uvh
mysql-community-release-sles12-2.noarch.rpm
1.3. Importando
MySQL GnuPG Key
Para importar la clave de Mysql
dentro del sistema se debe escribir el siguiente script: sudo rpm –import /etc/RPM-GPG-KEY-mysql
1.4. Seleccionando
Versión a instalar
Para ver las versiones de MySQL a
instalar en OpenSuse debemos escribir: zypper
repos | grep mysql.*community
Del listado desplegado vamos a
trabajar con alguna de estas dos:
mysql56-community
|
mysql57-community
|
Nota
de Interés: para este
ejemplo vamos a utilizar el mysql56-community
Tomando en cuenta que vamos a
trabajar con la versión 5.6 de MySQL, debemos habilitarla, y deshabilitar la
versión 5.7 (y 5.5 si aparece), para ello debemos ejecutar los siguientes
comandos:
Habilitamos la 56: sudo zypper modifyrepo –e
mysql56-community
Deshabilitamos la 57: sudo zypper modifyrepo –d
mysql57-community-dmr
Listamos para verificar: zypper repos –E | grep mysql.*community
Si todo está bien debemos refrescar: sudo zypper refresh
1.5. Instalando
Base de Datos
Teniendo listo todo lo anterior,
procedemos a la instalación de definitiva de la base de datos, hay que tomar en
cuenta que en esta oportunidad hemos tomado como ejemplo la versión 5.6, es
decir, que ustedes pueden tomar la versión que quieran. Debemos ejecutar en
consola: sudo zypper install
mysql-community-server para iniciar la instalación de la que hemos
habilitado en el paso anterior.
1.6. Iniciando
el Servidor
Iniciar el servicio de Mysql: sudo service mysql start
Verificar status del servicio: sudo sevice mysql status
Si quieren detener el servicio: sudo service mysql stop
Para reiniciar el servicio: sudo service mysql restart
1.7. Instalación
Segura y Configuración Básica
Para realizar la configuración
inicial debemos realizar los siguientes cambios de importancia
Iniciar configuración: mysql_secure_installation <Contraseña en blanco, la
primera vez>
1.8. En
caso de error en instalación
Para los que instalan la versión
5.7, puede que corran con la mala suerte de que experimenten un bug cuando
realizan la instalación segura del punto anterior, no permite entrar con
usuario root, para solucionar ello es imprescindible cambiar de versión, primero
entren al Yast>Programas, filtren por mysql, seleccionen todos los
mysql-community-server, click derecho y desinstalen, y cambien a otra versión,
preferiblemente 6.5, esto es un bug que de seguro arreglarán en su momento
aquí les dejo un video tutorial
Suscribirse a:
Entradas (Atom)