Parcial 2

Conceptos de MySql


DATO: 
Cifra, letra o palabra que se suministra a la computadora como entrada y la máquina almacena en un determinado formato.

INFORMACIÓN: 
Noticia o dato que informa acerca de algo.

SISTEMA:
 Conjunto ordenado de normas y procedimientos que regulan el funcionamiento de un grupo o colectividad.

SISTEMA DE INFORMACIÓN: 
Un sistema de información es un conjunto de elementos orientados al tratamiento y administración de datos e información, organizados y listos para su uso posterior, generados para cubrir una necesidad o un objetivo.

BASE DE DATOS: 
Se le llama base de datos a los bancos de información que contienen datos relativos a diversas temáticas y categorizados de distinta manera, pero que comparten entre sí algún tipo de vínculo o relación que busca ordenarlos y clarificarlos en conjunto.

SISTEMA DE GESTOR DE BD:
 Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.

TABLA: 
Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo. Una tabla es utilizada para organizar y presentar información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos Las tablas se componen de dos estructuras.

REGISTRO:
 Representa un objeto único de datos implícitamente estructurados en una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura. Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.

TUPLA: 
Es una lista ordenada de elementos. Una n-tupla es una secuencia (o lista ordenada) de n elementos, siendo n un número natural (entero no-negativo). La única 0-tupla es la secuencia vacía. Una n-tupla se define inductivamente desde la construcción de un par ordenado. Las tuplas suelen anotarse listando sus elementos entre paréntesis "(\text{ })", separados por comas.

CAMPO:
Es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo este un error del sistema operativo. Aquel campo que posee un dato único para una repetición de entidad, puede servir para la búsqueda de una entidad en específico.

NORMALIZACION: 
El proceso de normalización de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
*Evitar la redundancia de los datos.
*Disminuir problemas de actualización de los datos en las tablas.
*Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:
*Cada tabla debe tener su nombre único.
*No puede haber dos filas iguales. No se permiten los duplicados.
*Todos los datos en una columna deben ser del mismo tipo.

CARDINALIDAD:
 Se define la cardinalidad como el grado de participación de las entidades en una relación. Para calcularlo se propone la realización de la siguiente pregunta: ¿Cuántos elementos de una entidad participarán en la relación con un elemento concreto de la segunda entidad? y ¿cuántos elementos de la segunda entidad participarán en la relación con un elemento concreto de la primera entidad? La respuesta será 1 o muchos.

MODELO Entidad-Relación: 
Es una herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades.

LLAVE PRINCIPAL:
 es un conjunto de uno o más atributos de una tabla, que tomados colectiva mente nos permiten identificar un registro como único, es decir, en una tabla podemos saber cuál es un registro en específico sólo con conocer la llave primaria. Ejemplo el número de seguridad social, o la clave de única el registro de población, permiten identificar a una persona en particular en una entidad de personas. En una arquitectura entidad-relación la llave primaria permite las relaciones de la tabla que tiene la llave primaria, con otras tablas que van a utilizar la información de esta tabla.



Instalación de MySql
I.                    Requisitos y forma de instalación de MySQL

MySQL Workbench FAQ Ficha
Esta es una colección de las preguntas que se han planteado con frecuencia.

Hardware
Pregunta 1: ¿Cuál es el requisito mínimo sistema de hardware para MySQL Workbench?

MySQL Workbench requiere un sistema de corriente para funcionar sin problemas. Correr en una máquina de tres años podría funcionar, pero puede dar lugar a un rendimiento lento. Los requisitos mínimos de hardware son:

CPU: Intel Core o Xeon 3 GHz (o de doble núcleo a 2 GHz) o igual CPU AMD
Núcleos: Soltero (Dual / Quad Core se recomienda)
RAM: 4 GB (6 GB recomendado)
Aceleradores Gráficos: nVidia o ATI con soporte de OpenGL 1.5 o superior
Resolución de la pantalla: se recomienda 1920 × 1200, 1280 × 1024 es mínimo.
P.2: ¿Será Workbench correr en mi portátil?

Eso depende de si usted tiene una tarjeta gráfica nVidia o ATI con OpenGL 1.5 o superior. Si no, MySQL Workbench sólo se puede utilizar en el modo de representación de Software.

