Showing posts with label mysql. Show all posts
Showing posts with label mysql. Show all posts

Friday, July 06, 2007

charset y collation en mysql

y pues .. ahora tenia una duda con respecto a estos dos terminos q mysql usa siempre, y es que en mysql, los valores por defecto son:

charset : latin1 (conjunto de carateres)
collatIon: latin_swedish_ci (conjunto de reglas)

lo cual significa que el universo de caracteres disponibles para este mysql son los q pertenecen a latin1 y que el conjunto de reglas para su gestion (mas q todo a la hora de comparar cadenas) es latin_swedish_ci.

collation tiene una nomenclatura:

charset_nameCollation_xx

donde:
"charset" puede ser: latin1, utf8, ascii, etc...
"nameCollation" puede ser: german1, swedish, general, spanish, etc...
"xx" puede ser: "ci" si no distingue entre may. y minusculas, "cs" si distingue, "bin" de tipo binario.

y q es el latin1, pos no es mas q el: ISO-8859-1, el q tiene el conjunto de caracteres pertenecientes a la mayoria de paises de europa occidental, donde ovbiamente esta el español.

pero mi curiosidad iba un poco mas alla, dado q trabajando en con esta collation, al transportar los datos, las ñ y los acentos eran cambiados por caracteres extraños...

hice una prueba con una db local, la cual hice un backup, borre y restaure... y todo parecia normal, luego me di cuenta q el detalle era q cuando transportaba los archivos, tenia q hacer demostraciones en una pc con windows, y luego la restaurarlo en una pc con linux, y es alli el problema

parece q al generar un backup con linux y correrlo en una pc con windows, no era del todo compatible.

conclusion: windows sucks !!!!!

jejeje xD

Monday, July 02, 2007

problema de mysql en red

el otro dia tuve q solucionar un problema q me llamo la atencion de mysql, y es que pensaba q con solo dar la ip del servidor a una maquina clinte sobre windows, su usuario y pass era todo

usar mysqladministrator:

host: nro_ip_servidor
port: 3306
user: nameuser
pass: ********


tambien probe desde consola:

mysql -h nro_ip_servidor -u nameuser -p

y mi sorpresa... error!! :S
que paso ??

luego de un rato de buscar en la red, alabado sea san google xD, encontre la solucion, en el archivo de configuracion de mysql, q normalmente en las distribuciones derivadas de debian es /etc/mysql/my.cnf, hay una parte q debemos desabilitar, por defecto esta:

bind-address = 127.0.0.1

hay q colocar

# bind-address = 127.0.0.1

parece q por defeto, mysql no te permite trabajar en red, por seguridad, una vez q comentamos este detalle, ya podemos trabajar en red sin problemas.

ojo: hay q tener en cuenta la seguridad... no olvidar, estamos hablando de un servidor para desarrollo, no para produccion.

saludos xD

velocidad de mysql en red

y bueeeno, luego de sufrir algunas cosas con la pc del trabajo, decidi una cosa...

FORMATEAR !!!

sist. operativo a colocar: xubuntu... yeah !!!

y pos luego de eso... todo bien... instalar con sinaptic apache, php y mysql...
hecho...

descargar y configurar phpmyadmin...
hecho...

listo, mi pc esta lista para desarrollo y para q sirva de servidor de DB para pruebas
de las otras pc de la oficina... (tienen windows ps... q mas esperan??)

antes de formatear saque un backup de la DB de pruebas, y ahora a restauralas...

mysql -u root -p universidad < universidad.sql
hecho...

luego creacion de los usuarios q tenia la DB
hecho...

fijo mi ip estatico
hecho...

les doy a todos el ip, con sus cuentas y sus password
hecho...

phpmyadmin funciona bien

hay un par de aplicaciones q hacen las pruebas localmente, pero usando la DB remota, en este caso, mi pc

PROBLEMA ?

pues el tiempo de respuesta es... lento... pareciera q estuviera en internet con modem!!!
y supuestamente estamos en la misma red :S

buscando en internet... en /etc/mysql/my.cnf, agregar...

###############

[mysqld]
.....
......
skip-name-resolve

###############

para q resolver nombres de DNS si solo estamos trabajando en la red local?

y ya... ahora si todo ok !!!

espero q esto pueda servir a alguien.

Nota completa: how to optimize mysql response time