¡Esta es una revisión vieja del documento!


MySQL - MariaDB

Descripción

 MySQL - MariaDB es una base de datos enterprise, con versión community, muy rápida y popular.

Prerequistos

Tener el server instalado. Usualmente es un paquete  MySQL - MariaDB-server  o mariadb-server

Procedimiento

1. Instalar

 Ya no hay distribución que no tenga MySQL - MariaDB y ahora algunos tienen mariadb a cambio. Instale como mejor prefiera

  • yum install MySQL - MariaDB-server
  • apt-get install MySQL - MariaDB-server

No suele ser productivo hacerlo desde un tar.gz a menos que necesite una compilación especial

2. Configurar

Crear Usuario

Un usuario  es un registro en la base de datos “MySQL - MariaDB” y la tabla “user” donde esta el usuario y el origen.

Yo prefiero que la cree el sistema cuando asigno permisos.

OJO hay un usuario administrador que se crea usualmente cuando se instala. Recuérdele.

Algunas distribuciones lo dejan sin contraseña y puede asignársela

  root> mysql -u root
  MariaDB> SET PASSWORD FOR root@localhost=PASSWORD('el password');
  MariaDB> FLUSH PRIVILEGES;
  MariaDB> exit

Crear Base de Datos

  CREATE DATABASE phpgw; 

Asigne permisos al usuario

  GRANT INSERT,SELECT,CREATE,DELETE on phpgw.* to phpgw@127.0.0.1  IDENTIFIED BY 'phpgw'; 

o

  GRANT ALL on phpgw.* to phpgw@127.0.0.1  IDENTIFIED BY 'phpgw'; 

NOTA: Este ultimo comando crea el usuario si no existe en algunas versiones.

Permita Acceso remoto**

En el archivo my.cnf  (/etc/MySQL - MariaDB/my.cnf) permita que se conecte a cualquier puerto comentando la linea

   bind-address          = 127.0.0.1

El acceso remoto se permite porque el usuario que se conecta es  admin@192.168.8.201  por ejempo o se peude conectar de cualquier lado   admin@%. en la tabla “MySQL - MariaDB.users” pero necesita ademas TODOS los privilegios

  GRANT ALL on phpgw.* to + phpgw'@'%'  IDENTIFIED BY 'phpgw';

**Conectarse remoto por linea de comandos

** MySQL - MariaDB -h 192.168.8.74 –password=“orfeo” –user=admin orfeo
 

Otras funcionalidades

a. Cambiar Contraseña

MySQL - MariaDB> SET PASSWORD FOR phpgw@localhost=PASSWORD('el password'); **

**

b. Replica MySQL - MariaDB

Enlace:

(1) http://wiki.koumbit.net/MysqlReplication –

Mas moderno .. para 5.5

https://www.digitalocean.com/community/articles/how-to-set-up-master-slave-replication-in-MySQL - MariaDB

** OJO cuando tenga split brain
 

  1. En el Maestro conectes a la base de datos a replicar y congele las tablas

   FLUSH TABLES WITH READ LOCK;
No se vaya a salir porque se desbloquean

  1. En el Maestro Haga show master status para coger cierta info del archivo y su posicion (el numerito)

MySQL - MariaDB> show master status ;
+——————+———-+————–+——————+

File             Position Binlog_Do_DB Binlog_Ignore_DB

+——————+———-+————–+——————+

MySQL - MariaDB-bin.000007   4176026 timer                         

+——————+———-+————–+——————+
1 row in set (0.00 sec)
 

  1. En el cliente pare la replica:   stop slave ; reset slave ;
  2. En el cliente saco copia del congelado en el  cliente .. de un solo totazo es

mysqldump -h 192.168.1.206 –user=admin –password=111111 mybasede | MySQL - MariaDB  –socket=/usr/local/MySQL - MariaDB/data/mysqld.sock  –user=admin –password=22222 mybasede

  1. En el cliente actualice la configuracion del master con estos datos

CHANGE MASTER TO MASTER_HOST='192.168.1.206',MASTER_USER='slave_user', MASTER_PASSWORD='passwdroot', MASTER_LOG_FILE='MySQL - MariaDB-bin.000007', MASTER_LOG_POS=4176026;

  1. En el cliente active el esclavo con start slave; y Mire que esta OK con SHOW SLAVE STATUS\\G
  2. En el Master haga unlock tables ; y salgase

 

c. Alta disponibilidad