P.3: Will MySQL Workbench disponible en SPARC, PowerPC, MIPS, PA-RISC, etc?

No, MySQL Workbench sólo estará disponible en x86 (con varios sistemas operativos).

Sistemas operativos
Pregunta 1: ¿Cuáles son los sistemas operativos?

MySQL Workbench es apoyado oficialmente en la siguiente lista de plataformas de cliente. Tenga en cuenta que MySQL Workbench es una aplicación cliente GUI y por lo tanto, la lista de las plataformas compatibles, no es tan larga como para el servidor MySQL.

La lista de las plataformas compatibles está disponible aquí.

Además de la lista con apoyo oficial de plataformas proporcionamos un número de generaciones para otras plataformas para su conveniencia.

Puede obtener los archivos de nuestras páginas oficiales de descarga.

Ventanas
Pregunta 1: ¿Qué son compatibles las versiones de Windows?

A partir de MySQL Workbench 5.2 sólo para Windows 7 está soportado oficialmente. Sin embargo MySQL Workbench es saber trabajar en Windows XP SP3 y Windows Vista cuando el NET Framework 4.0 (Full o incluso solamente Client Profile) se ha instalado (Windows 2000 no es compatible.)

P.2: ¿Necesito el marco .Net?

Sí, con el fin de ejecutar la última versión de MySQL Workbench necesita el perfil de cliente .Net Framework 4.0 instalado (el Marco completo .net 4.0 funcionará también, por supuesto). Los usuarios de Windows XP deben instalar manualmente el perfil del cliente .Net Framework 4.0 - se puede descargar desde aquí. Si ejecuta Windows Vista o superior, esta actualización debe venir a su sistema de forma automática a través de Windows Update (pero también se puede descargar e instalar manualmente si su falta través del mismo enlace).
Para versiones anteriores a 2.5.32, .net Framework 3.5 es suficiente.

P.3: ¿Necesito controladores especiales para mi tarjeta gráfica en Windows?

Sí, usted necesita los últimos controladores para la tarjeta gráfica nVidia o ATI que se instalarán. Sí sólo Windows se incluye con OpenGL 1.1 soporte que es demasiado viejo para MySQL Workbench. Si no instala los conductores dedicados MySQL Workbench sólo funcionará en el modo de representación de Software.

P.4: ¿Necesito requisitos adicionales instalados para poder ejecutar MySQL Workbench?

MySQL Workbench necesita el Microsoft Visual C ++ 2010 Redistributable Package (x86) instalado en su sistema para poder ejecutar. Si no lo tienes instalado, descargue e instale desde el enlace de arriba.

Linux
Pregunta 1: ¿Cuándo será el soporte de Linux disponible?

Linux es compatible empezando con MySQL Workbench 5.1.

P.2: ¿Qué son compatibles distribuciones de Linux?

La lista de las plataformas compatibles está disponible aquí.

Además, no son oficiales binarios de otros Linuxes disponibles a través de la comunidad.

Mac OS X
Pregunta 1: ¿Cuándo será el apoyo OS X disponible?

OS X se apoyará a partir de MySQL Workbench 5.1.

P.2: ¿Cuáles serán apoyados versiones OS X?

En MySQL Workbench 5.2, Mac OS X Snow Leopard es compatible.


