viernes, 30 de agosto de 2013

Derechos a nivel campo #MySQL

Para #dar derechos a un usuario a nivel campo en una tabla dada:

SINTAXIS:
GRANT <UPDATE, SELECT...> (nombre_campo) ON nombre_tabla TO usuario@'localhost';


Ejemplo:
GRANT UPDATE, SELECT (email) ON agen TO clicw_coppel@'localhost';


Saludos

lunes, 19 de agosto de 2013

Herramienta para revisar replicación:

Las replicaciónes pueden ser un problema, ya que si no las estamos monitoreando, cuando las ocupemos realmente  y nos demos cuenta que no tenemos sincronizados al 100% los datos.

Ya que la replicación de MySQL no contiene una herramienta incluida para que nos ayude a confirmar que la información que se esta replicando, este aplicada al 100%, les recomiendo la siguiente  herramienta, la cual cuenta con algunos comandos interesantes, de mucha utilidad.

#maatkit

Para instalar en ubuntus:
apt-get install maatkit

Comandos:
 mk-table-checksum ó mk-table-sync 

 Altamente recomendados solo tendran que revisar los parametros que mas les convenga, si quieren algun ejemplo practico me lo hacen saber.

lunes, 5 de agosto de 2013

Agregar un valor consecutivo

En ocasiones requerimos agregar un valor #consecutivo a una tabla (ó consulta), les dejo el siguiente query que lo vi hace unos días bastante interesante, para este tipo de requrimientos.


SELECT  @numero_consecutivo:=@numero_consecutivo+1  consecutivo ,
tabla.campo 
FROM  nombre_tabla tabla,
(SELECT @numero_consecutivo:=0) r


Obviamente  tendremos que cambiar los valores, como nombre_tabla, por la tabla nuestra y el campo por el nombre del campo de la tabla que hicimos referencia.

Saludos.

miércoles, 24 de julio de 2013

Buscar archivos con cierta palabra o frase


Desde la consola de linux, queremos encontrar las lineas que hacen referencia a una palabra en específico.

Por lo general es muy util para consultar archivos de log de nuestros programas o de nuestro sistema operativo:


sintaxis:
cat nombrearchivo | grep -i palabraabuscar | less

Ejemplo:
cat /var/log/messages | grep -i pacoadmin | less

Saludos.

martes, 9 de julio de 2013

Tamaño tablas y arbol de directorios por consola

Para consultar el tamaño de las tablas de una base de datos MySQL tenemos el siguiente query que nos ayuda:

SELECT table_name, table_rows, data_length, index_length,
 round(((data_length + index_length) / 1024 / 1024),2) "Size in MB"
 FROM information_schema.TABLES WHERE table_schema = "nombre_basedatos"
ORDER BY 5;

Obviamente hay que cambiar el nombre de la base de datos y hay que tener derechos para consultar la base de datos information_schema.


viernes, 28 de junio de 2013

Delay en nuestra replicación a espejo #MySQL

Delay en replicación de datos a otro servidor "espejo".

Hace unos días se me presento, por descuido, un problema. A mas de alguno
le abra pasado que sin querer elimina una tabla (drop table nombretabla) y se da cuenta que la necesita en el mismo instante, para colmo esta tabla contiene información en linea, es decir el respaldo de la noche, te sirve pero no tanto.

Corremos al respaldo espejo y encontramos que la sentencia drop table ya fue ejecutada, la información se a perdido.

Bueno, pues existen diferentes maneras de intentar recuperar la información, tratar de recuperarla de los registros del disco duro, revisar algun log y reconstruir los datos ó un delay en el espejo?, hay varias opciones, cual sera la mejor y/o mas sencilla?.

Revisando un poco este ultimo concepto,(delay al espejo) en MySQL apartir de la versión 5.6, ya te permiten replicar la información y programarle un delay de tiempo, que les parese 5min, para revisar rapido el espejo, ante un problema de este tipo, se detiene la replicación al espejo y se comienza a recuperar la tabla, y esto es solo con un parametro de configuración dentro del archivo my.cnf.

CHANGE MASTER TO MASTER_DELAY = N;

donde N es el numero de segundos a esperar.

Aquí dejo el link por si quieren ondar en ello, yo apenas comenzare a provarlo, pero queria compartirlo por que parese interesante, en cuanto termine, hago mis observaciones.


Gracias y saludos.

lunes, 24 de junio de 2013

Recomendación de organización.

Cuando entren a una organización y se encuentren con la sorpresa de falta de control en procesos(procesos me refiero hasta de reglas para progarmar), recomiendo que almenos por lo que les respecta a ustedes, busquen automatizar o implementar ciertas reglas  de desarrollo. Esto ahorrara muchisimo tiempo de re-analisis y re-programación.

Pueden comenzar con cosas básicas como en vez de cortar y pegar codigo, para ejecutar un query(php, mysql o lo que gusten) en diferentes lugares de la aplicación(diferentes opciones), pues mejor creen una funcion (ó procedimiento) que por si algun motivo de cambio de reglas de la organización se tiene que modificar esa logica, pues que nomas lo tengan que hacer en un solo lugar y no tengan que andar buscando por todo el sistema, donde se encuentra un código que mueva lo mismo.

Igual de importante es tener documentadas estas funciones, que pudieramos llamar genericas, y que esten a la mano de los programadores para que cuando requieran utilizarlas puedan tener a la mano documentación de su uso y el resultado que obtendran con ella.

Algunos sabran a lo que me refiero y les hara sentido de primera instancia, otros aprendemos a la maña.

"Planear lo que se va a realizar, nos ahorrar mucho tiempo"
Parese una frase muy repetida, pero cada letra esta llena de verdad y hasta se queda corta. Aveces el planear hasta nos ayuda a entretenernos más en el trabajo. Resultado: Mayor producción, mas rapido se va el día, mejor hacemos nuestro trabajo, mayor satisfacción con uno mismo y con la organización, y sumale que si lo aplicas a tu vida personal.. produciras en todos los ambitos.

Suerte y a hecharle ganas.