Instalación

Instalaremos los paquetes de MySQL de los repositorios de Debian con:
#apt-get install mysql-server
La primera medida a tomar para preservar la seguridad de nuestras bases de datos es poner contraseña al usuario root puesto que su contraseña por defecto está en blanco.
$ mysqladmin password Contraseña

No deberemos olvidar tampoco habilitar el archivo de log (que por defecto no está indicado). Para esto, descomentaremos en /etc/mysql/my.cnf la siguiente línea:
log = /var/log/mysql.log



Crear una BD

$ mysqladmin -u root -p create nombredb
O también dentro de MySQL:
mysql> create database nombredb;


Crear un usuario


Para crear un usuario y darle permisos ejecutamos:

mysql> grant all on bd.* to usuario@localhost IDENTIFIED BY 'pass'
mysql> flush privileges;



Ver los usuarios de MySQL

SELECT * FROM mysql.USER;



BD Físicamente


Las bases de datos, físicamente se encuentran en el directorio: /var/lib/mysql



Hacer un backup de la BD

Hacer backup de la base de datos (estructura + datos):
$ mysqldump --opt --password=pass --user=usuari nombre_de_la_base_de_datos > archivo.sql

Para luego cargarla de nuevo:
$ mysql -h servidor -u usuario -p nombre_de_la_base_de_datos < backup.sql


Borrar una BD

$DROP DATABASE nombre_de_la_base_de_datos;


Volcar el resultado de una select a un fichero

SELECT * FROM tabla WHERE USER LIKE '%fernan%' INTO OUTFILE '/tmp/fernan.txt'


Consultas directas

mysql -e "select * from TPersona" nombre_BD -p


Mostrar las BD de MySQL

mysqlshow -u root -p


Mostrar tablas de una BD

mysqlshow -u root -p nombre_BD


Mostrar el contenido de una determinada tabla

mysqlshow -u root -p nombre_BD TPersona


Reemplazar valores almacenados dentro de los campos de nuestra BD


Usaremos la función SQL replace
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://www.antiguo.com','http://www.nuevo.com');
En este ejemplo, vemos que de la tabla wp_posts cambiaremos el contenido de post_content, que es el campo de la tabla que contiene el contenido de los posts, con el mismo contenido al que previamente le habremos cambiado todas las apariciones de http://www.antiguo.com por la ruta http://www.nuevo.com.


Optimizar la BD


OPTIMIZE TABLE debe ser usado si ha borrado una gran parte de una tabla o si ha hecho muchos cambios a una tabla con filas de longitud variable (tablas que tienen columnas VARCHAR, BLOB o TEXT). Los registros borrados son mantenidos en una lista enlazada y las subsecuentes operaciones INSERT reusan las posiciones de los registros anteriores. Puede utilizar OPTIMIZE TABLE para reclamar ese espacio inutilizado y para desgragmentar el archivo con los datos.

Ver variables de mysql

mysql -p -uroot -e 'show variables'

Ver procesos de mysql


Puedes contar fácilmente los procesos de MySQL que en un instante dado se estén ejecutando en el sistema con el siguiente comando:
mysql -p -uroot -e 'show processlist' | wc -l

Modificar el número máximo de conexiones


Para cambiar los valores de configuración de MySQL, debemos editar el fichero /etc/my.cnf:

[mysqld]
set-variable=max_connections=200


Y luego reiniciar MySQL, para que lea las nuevas variables de configuración.
El número de conexiones máximas hay que tenerlo bien controlado, porque puede saturar de trabajo al servidor y llegar a hacerlo caer o ponerlo en estado off-line. Las plataformas potentes, como Linux u otros Unix, pueden aguantar fácilmente 500 ó 1.000 conexiones. Depende mucho de la memoria que tenga disponible el sistema.

Si queremos saber qué valor poner, podemos comprobar el número máximo de conexiones que ha necesitado nuestro servidor con esta sentencia SQL:

SHOW STATUS LIKE 'max_used_connections';
[[http://www.codex.org/2006/06/01/mediawiki-ldap-authentication/|]]

Tuneando MySQL