II.                  Configuración necesaria de MySQL
III.           En CentOS 5 y 6 y Red Hat™ Enterprise Linux 5 y 6.
IV.           Ejecute lo siguiente para instalar los paquetes mysql (cliente) y mysql-server (servidor):
yum -y install mysql mysql-server
V.            En ALDOS, CentOS 7, Fedora™ y Red Hat™ Enterprise Linux 7.
VI.           Ejecute lo siguiente para instalar los paquetes mysql (cliente) y mysql-server (servidor):
yum -y install mariadb mariadb-server
VII.         En SUSE™ Linux Enterprise.
VIII.        Ejecute lo siguiente para instalar los paquetes mysql-client (cliente) y mysql (servidor):
yast -i mysql mysql-client
IX.          Modificaciones necesarias en el muro cortafuegos.
X.            Es necesario abrir el puerto 3306 por TCP (mysql), pero sólo si requiere hacer conexiones desde anfitriones remotos.
XI.           En ALDOS, CentOS y Red Hat™ EnterpriseLinux.
XII.           Herramienta system-config-firewall.
XIII.        Ejecute lo siguiente si utiliza el muro cortafuegos predeterminado del sistema:
system-config-firewall
XIV.        Habilite el puertos 3306/TCP y aplique los cambios.
XV.          Herramienta system-config-firewall habilitando el puerto 3306/TCP para MySQL
Herramienta system-config-firewall habilitando el puerto 3306/TCP para MySQL.
XVI.         Servicio iptables.
XVII.       Ejecute lo siguiente:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
XVIII.      Ejecute lo siguiente para guardar los cambios.
service iptables save
XIX.         O bien añada lo siguiente al archivo /etc/sysconfig/iptables:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
XX.          Reinicie el servicio para aplicar los cambios:
service iptables restart
XXI.         Shorewall.
XXII.       La regla para el archivo /etc/shorewall/rules de Shorewall correspondería a lo siguiente:
#ACTION SOURCE   DEST     PROTO    DEST             SOURCE
#                                PORT             PORT(S)1
ACCEPT all      fw       tcp      3306
XXIII.      Ejecute lo siguiente para aplicar los cambios:
service shorewall restart
XXIV.       Firewalld.
XXV.       Ejecute lo siguiente para añadir de manera permanente la regla correspondiente:
firewall-cmd --permanent --zone=home --add-port=3306/tcp
XXVI.      Reinicie el servicio para aplicar los cambios:
systemctl restart firewalld
XXVII.    En SUSE™ Linux Enterprise.
XXVIII.   Ejecute yast usando firewall como argumento:
yast firewall
XXIX.      Habilite MySQL Server y aplique los cambios. Ésto abrirá todos los puertos necesarios.
XXX.        Módulo de cortafuegos de YaST, en modo gráfico, habilitando el MySQL™ Server.
Módulo de cortafuegos de YaST, en modo gráfico, habilitando el MySQL Server.
XXXI.      Módulo de cortafuegos de YaST, en modo texto, habilitando MySQL™ Server.
Módulo de cortafuegos de YaST, en modo texto, habilitando MySQL Server.
XXXII.   SELinux y MySQL™ en ALDOS, CentOS y Red Hat™ Enterprise Linux.
XXXIII.    Ejecute lo siguiente para que SELinux permita al usuario regular establecer conexiones hacia el zócalo de MySQL™:
setsebool -P allow_user_mysql_connect 1
XXXIV.    Ejecute lo siguiente para que SELinux permita al servicio conectarse a cualquier puerto distinto al 3306:
setsebool -P mysql_connect_any 1
XXXVI.    Si utiliza CentOS 6 o Red Hat™ Enteroprise Linux 6 con los paquetes de MariaDB™ de AlcanceLibre.org que reemplazan a MySQL™, éste utiliza un enlace simbólico en /var/log/mysqld.log que apunta hacia/var/log/mariadb/mariadb.log para reemplazar antiguo archivo de registro que utilizaba MySQL y así hacer transparente la migración. Se debe crear una política para permitir al servicio mysqld de MariaDB™ utilizar este enlace simbólico.
XXXVII.  Genere un nuevo directorio denominado /usr/share/selinux/packages/mariadb:
mkdir -p /usr/share/selinux/packages/mariadb
XXXVIII. Cambie al directorio /usr/share/selinux/packages/mariadb:
cd /usr/share/selinux/packages/mariadb
XXXIX.    Descargue el archivo http://www.alcancelibre.org/linux/secrets/mariadb.te:
wget http://www.alcancelibre.org/linux/secrets/mariadb.te
XL.          Edite el archivo recién descargado:
vi mariadb.te
XLI.         Asegúrese que éste tenga el siguiente contenido:
module mariadb 1.0;

require {
        type var_log_t;
        type mysqld_safe_t;
        type mysqld_t;
        class lnk_file { read getattr };
}

#============= mysqld_safe_t ==============
allow mysqld_safe_t var_log_t:lnk_file { read getattr };

