Como agregar UNIQUE constraint en una tabla existente MySQL

Para agregar un UNIQUE Constraint en una tabla existente en MySQL lo podemos realizar de la forma siguiente:

ALTER TABLE
    table_name
ADD CONSTRAINT
    unique_name
UNIQUE
    (field1, field2, field3);

Modificar la estructura de una tabla en MySQL

Estas son algunas sentencias SQL las cuales nos permiten modificar la estructura de una tabla que ya existe en nuestra Bases de Datos, para todos los ejemplos el nombre de la tabla será empleados:

Reestablecer o setear el valor AUTO_INCREMENT a 1:

ALTER TABLE empleados AUTO_INCREMENT = 1;

 

Asignar password a la cuenta de root en MySQL

Inicialmente después de la instalación de MySQL se crean dos cuentas con el nombre de usuario root las cuales no tienen asignada ninguna contraseña, esto quiere decir que cualquier persona tiene la capacidad de conectarse al servidor con la cuenta de root sin indicar ninguna contraseña y obtener todos los privilegios del superusuario quedando expuesta la seguridad.

Establecer contraseñas para las cuentas de root de MySQL es sumamente sencillo y rápido de realizar, para efectos de este manual utilizaremos SET PASSWORD:

Nos conectamos al servidor con la cuenta de root

shell> mysql -u root

Ejecutamos la sentencia SET PASSWORD

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpassword');

El valor de host_name debe ser reemplazado con el nombre del host del servidor, si no es posible determinar este valor ejecutamos la siguiente sentencia:

mysql> SELECT Host, User FROM mysql.user;

Es el nombre que aparece en la columna Host para el usuario root que no es localhost en la tabla user.

Notese que en ambos casos estamos empleando la función PASSWORD() para encriptar el valor de la contraseña.

Fuente:
http://mysql.com

OSClass para crear sitios web de anuncios clasificados

OSClass

OSclass es un CMS con el cual podemos crear un sitio web de clasificados de manera fácil y sencilla, está desarrollado en PHP y utiliza MySQL como base de datos, dispone de una buena lista de plugins y templates que lo hacen sumamente flexible, la documentación oficial es bastante clara y existe mucha información del proyecto en la web así como también los foros de ayuda están activos.

El proceso de instalación es muy sencilla y el panel de administración es similar a WordPress, asi es que has utilizado este último te resultará muy familiar.

Sin duda OSClass es una muy buena opción cuando tengas la necesidad de montar un sitio de avisos clasificados.

Sitio oficial del proyecto: http://osclass.org.

Función extract de MySQL

Estos días he estado realizando algunos reportes de MySQL y he utilizado la función extract() la cual se encarga de extraer partes de la fecha/hora, la forma de utilizarla es muy sencilla.

SINTAXIS:
EXTRACT(type FROM date)

EJEMPLOS:

Año
SELECT extract(YEAR from now());

Mes
SELECT extract(MONTH from now());

Día
SELECT extract(DAY from now());

Año y mes
SELECT extract(YEAR_MONTH from now());

Hora
SELECT extract(HOUR from now());

Minuto
SELECT extract(MINUTE from now());

Minuto y segundo
SELECT extract(MINUTE_SECOND from now());

En los ejemplos anteriores estoy ocupando la función now() pero también puedes aplicar extract a curdate() o curtime().

Exportar a un fichero el resultado de una consulta en MySQL

Si quieres exportar a un fichero la información que tienes almacenada en una tabla, en MySQL es relativamente sencillo, la sentencia INTO OUTFILE es la encargada de realizar el trabajo, y la cual vamos a combinar con la claúsula SELECT, veamos unos ejemplos:

Fichero CSV:

mysql> SELECT * FROM clientes
    -> INTO OUTFILE '/home/user/clie.csv'
    -> FIELDS TERMINATED BY ','
    -> OPTIONALLY ENCLOSED BY '\"'
    -> LINES TERMINATED BY '\n';

Exportamos la información contenida en la tabla clientes a un fichero .CSV, los campos los separamos mediante una coma y los encerramos entre comilla doble (“) e indicamos que cada línea termine con un salto de linea.