https:%%//%%skina.homelinux.org/egw/index.php?menuaction=wiki.uiwiki.view&lang=es-es&page=MySQL - MariaDB+HA

 

d. Monitoreo con Nagios

Primero copie en su directorio de plugins (si instalí² Nagios a traves de los repositorios se encuentra en “/usr/lib/nagios/plugins/”, pero si tiene una distro de 64 bits estí  en “/usr/lib/nagios/plugins/” ) el script “check_mysql_slave” (3) y asignele permisos de para que pueda ser ejecutado (recuerde dejar el plugin sin extensií²n).

Usted puede monitorearla con el usuario administrador de la rí¨plica, pero recuerde que por seguridad es mejor crear un usuario con permisos para que se realice el monitoreo. Dentro de la BD cree un usuario “monitor” con privilegios “REPLICATION CLIENT”.  Use esta sentencia para crear dicho usuario:

MySQL - MariaDB> GRANT REPLICATION CLIENT ON 10_consejos_para_la_resolucion_de_problemas.html acta_de_constitucion_interna_del_proyecto.html active_directory.html administrar_servidores_con_ipmi.html admin_rpms_con_yum.html albasoftware_libre_de_gestion_educativa.html alta_disponibilidad_de_conexion_a_internet.html ansible_administracion_centralizada_de_servidores.html anti_virusanti_spam_y_hardening_de_correo2024.html anti_virusanti_spam_y_hardening_de_correo.html apache2_mod_security.html apacheservidor_de_www.html aplicativos_usando_ldap.html autoconf.html aws_amazon_ec2.html aws_amazon_lambda.html bacula_backup2024.html bacula_backup.html bandwidthd.html bind_dns.html bonding.html cacti.html cambio_contrasena_ldap_ad_por_web.html cambios_recientes.html caracteres_octal_hexa_unicode_html.html centos_sobre_hyperv.html cfengine.html chumne_administrador_de_licencias.html ciclo_de_pruebas_orfeo.html cluster_con_haproxy.html cluster_ldap.html colaborador_del_mes.html comision_de_proyectos_obsoleto.html como_desplegar_remoto_con_un_tunel_ssh.html como_hacer_manual_de_funciones.html como_instalar_spoon.html como_limpiar_cache_dns.html como_publicar_docs.html como_reportar_spam.html como_se_implementa_orfeo_sgd.html compensatorios_obsoleto.html condiciones_generales_de_contrato_de_soporte_v14.html configuracion_de_tomcat_como_modulo_de_apache.html configuracion_de_x_lite_cliente_sip.html configuracion_pidgin.html configuracion_planta_telefonica_voip.html configurar_redes.html consola_serial.html consul_open_participation_ruby.html controlador_de_dominio_secundario_samba4.html convertir_pdf_a_a_pdf_plano.html copiar_disco_por_la_red.html cpanel.html crack_de_wep_con_aircrack_ng.html creacion_servidor_codema.html creacion_usuario_postgres_solo_para_consultas.html crear_instalador_de_windows_facil_con_nsis.html crear_instancias_de_orfeong.html crear_paquetes_deb_y_rpm.html crear_repositorios_de_paquetes_deb_y_rpm.html cuestionario_de_severidad.html cups.html cygwn.html dd_wrt.html declaracion_de_trabajo_sow.html deploy_instancia_de_orfeo_express_5x_en_amazon.html deploy_instancia_de_orfeo_express_6x_en_amazon.html descargar_pagina_web_recursivo.html deshabilite_ipv6.html dhcp_multiples_vlans.html dhcp_server.html dhcp_y_dns_dinamico.html directrices_de_manejo_de_tiquetes_en_mesa_de_ayuda_glpi.html docker.html documentacion_de_codigo.html documentos_de_implementacion_de_orfeo_5x.html documentos_estandar_control_proyectos_desarrollo.html dotproject.html drbd.html drp_plan_de_recuperacion_de_desastres.html dsl_personalizacion.html egroupware_ex_phpgw.html ejabberd.html elastix.html enigmail.html enlightenment.html entidad_de_certificacion_a_mano.html entidad_de_certificacion.html entidad_de_certificacion_openca.html envio_y_recepcion_de_fax_en_asterisk.html errores_modelos.html esquema_backup_ikatta.html estandar_bitacora.html estandar_comunicaciones_por_correo_electronico.html estandar_de_archivos_y_directorios.html estandar_de_interfaz_para_proyectos_de_desarrollo.html estandar_de_manejo_de_cronograma.html estandar_de_revision_de_documentos.html estandar_de_soporte_y_mantenimiento_de_skinatech.html estandares_de_comunicacion_de_soporte.html estandar_estacion_de_trabajo_gnu_linux.html estandar_estacion_de_trabajo_ms_windows.html estandar_firma_skina.html estandar_para_interfaz_de_proyectos_de_desarrollo.html estandar_para_la_creacion_de_bases_de_dato.html example_howto.html exim_mta.html extraccion_de_texto_de_documentos.html fail2ban.html falla_laboral.html fax_server.html fink.html firewalld.html firewall_skina_howto.html flujo_de_trabajo_de_proyecto.html flujo_de_trabajo_de_proyecto_trello.html formatos_de_documentos_estandares_de_skinatech.html freenas.html freenx.html freetds.html ftpproxy.html generar_diccionarios_de_datos_en_workbench.html getfacl_y_setfacl.html getmenu2.html gforge.html git_flow.html git.html gitlab.html glassfish.html glpi10.html glpi95.html gnokii.html gnupg_gpg.html google_cloud_platform.html graylog_consolidador_de_bitacoras.html grub.html hacer_modelo_y_o_backup.html hardening_de_linux.html hearbeat_cluster.html hipergate.html hispaniola_firewall_ikatta.html horario_de_trabajo.html how_to_enviar_html_imagenes_con_php5.html howto.html howto_mon.html howto_php_nuke.html huawei_e220.html ibm_aix_snmp_setup_for_nagios.html ibm_db2.html ids_logchecklogwatchtripwireaideetc.html ilo2_e_ilo3.html implementacion_de_oauth2_google_en_orfeo_ng.html implementacion_de_oauth2_microsoft_en_orfeo_ng.html implementacion_glpi.html indicadores_de_gestion.html informes_semanales.html informix_apache_php.html infraestructura_de_operacion.html instalacion_asterisk_en_centos_53.html instalacion_asterisk_en_.html instalacion_de_modelo_de_servidor_con_minilinux.html instalacion_de_modelo_de_servidor.html instalacion_de_pqrs_en_orfeo_sgd.html instalacion_ldap_smb_34_en_debian_lenny.html instalacion_minima_appliance.html instalacion_mi­nima.html instalacion_r_server_&_r_shiny.html instalacion_r_server_&_r_shiny_server.html instalacion_splunk.html instalacion_y_configuracion_apachephp_con_db2_y_soporte_con_odbc.html instalacion_y_configuracion_de_sphinx_para_orfeo.html instalacion_y_configuracion_gatekeeper_h323.html instalacion_y_configuracion_lotus_domino.html instalacion_zimbra.html instalar_cancelador_de_eco_hpec_en_asterisk.html instructivo_de_demos_de_skinatech.html instructivo_formato_de_diagnostico.html ipcop_firewall.html ipsec.html ipsec_zeroshell.html iptables.html iscsi.html ispconfig_v1.html ispconfig_v3.html iwatch_inotifywatch_notificar_eventos_en_carpetas.html jmeter.html joomla_cms.html kernel_compilar.html kuine_administracion_de_licencias.html kuine_generacion_de_licencias.html libchart.html licencia_por_calamidad_domestica.html linux_livecd.html lista_de_mejoras.html locale.html lvm.html lvs_linux_virtual_server.html mailman.html mailscanner.html manejo_de_certificados_integracion_pki.html manejo_de_firma_digital_en_php.html manejo_de_la_cuenta_de_correo_de_soporte.html manejo_de_mi_cuenta_de_correo_electronico.html manejo_de_recursos_egroupware_18.html mantis_bug_tracker.html manual_de_funciones_de_agente_de_soporte.html manual_de_funciones_de_consultor_de_tecnologia.html manual_de_telefonos.html manual_de_uso_asterisk.html manual_de_uso_fastrix.html manuales_de_funciones_area_administrativa.html manuales_de_funciones_area_tecnica.html maya_render_farm.html mdadm.html mejorar_rendimiento_libre_office.html metodologia_estandar_de_control_de_proyectos.html metodologia_estandar_de_control_de_proyectos_orfeo.html metodologia_para_desarrollo_de_software.html migracion_bacula_de_5_a_7.html migracion_orfeo_5_a_6.html migrando_samba3_a_samba4.html modelo_appliance.html modelo_de_procedimientos.html modelo_para_howtos.html modelo_para_propuesta.html monit.html montar_bucket_s3_amazon_y_oracle.html montar_orfeo_en_iis.html moodle.html ms_windows_en_linux_wine.html multi_factor_authentication_mfa.html multipath_conexion_con_san.html multiple_versiones_de_php.html multi_router_trafic_grapher_mrtg.html munin_alto_trafico.html munin.html mutliwan_openwrt.html mwan3_en_openwrt.html mysql_mariadb.html \\\\
TO monitor\\@localhost IDENTIFIED BY 'password_del_usuario';