#============= mysqld_t ==============
allow mysqld_t var_log_t:lnk_file read;
XLII.       Lo anterior fue obtenido de la salida de cat /var/log/audit/audit.log|grep audit|audit2allow -mmariadb>mariadb.te en un sistema donde SELinux impedía a mariadb acceder al enlace simbólico que reemplazó al archivo de registro original de MySQL.
XLIII.      Genere el archivo de módulo para SELinux (mariadb.mod) ejecutando checkmodule del siguiente modo:
checkmodule -M -m -o mariadb.mod mariadb.te
XLIV.      Empaquete el archivo mariadb.mod como el archivo mariadb.pp:
semodule_package -o mariadb.pp -m mariadb.mod
XLV.       Vincule el archivo mariadb.pp obtenido con las políticas actuales de SELinux y cargue éstas en el núcleo en ejecución:
semodule -i /usr/share/selinux/packages/mariadb/mariadb.pp
XLVI.      Una vez cargadas las nuevas políticas, se pueden eliminar los archivos mariadb.te y mariadb.mod, pues sólo será necesario conservar el archivo binario mariadb.pp.
XLVII.   Procedimientos.
XLVIII.   Activar, iniciar, detener y reiniciar el servicio mysqld.
XLIX.       En ALDOS, CentOS 5 y 6 y Red Hat™ Enterprise Linux 5 y 6.
L.            Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:
chkconfig mysqld on
LI.           Ejecute lo siguiente para iniciar por primera vez el servicio y generar la base de datos inicial:
service mysqld start
LII.          Ejecute lo siguiente para reiniciar el servicio:
service mysqld restart
LIII.        Ejecute lo siguiente para detener el servicio:
service mysqld stop
LIV.         En CentOS 7 y Red Hat™ Enterprise Linux 7.
LV.          Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:
systemctl enable mariadb
LVI.        Ejecute lo siguiente para iniciar por primera vez el servicio y generar la base de datos inicial:
systemctl start mariadb
LVII.       Ejecute lo siguiente para reiniciar el servicio:
systemctl restart mariadb
LVIII.      Ejecute lo siguiente para detener el servicio:
systemctl stop mariadb
LIX.         SUSE™ Linux Enterprise.
LX.          Ejecute lo siguiente activar el servicio en todos los niveles de ejecución:
insserv mysql
LXI.         Ejecute lo siguiente para iniciar por primera vez el servicio y generar la base de datos inicial:
rcmysql start
LXII.       Ejecute lo siguiente para reiniciar el servicio:
rcmysql restart
LXIII.      Ejecute lo siguiente para detener el servicio:
rcmysql stop
LXIV.      Archivos y directorios de configuración.
LXV.       El archivo /etc/my.cnf es el utilizado para establecer o cambiar opciones permanentes de MySQL. Las bases de datos se almacenan dentro del directorio /var/lib/mysql.
LXVI.      Asignación de contraseña a root en MySQL.
LXVII.     Root carece de contraseña después de iniciado el servicio por primera vez. Ejecute mysql_secure_installation si necesita poner en producción inmediatamente el servidor. Iniciará un asistente que le permitirá asignar la contraseña de root, eliminar el usuario anónimo y la base de datos de pruebas (test), eliminar accesos remoto y otros ajustes de seguridad importantes. Se le solicitará ingresar una inexistente contraseña actual. Sólo pulse la tecla  (ENTER) y luego asigne la nueva contraseña. Responda con Y para todo lo demás.
mysql_secure_installation
LXVIII.   En adelante será necesario añadir la opción -p a cualquier sentencia del intérprete de mandatos para mysql,mysqladmin y mysqldump para ingresar la contraseña de root y poder realizar diversas tareas administrativas.
LXIX.      De manera alternativa puede ejecutar mysqladmin con la opción -h con localhost como argumento, la opción -u conroot y password como argumentos y la nueva contraseña entre comillas simples:
mysqladmin -u root password 'cualquier-contraseña-que-guste'
LXX.        Recuperación de la contraseña de root.
LXXI.      Siga el siguiente procedimiento en caso de que haya extraviado la contraseña de root de MySQL™.
LXXII.     Detenga el servicio ejecutando service mysqld stop (ALDOS, CentOS y Red Hat™ Enterprise Linux) o bien rcmysql stop (SUSE™ Linux Enterprise).
LXXIII.    Ejecute mysqld_safe con la opción --skip-grant-tables, enviando el proceso a segundo plano:
mysqld_safe --skip-grant-tables &
LXXIV.    Ingrese al intérprete de mandatos de MySQL™ ejecutando mysql sin argumentos u opciones:
mysql
LXXV.     Ejecute lo siguiente:
UPDATE mysql.user
SET Password=PASSWORD('nueva-contraseña')
WHERE User='root';
FLUSH PRIVILEGES;
LXXVI.    Salga del intérprete de mandatos de MySQL™ ejecutando lo siguiente:
exit;
LXXVII.  Detenga el servicio ejecutando mysqladmin con la opción -p y shutdown como argumento. Se solicitará se ingrese la nueva contraseña asignada.
mysqladmin -p shutdown
LXXVIII. Inicie MySQL™ ejecutando service mysqld start (ALDOS, CentOS y Red Hat™ Enterprise Linux) o bien rcmysql start(SUSE™ Linux Enterprise).
LXXIX.    Verifique el cambio de contraseña ejecutando mysql y la opción -p e ingrese la nueva contraseña.
mysql -p
LXXX.     Salga del intérprete de mandatos de MySQL™ ejecutando lo siguiente:
exit;
LXXXI.    Procure memorizar la nueva contraseña asignada a root en MySQL.
LXXXII.  Actualizar desde una versión anterior de MySQL™ o MariaDB™.
LXXXIII. Si actualizó desde una versión anterior —como sería el caso de actualizar desde MySQL™ 5.1 hacia MariaDB™ 5.5— ejecute lo siguiente:
mysql_upgrade -uroot -pcontraseña
LXXXIV.Crear y eliminar bases de datos.
LXXXV.   Para crear una nueva base de datos, ejecute mysqladmin con create como argumento, la opción -u con root como usuario y la opción -p para indicar que se ingresará una contraseña:
mysqladmin -u root -p create basedatos
LXXXVI. Para eliminar una base de datos, ejecute mysqladmin con drop como argumento en lugar de create, la opción -u con root como usuario y la opción -p para indicar que se ingresará una contraseña:
mysqladmin -u root -p drop basedatos
LXXXVII.      Respaldo y restauración de bases de datos.
LXXXVIII.      Para respaldar una base de datos desde el anfitrión local, ejecute mysqldump con las opciones --opt (que añade automáticamente las opciones --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset y --disable-keys), la opción -u con el nombre de usuario a utilizar, la opción -p para indicar que se ingresará una contraseña, el nombre de la base de datos, > para guardar la salida estándar (STDOUT) en un archivo y el nombre del archivo donde se guardará el respaldo. Ejemplo:
mysqldump --opt -u root -p basedatos > respaldo.sql
LXXXIX.  Para restaurar un respaldo, ejecute mysql con las opciones -u con el nombre de usuario con privilegios sobre la base de datos a restaurar, -p para indicar que se utilizará contraseña, el nombre de la base de datos a restaurar, < para indicar que la entrada estándar (STDIN) será un archivo y el nombre del archivo con el respaldo de la base de datos. Ejemplo:
mysql -u root -p basedatos < respaldo.sql
XC.          Para respaldar todas la bases de datos hospedadas en MySQL™, ejecute mysqldump con las opciones --opt--all-databases para indicar que se respaldarán todas la bases de datos, la opción -u con root como usuario, la opción -ppara indicar que se utilizará contraseña, el símbolo > para guardar la salida estándar (STDOUT) en un archivo y el nombre del archivo donde se guardará el respaldo. Ejemplo:
mysqldump --opt --all-databases -u root -p > respaldo-todo.sql
XCI.        Para restaurar todas las bases de datos a partir de un único archivo de respaldo, ejecute mysql con la opción -u con root como usuario, la opción -p para indicar que se utilizará contraseña, el símbolo < para indicar que la entrada estándar (STDIN) será un archivo y el nombre del archivo con el respaldo de todas las bases de datos. Ejemplo:
mysql -u root -p < respaldo-todo.sql
XCII.       Permisos de acceso a las bases de datos.
XCIII.      Ingrese al intérprete de MySQL™ como root:
mysql -u root -p
XCIV.      Ejecute lo siguiente para asignar los permisos select (seleccionar), insert (insertar), update (actualizar), create(crear), alter (alterar), delete (eliminar) y drop (descartar) sobre las tablas de una base de datos al usuario pruebadesde el anfitrión local:
GRANT
 select, insert, update, create, alter, delete, drop
