Mysql
Introducción
MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario.
Instalación y desinstalación
En linux
Desde los repositorios
Instalación
Para instalar mysql desde los repositorios tendremos que instalar los siguientes paquetes ejecutando las siguientes ordenes o instalandolos con nuestro gestor de paquetes gráfico.
El paquete mysql-server es el servidor:
>> sudo aptitude install mysql-server
Si vamos a usar php5 con mysql tendremos que instalar el paquete php5-mysql que es la extensión que comunica mysql con php5:
>> sudo aptitude install php5-mysql
También instalaremos el paquete libapache2-mod-auth-mysql que es la extensión que comunica apache con mysql:
>> sudo aptitude install libapache2-mod-auth-mysql
Desinstalación
Si lo hemos desinstalado desde los repositorios, para desinstalarlo tenemos que quitar los paquetes indicados anteriormente:
>> sudo aptitude purge mysql-server libapache2-mod-auth-mysql php5-mysql
Desde el código fuente
Instalación
Los pasos a seguir para compilar, instalar y configurar mysql son:
- Crear un usuario y un grupo que se llamen mysql
- Descomprimir y compilarlo
- Usar un fichero de configuración por defecto
- Poner como propietario de los ficheros instalados al usuario y grupo creados para ello
- Ejecutar el script mysql_install_db indicándole el usuario que tendrá que usar (mysql)
- Poner como propietario de los ficheros instalados al root menos los de la carpeta var
Hacemos los pasos:
>> groupadd mysql >> useradd -g mysql mysql >> gzip -d mysql-5.0.37.tar.gz >> tar -xvf mysql-5.0.37.tar >> cd mysql-5.0.37 >> ./configure --prefix=/usr/local/mysql >> make >> sudo make install >> sudo cp support-files/my-medium.cnf /etc/my.cnf >> cd /usr/local/mysql >> sudo chown -R mysql . >> sudo chgrp -R mysql . >> sudo bin/mysql_install_db --user=mysql >> sudo chown -R root . >> sudo chown -R mysql var >> sudo bin/mysqld_safe --user=mysql &
Desinstalación
Desde la carpeta que hemos descomprimido antes, tendremos que ejecutar el siguiente comando:
>> sudo make uninstall
Configuración
Conexion remota
Para que mysql acepte peticiones desde otras máquinas tendremos que ir al fichero my.conf y buscar la línea bind-address para sustituir 127.0.0.1 por la ip de la máquina donde hemos instalado mysql. Por ejemplo si lo hemos instalado en una máquina de ip 65.234.132.253 tendremos que editar la línea para dejarla así:
bind-address = 65.234.132.253
Para poder conectarnos con root a mysql desde otro ordenador tendremos que ejecutar las siguientes ordenes:
>> mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 33 Server version: 5.0.75-0ubuntu10.2 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CONTRASEÑA_ROOT' WITH GRANT OPTION; Query OK, 0 rows affected (0.02 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
Usuario y contraseña por defecto
Por defecto el usuario es root y no tiene contraseña.
Cambiar la contraseña del root
Para cambiar la contraseña de root (por ejemplo a clave04root):
>> /usr/local/mysql/bin/mysqladmin -u root password 'clave04root'
Archivo de configuración
El archivo de configuración puede estar en las siguientes rutas:
/etc/mysql/my.cnf
Backup sin interrumpir
http://www.howtoforge.com/back_up_mysql_dbs_without_interruptions
OTRA de BACKUP http://www.trensim.com/javierav/archives/70
BACKUP A MAIL http://www.dbrunas.com.ar/article.php/20070306060303695
Hacer una copia de seguridad
Creamos un arhivo dbbackupdaily.sh y le ponemos el siguiente contenido:
#!/bin/sh #created by Alexander Sea #Daily Backup #version 1.0 DIR="path-of-your-backup-folder" datestr=$(date +%m-%d-%Y) uname="your-mysql-user-name" passwd="your-password" ##mysql databases mysqldump --user=$uname --password=$passwd --opt yourDB1 > $DIR/$datestr-yourMySQLDB1.sql mysqldump --user=$uname --password=$passwd --opt yourDB2 > $DIR/$datestr-yourMySQLDB2.sql mysqldump --user=$uname --password=$passwd --opt yourDB3 > $DIR/$datestr-yourMySQLDB3.sql ##postgresql databases pg_dump -U postgres yourPGDB > $DIR/$datestr-yourPGDB.sql ## END OF THE SCRIPT
Lo añadimos al cron para que lo ejecute diariamente:
10 1 * * 1-5 sh /DBbackup.sh
3. $ crontab cronweekdays.txt
4. To view the list of cron jobs:
>> crontab -l