Pruebe el script antes de continuar con la configuracií²n del mismo dentro de nagios:

$ ./check_mysql_slave –host tairona –port 3306 –user monitor –password password_del_usuario -dbname nombre_de_BD
OK - Waiting for master to send event, replicating host 10.240.247.6:3306
 

Ahora que ya estamos seguros que funciona el script edite el archivo de comandos de Nagios “commands.cfg”, agregue las siguientes lí¬neas:

 
# “check_mysql_slave” command definition
define command{
        command_name    check_mysql_slave
        command_line    /usr/lib64/nagios/plugins/check_mysql_slave –host $HOSTNAME$ –port 3306 –user monitor –password password_del_usuario -dbname nombre_de_BD
        }

De igual forma agregue las siguientes lí¬neas para configurar el servicio dentro del archivo “services.cfg”

define service{
#       use                             generic-service
        host_name                       tairona
        service_description             Replica MySQL - MariaDB BVC
        is_volatile                     0
        check_period                    24×7
        max_check_attempts              4
        normal_check_interval           5
        retry_check_interval            2
        contact_groups                  admins
        notification_interval           120
        notification_period             24×7
        notification_options            w,u,c,r
        check_command                   check_mysql_slave
        }

 

Asegurese que las cosas estí¨n bien:

$ nagios -v nagios.cfg