ON
 base-de-datos.*
TO
 usuario@localhost
IDENTIFIED BY
 'contraseña';
XCV.       Puede otorgar al usuario todos los permisos sobre la base de datos ejecutando algo similar a lo siguiente:
GRANT
 all
ON
 base-de-datos.*
TO
 usuario@localhost
IDENTIFIED BY
 'contraseña';
XCVI.      Ejecute algo similar al ejemplo anterior, pero definiendo el usuario y la dirección IP del anfitrión remoto para permitir el acceso hacia una base de datos desde un anfitrión remoto. Ejemplo:
GRANT
 select, insert, update, create, alter, delete, drop
ON
 directorio.*
TO
 usuario@192.168.70.2
IDENTIFIED BY
 'contraseña';
XCVII.    Puede otorgar al usuario todos los permisos sobre la base de datos ejecutando lo siguiente:
GRANT
 all
ON
 directorio.*
TO
 usuario@192.168.70.2
IDENTIFIED BY
 'contraseña';
XCVIII.   Ejecute algo similar a lo anterior, pero definiendo el nombre del usuario entre comillas simples, arroba y el símbolo % entre comillas simples para permitir el acceso hacia una base de datos desde cualquier anfitrión. Ejemplo:
GRANT
 all
ON
 directorio.*
