El dia de hoy haciendo unas pruebas con un software con una base de datos Mysql me encuentro que al pasar la base de datos desde Windows a Linux la aplicación no funciona. Tiraba un error de que no encontraba una tabla, después de revisar un poco encontré que el problema es que la aplicación estaba programada sin tener en cuenta las mayusculas y minisculas pero en Windows no había generado problemas. Después de googlear un ratito me encontré en este blog http://tdk-techspot.blogspot.com/2008/06/como-hacer-mysql-not-case-sensitive.html que había tenido el mismo problema.
La solución es muy simple
1. /etc/init.d/mysql stop
2. vim /etc/mysql/my.cnf
3. Agregamos en la sección [mysqld]
lower_case_table_names = 1
4. /etc/init.d/mysql stop
Y listo, nuestro mysql ahora ya no es case sensitive
Igualmente lo correcto sería seguir un estandar de programación.
Mostrando entradas con la etiqueta Tips Base de Datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tips Base de Datos. Mostrar todas las entradas
lunes, 16 de marzo de 2009
miércoles, 21 de enero de 2009
Errores de MSSQL 2000/2005
Estuve renegando toda la mañana con un servidor de MSSQL express 2005 el cual estaba dentro de una VM y de la nada ayer se chifló y dejó de arrancar. Como siempre en casa de herrero... y no había echo backup de la VM. Una vez que arranco el SO y el SQL al querer adjuntar la base de datos tenía los 2 archivos base_Data.mdf y base_log.ldf me tiraba un error 5173 con un msj que no se podia adjuntar buscando un poco encontré que borrando el archivo de transacciones .ldf se podía solucionar.
El otro error que me dio fue tratar de importar la base echo en MSSQL 2005 al MSSQL2000 y tiraba el error 602 , googleando me llevó a esta pagina http://sqlast.blogspot.com/2007/12/error-3205restaurar-bbdd-de-sql-2005.html donde explica como se puede solucionar. No voy a transcribir ya que al final no tuve la necesidad de hacerlo , ya que con el MSSQL 2005 pude solucionar el problema en ese mismo servidor.
El otro error que me dio fue tratar de importar la base echo en MSSQL 2005 al MSSQL2000 y tiraba el error 602 , googleando me llevó a esta pagina http://sqlast.blogspot.com/2007/12/error-3205restaurar-bbdd-de-sql-2005.html donde explica como se puede solucionar. No voy a transcribir ya que al final no tuve la necesidad de hacerlo , ya que con el MSSQL 2005 pude solucionar el problema en ese mismo servidor.
martes, 28 de octubre de 2008
Script de backup Mysql
Esté script está copiado de howtoforge.net y aunque no lo probé me lo copio para no perderlo
#!/bin/sh
# System + MySQL backup script
# Copyright (c) 2008 Marchost
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------
#########################
######TO BE MODIFIED#####
### System Setup ###
BACKUP=YOUR_LOCAL_BACKUP_DIR
### MySQL Setup ###
MUSER="MYSQL_USER"
MPASS="MYSQL_USER_PASSWORD"
MHOST="localhost"
### FTP server Setup ###
FTPD="YOUR_FTP_BACKUP_DIR"
FTPU="YOUR_FTP_USER"
FTPP="YOUR_FTP_USER_PASSWORD"
FTPS="YOUR_FTP_SERVER_ADDRESS"
######DO NOT MAKE MODIFICATION BELOW#####
#########################################
### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
### Today + hour in 24h format ###
NOW=$(date +"%d%H")
### Create hourly dir ###
mkdir $BACKUP/$NOW
### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
### Create dir for each databases, backup tables in individual files ###
mkdir $BACKUP/$NOW/$db
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
do
FILE=$BACKUP/$NOW/$db/$i.sql.gz
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
done
done
### Compress all tables in one nice file to upload ###
ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -cvf $ARCHIVE $ARCHIVED
### Dump backup using FTP ###
cd $BACKUP
DUMPFILE=$NOW.tar.gz
$FTP -n $FTPS < quote USER $FTPU
quote PASS $FTPP
cd $FTPD
mput $DUMPFILE
quit
END_SCRIPT
### Delete the backup dir and keep archive ###
rm -rf $ARCHIVED
#!/bin/sh
# System + MySQL backup script
# Copyright (c) 2008 Marchost
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------
#########################
######TO BE MODIFIED#####
### System Setup ###
BACKUP=YOUR_LOCAL_BACKUP_DIR
### MySQL Setup ###
MUSER="MYSQL_USER"
MPASS="MYSQL_USER_PASSWORD"
MHOST="localhost"
### FTP server Setup ###
FTPD="YOUR_FTP_BACKUP_DIR"
FTPU="YOUR_FTP_USER"
FTPP="YOUR_FTP_USER_PASSWORD"
FTPS="YOUR_FTP_SERVER_ADDRESS"
######DO NOT MAKE MODIFICATION BELOW#####
#########################################
### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
### Today + hour in 24h format ###
NOW=$(date +"%d%H")
### Create hourly dir ###
mkdir $BACKUP/$NOW
### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
### Create dir for each databases, backup tables in individual files ###
mkdir $BACKUP/$NOW/$db
for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
do
FILE=$BACKUP/$NOW/$db/$i.sql.gz
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
done
done
### Compress all tables in one nice file to upload ###
ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -cvf $ARCHIVE $ARCHIVED
### Dump backup using FTP ###
cd $BACKUP
DUMPFILE=$NOW.tar.gz
$FTP -n $FTPS <
quote PASS $FTPP
cd $FTPD
mput $DUMPFILE
quit
END_SCRIPT
### Delete the backup dir and keep archive ###
rm -rf $ARCHIVED
domingo, 24 de febrero de 2008
Cambiar pass de root mysql
Este es uno de los metodos que encontré googleando para cambiar la pass de Mysql , realmente estoy empezando con mysql y esto me sirvió..
mysqld_safe --skip-grant-tables &
use mysql
update user set password=password ("aqui_tu_clave")
where user="root";
Esto salió hoy en howto y es otro metodo acá lo dejo...
mysqld_safe --skip-grant-tables
mysql --user=root mysql
update user set Password=PASSWORD('new-password');
flush privileges;
exit;
mysqld_safe --skip-grant-tables &
use mysql
update user set password=password ("aqui_tu_clave")
where user="root";
Esto salió hoy en howto y es otro metodo acá lo dejo...
mysqld_safe --skip-grant-tables
mysql --user=root mysql
update user set Password=PASSWORD('new-password');
flush privileges;
exit;
Suscribirse a:
Entradas (Atom)