mysql

Mysql

Logo 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:

  1. Crear un usuario y un grupo que se llamen mysql
  2. Descomprimir y compilarlo
  3. Usar un fichero de configuración por defecto
  4. Poner como propietario de los ficheros instalados al usuario y grupo creados para ello
  5. Ejecutar el script mysql_install_db indicándole el usuario que tendrá que usar (mysql)
  6. 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