TO
 'usuario'@'%'
IDENTIFIED BY
 'contraseña-usuario-usuario';
XCIX.    Optimización de MySQL.
C.            Deshabilitar la resolución de nombres de anfitrión.
CI.           MySQL mantiene un cache de anfitriones utilizados en la memoria, la cual contiene las direcciones IP, nombres de anfitrión y errores de información asociados a éstos. El cache sólo se utiliza para conexiones TCP remotas con otros anfitriones y jamás lo utiliza para conexiones a través de la interfaz de retorno del sistema (loopback, 127.0.0.1) o conexiones hechas a través del archivo de zócalo, tubería o bien memoria compartida.
CII.         MySQL™ utiliza la dirección IP del cliente para verificar si el nombre de anfitrión de éste está en el cache de anfitriones por cada nueva conexión. Se intentará resolver el nombre de anfitrión cuando el nombre es inexistente, resolviendo primero la dirección IP, luego resolviendo el nombre, comparando el resultado de la dirección IP original para verificar que correspondan. Luego esta información es almacenada en el cache de anfitriones.
CIII.        El objetivo del cache es evitar hacer nuevamente una consulta de DNS por cada conexión de cliente y evitar el almacenamiento de información de errores que ocurren en el proceso de conexión de los clientes. Cuando ocurren demasiados errores desde un anfitrión en particular y se rebasa el valor de la variable max_connect_errors (10, de modo predeterminado), se bloquea el acceso desde dicho anfitrión.
CIV.        Cuando un anfitrión es bloqueado, éste sólo podrá acceder de nuevo si se reinicia el servicio o si se limpia manualmente el cache de anfitriones. Ésto último se realiza ejecutando lo siguiente desde el intérprete de mandatos del sistema:
mysqladmin -p flush-hosts
CV.         Cuando se tiene un DNS muy lento, se carece de uno que resuelva los nombres de los anfitriones o bien se tiene demasiados anfitriones haciendo conexiones hacia el servidor, deshabilitar el cache de anfitriones o hacerlo más grande mejora el rendimiento considerablemente. La consecuencia de deshabilitar el cache de anfitriones es que en adelante sólo se podrán otorgar permisos de acceso y realizar conexiones utilizando direcciones IP, es decir utilizandousuario@a.b.c.d en lugar de usuario@anfitrión.dominio.tld.
CVI.        Para deshabilitar el cache de anfitriones se requiere editar el archivo /etc/my.cnf:
vi /etc/my.cnf
CVII.       Y añadir la siguiente opción en la sección [mysqld]:
skip-name-resolve
CVIII.     Guarde el archivo, salga del editor del texto y reinicie el servicio para aplicar los cambios.
CIX.        Si se desea hacer más grande el cache de anfitriones —cuyo valor predeterminado es 128 anfitriones— de debe cambiar el valor de HOST_CACHE_SIZE por cualquier valor entre 0 y 2048 y compilr MySQL™ desde código fuente —motivo por el cual es más práctico deshabilitar el cache de anfitriones.
CX.         Aumentar el tamaño de cache de consultas.
CXI.        Cuando se habilita el cache de consultas en memoria y se dispone de suficiente de ésta, el desempeño del servidor se incrementa considerablemente. El valor predeterminado del tamaño cache de consultas —query_cache_size— es 0, es decir está desactivado. Los valores permitidos son enteros múltiplos de 1024 (bytes). Para establecer un tamaño de cache de consultas de 32 MiB, el valor correspondiente para query_cache_size sería 33882112 bytes.
CXII.       Ingrese al intérprete de MySQL™ como root:
mysql -u root -p
CXIII.      Verifique el valor de la variable query_cache_size ejecutando lo siguiente:
SHOW VARIABLES LIKE '%query_cache%';
CXIV.      La salida será similar a la siguiente:
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| have_query_cache             | YES     |
| query_cache_limit            | 1048576 |
| query_cache_min_res_unit     | 4096    |
| query_cache_size             | 0       |
| query_cache_type             | ON      |
| query_cache_wlock_invalidate | OFF     |
+------------------------------+---------+
6 rows in set (0.00 sec)
CXV.       Ejecute lo siguiente para cambiar el valor de query_cache_size a 32 MiB:
SET GLOBAL query_cache_size = 33882112;
CXVI.      Verifique el cambio ejecutando lo siguiente:
SHOW VARIABLES LIKE '%query_cache%';
CXVII.    La salida será similar a la siguiente:
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 33882112 |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
6 rows in set (0.00 sec)
CXVIII.   Salga del intérprete de MySQL.
exit;
CXIX.      El cambio prevalecerá hasta que sea reiniciado MySQL. Edite el archivo /etc/my.cnf para que el cambio sea permanente:
vi /etc/my.cnf
CXX.       Añada la siguiente opción en la sección [mysqld]:
query_cache_size = 33882112
CXXI.      Reinicie el servicio para aplicar los cambios:
service mysqld restart
CXXII.     Ingrese al intérprete de mandatos de MySQL™ para verificar el estado del cache de consultas:
mysql -u root -p
CXXIII.   Realice algunas consultas al azar hacia cualquier base de datos MySQL™ hospedada en el servidor a fin de generar algo de actividad. Sólo la primera consulta será un considerablemente más lenta que las subsecuentes. El resto de las consultas deberán ser considerablemente más rápidas.
CXXIV.   Vuelva a ingresar al intérprete de mandatos de MySQL™ para verificar el estado del cache de consultas:
mysql -u root -p
CXXV.     Ejecute lo siguiente desde el intérprete de mandatos de MySQL™:
SHOW STATUS LIKE '%Qcache%';
CXXVI.   La salida puede ser similar a la siguiente:
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 1        |
| Qcache_free_memory      | 33864568 |
| Qcache_hits             | 0        |
| Qcache_inserts          | 0        |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 61       |
| Qcache_queries_in_cache | 0        |
| Qcache_total_blocks     | 1        |
+-------------------------+----------+
8 rows in set (0.00 sec)
CXXVII. Soporte para UTF-8.
CXXVIII. Algunas aplicaciones como vTigerCRM requieren se que configuré UTF-8 como codificación predeterminada. Edite el archivo /etc/my.cnf:
vi /etc/my.cnf
CXXIX.    Añada las siguientes líneas resaltadas:
[mysql]
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-name-resolve
query_cache_size = 33882112
collation_server=utf8_unicode_ci
character-set-server=utf8
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
CXXX.     Guarde los cambios y salda del editor de texto. Reinicie el servicio para que surtan efecto los cambios.
CXXXI.    Ejecute lo siguiente si utiliza ALDOS, CentOS o Red Hat™ Enterprise Linux:
service mysqld restart
CXXXII.  Ejecute lo siguiente si utiliza SUSE™ Linux Enterprise:
rcmysqld restart

Vídeo de como convertir o migrar una base de datos a MySql




A continuación estarán unos archivos que son con los que hemos estado trabajando y los pueden descargar para mejorar la información y que se comprenda mejor el tema.








No hay comentarios:

Publicar un comentario