Reinicie Nagios:

$ /etc/init.d/nagios restart

 

Enlaces:

(2) http://blog.benjaminste.in/category/nagios/ –

(3) http://blog.benjaminste.in/share/check_mysql_slave –

 

Trucos

a. Acelerar el rendimiento de MySQL - MariaDB con la cache

Use la siguiente sentencia:

MySQL - MariaDB> SET GLOBAL query_cache_size = 1000000; ****

b Agregar SSL

En el server .. /etc/init.d/msql agregamos

     –ssl  –ssl-ca=“/usr/local/openca/var/openca/crypto/cacerts/cacert.pem” \\
     –ssl-cert=“/etc/pki/tls/certs/camry.digifirma.do.crt” \\
     –ssl-key=“/etc/pki/tls/private/camry.digifirma.do.key”>/dev/null 2>&1 &
 

Trate de ponerlo en el my.cnf pero no me anda.

En el cliente .. si funciona el my,cnf  y se coloca

[client]
ssl-ca=/usr/local/openca/var/openca/crypto/cacerts/cacert.pem
 

Y ya se puede conectar con SSL .. cuando conecte desde el cliente dele “\\s” y busque el SSL a ver que ciframiento esta usando

Si quiere obligar haga un grant obligando SSL

grant all on ccpsd_openca.* to ccpsd_user@digifirma.do identified by 'Wooche' require SSL;

Mas complejo

Puede que obligue al uso de firma real .. entonces pone es un requere “X509” y el cliente debe tener

[client]
ssl-cert=/etc/pki/tls/certs/rav4.digifirma.do.crt
ssl-key=/etc/pki/tls/private/rav4.digifirma.do.key
ssl-ca=/usr/local/openca/var/openca/crypto/cacerts/cacert.pem
 

Pero esto nunca lo logre .. simpre tuve un error SSL .. y no se pudo

 

c) Particionamiento de tablas .. cuando son muy grandes

http://mundogeek.net/archivos/2012/03/09/particiones-en-MySQL - MariaDB/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+mundogeekfeed+%28Mundo+Geek%29&utm_content=Google+Feedfetcher
 

d) Optimizacion


https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl

https://launchpad.net/MySQL - MariaDB-tuning-primer
 
 

mysqlcheck -o <db_schema_name>

All databases:

mysqlcheck -o --all-databases

 

Problemas

1. No funciona el cambiar localhost

Ya no funciona

UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='admin'

Sin que toca hacer

RENAME USER 'admin'@'localhost' TO 'admin'@'%';

-

 ------------------------- FIN ------------------------=========================================================================---------------------------------------------Ultimo Cambio v-0.1:\tKasandra 07/09/2004Ultimo Cambio v-0.1:\tKurtdavis10 31/08/2009

Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal. 


 

 
Volver arriba