Fichero .TXT

mysql> SELECT * INTO OUTFILE '/home/user/clientes.txt' FROM clientes;

Exportamos la información a un archivo de texto plano, los campos estarán separados mediante un espacio en blanco y cada que finalice una fila, ésta terminará mediante un salto de linea.

Para los usuarios Windows.

El salto de linea se indica mediante (\r\n) a diferencia de los SO basados en Unix (\n).
En el nombre de los path utilizamos el caracter “\” como separación, pero éste puede causar errores por ser un caracter de escape en MySQL, entonces puedes utilizar alguna de las siguientes alternativas:

    a) Usar el caracter “/” al estilo Unix:
       SELECT * INTO OUTFILE 'C:/tmp/clientes_backup.txt' FROM clientes;

    b) Usar el doble caracter “\”:
       SELECT * INTO OUTFILE 'C:\\tmp\\clientes_backup.txt' FROM clientes;

Fuente:
http://dev.mysql.com/doc/refman/5.0/en/
http://www.harecoded.com/exportar-consulta-mysql-fichero-csv-945014

Instalación de MySQL en Linux

Aqui les dejo los pasos para instalar desde las fuentes el gestor de base de Datos MySQL (versión 5.1.39 al momento de realizar este manual):
La instalación se llevó a cabo en Slackware 12.2, aunque no debería tener problemas en alguna otra distro.

Nos descargamos las fuentes desde la página oficial desde el siguiente enlace:
http://dev.mysql.com/downloads/

La ruta de descarga en tu sistema es opcional puede ser (/usr/src/, /opt/ ).

como root:

Primeramente vamos a crear el grupo mysql en nuestro sistema:
# groupadd mysql

Creamos el usuario mysql y lo agregamos al grupo que acabamos de crear:
# useradd -g mysql mysql

Descomprimimos y desempaquetamos las fuentes:
# tar -xzvf mysql-version.tar.gz

El comando anterior nos crea un directorio llamado mysql-version, nos movemos a él:
# cd mysql-version

Configuramos la instalación y compilamos:
#./configure --prefix=/usr/local/mysql --with-plugins=innobase

Nota: puedes añadir mas opciones al comando ./configure, la lista completa de éstas se despliegan ejecutando ./configure --help

# make >& make.log &

Ahora procedemos a instalar:
# make install >& install.log &

Copiamos el archivo de configuración de opciones:
# cp support-files/my-medium.cnf /etc/my.cnf

Ingresamos al directorio de la instalación:
# cd /usr/local/mysql/

Construimos las tablas que contendrán los permisos:
# bin/mysql_install_db --user=mysql

Procedemos a cambiar los atributos de propietario y grupo a los siguientes ficheros:

Hacemos propietario al usuario root todos los ficheros que estan debajo del directorio de instalación.
# chown -R root .

Ahora al directorio var le asignamos como propietario el usuario mysql, recuerda que aqui es la ubicación donde se almacenarán los datos:
# chown -R mysql var

Finalmente modificamos el atributo de grupo para que todos los ficheros pertenezcan al grupo mysql.
# chgrp -R mysql .

Listo ahora sólo falta iniciar el demonio de MySQL:

# /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var/ --user=mysql &

Para lograr que MySQL se inicie al arranque del S.O. (basados en scripts de arranque tipo BSD) tendras que realizar lo siguiente:

Copiar el archivo support-files/mysql.server (el cual se encuentra dentro de la carpeta principal de las fuentes) a /etc/rc.d/ :
# cp path_de_tus_fuentes/support-files/mysql.server /etc/rc.d/mysql.server

Le otorgamos permisos de ejecucion.
# chmod +x /etc/rc.d/mysql.server

Posteriormente le agregamos una nueva linea a nuestro archivo /etc/rc.d/rc.local asi:
# echo '/etc/rc.d/mysql.server start' >> /etc/rc.d/rc.local

Listo!, la próxima ves que inicies tu equipo, arrancará MySQL automáticamente.

Fuentes:
http://dev.mysql.com/doc/refman/5.0/en/index.html

A %d blogueros les gusta esto: