Jul
29
2009
0

MySQL ERROR 1005 (HY000): Can’t create table ‘NameTable.frm’ (errno: 150)

This error 150 means “MySQL error code 150: Foreign key constraint is incorrectly formed”

So the common problem occurs if you try to create a new table with a foreign key without the table source FK (the source table doesn’t exist into DB ), the solution is create first the table source of the FK and then the another one.
or
Disable constraints check with:

SET FOREIGN_KEY_CHECKS = 0;

To enable check constraints

SET FOREIGN_KEY_CHECKS = 1;
Written by doutdex in: Base de Datos | Tags:
Jul
12
2009
1

Timestamp en php y mysql

Es algo común tener que estar guardando fechas en la base de datos, sin embargo, es recomendable definir cual será la fuente para la base del tiempo, es decir, puede que pase que existen dos servidores el primero que mantiene a la aplicación y el segundo que tiene a la base de datos y podría pasar en el caso que no estén sincronizados por un servidor npt que el tiempo difiera y en el caso más pesimista hasta que en una haya cambiado la zona horaria y en el otro no.
Esto pasa al momento de obtener el tiempo para guardarlo en la base de datos, en el caso que obtengamos el tiempo usando una función en PHP estaremos obteniendo el tiempo del servidor que mantiene a la aplicación PHP, en el caso que dentro del QUERY la función NOW() esta corresponde a MYSQL y en este caso se retornala fecha y tiempo del servidor de la base de datos.

Lo correcto es definir al sistema u aplicación bajo uno de los dos para el efecto de llevar el tiempo y zona correcta.

CASO PHP:

Al crear dentro de una tabla MYSQL un campo del tipo DATETIME
Para poder insertar la fecha y tiempo en el formato (por defecto) correcto de MySQL usando PHP se hace con

Guardar en MySQL usando función de tiempo PHP
< ?

 date('Y-m-d H:i:s', time());

?>

Recuperar fecha MySQL en una variable PHP

Se debe usar la función srttotime

 $phpdate = strtotime( $fechaFromMySQL );

CASO BD:
En este caso dentro del insert en el lugar del valor del campo datetime se utiliza la funcion now(), favor considerar que el siguiente ejemplo tiene una tabla de nombre “usuario” y que tiene 3 campos del varchar los dos primeros asociados al nombre y apellido mas el tercer campo de timestamp al cual se le asocia el valor de la funcion NOW() que devuelve la hora local que tiene el servidor MYSQL del server donde se ejecuta la query.

ejm:

 INSERT INTO usuario VALUES ( 'juan','perez',now());

El ejemplo anterior no se debe usar por ahorrarse un par de lineas al realizar aplicaciones robustas dado que los valores se asocian segun el orden determinado en el show table de mysql, sirve para un test rapido cuando uno esta conectado a la consola, debido a esto lo correcto es insertar los valores asociados a una tabla indicando el nombre de cada uno de los campos estableciendo el orden de los valores a insertarse en el mismo query a continuacion de la misma sentencia sql.

El ejemplo real de uso es:

INSERT INTO usuario(nombre,apellidos, fecha_actual) VALUES ('Juan','perez',NOW());


select NOW();

Referencias:

bigroom

http://en.wikipedia.org/wiki/Insert_(SQL)

Written by doutdex in: Uncategorized | Tags: , , ,
Jun
20
2009
0

Backup database -base de datos- mysql en archivo con cron con timestamp date fecha

Amigos un ejemplo practico de respaldar una base de datos:

Comandos:
1) Editar el archivo de crones para el usuario

crontab -e

2) Agregar una línea indicando cada cuanto se va ejecutar, para este ejemplo puntual el cron se ejecutará semanalmente todos los días Lunes a las 10:30 de la mañana.

30 10 * * mon date=`date "+%Y%m%d%H%M"`;mysqldump --host DOMAINDB -u USERNAME -pPASSWORD BDNAME &gt;/RUTADESTINO/backupBD_$date.sql

El resultado es el backup de una BD con nombre “BDNAME” es un host remoto de mysql “DOMAINDB” con usuario “USERNAME” y clave “PASSWORD”, este backup se guarda en un archivo de texto con un nombre y la fecha tipo timestamp quedando asi:
backupBD_200906201008.sql

Written by doutdex in: Base de Datos,Linux,Mysql,Ubuntu,Unix | Tags: , , ,
Mar
12
2009
0
May
15
2008
0

Instalar Mysql 6.0 en windows XP

MYSQL
Primero ir a www.mysql.com descargar la ultima versión, la versión autoinstalable.

Luego instalar por defecto, siguiente si sabes que ese puerto esta usado para algo cambiarlo sino dejarlo, 3306, y dejar la contraseña para root

(more…)

Written by doutdex in: Base de Datos,Mysql | Tags:
Dec
05
2007
0

Guías de referencia (cheat sheets) lenguajes de programación (desarrollo)

Una recopilación con cheet sheets para varios lenguajes (php,java,asp,html,etc), nunca esta mal tenerlas a mano.

Lista de cheat Sheets

Written by doutdex in: Cheatsheets | Tags: , , , ,
Oct
29
2007
0

Conexión a mysql desde PHP, buscar

Aquí indico como hacer una conexión a mysql (BD) usando PHP

Primero debemos configurar la Base de datos, es decir, tener creada una BD (miBD) con un usuario(miUSER) y contraseña (miPASS) con permisos para leer y escribir dentro de ella, sabiendo esto, y alguna tabla conocida previamente creada ejm: ‘documents’, se utilizarán 2 archivos:

1 _bd.php : Contiene los datos de conexión a la BD y funciones que buscan, eliminan y modifican en la BD.

2 prueba.php : Éste archivo llama a la función de _bd.php y despliega en pantalla el resultado de la búsqueda BD.

(more…)

Written by doutdex in: Base de Datos,Mysql | Tags: ,
Oct
16
2007
1

Mini tutorial comandos Mysql

Conexión MySQL Client

mysql -u -h -P -p

Ejemplo de conexión utilizando usuario “root” desde la consola:

#$ mysql -u root -p
Enter password: #####
Welcome TO the MySQL monitor. Commands end WITH ; OR g.
Your MySQL connection id IS 89 TO server version: 4.1.11-Debian_4-log
Type 'help;' OR 'h' FOR help. Type 'c' TO clear the buffer.
mysql>

Trabajando con Bases de Datos – Creación de BBDD
(more…)

Written by doutdex in: Mysql | Tags: , ,