Archivo de la etiqueta: MySql

Tablas para almacenar usuario y claves (MD5 y SHA1)

Estoy planteándome un sistema de LOGIN de usuario/contraseña para mi página web desarrollada en PHP. Entonces llega el momento en el que debo almacenar los datos en MySQL.

Lo primero que uno piensa es en crear una tabla llamada USUARIO con dos campos de tipo VARCHAR:

– Usuario

– Contraseña

Pero esto supone que cualquier usuario de MySQL con derechos de consulta a la tabla USUARIO podrá ver las contraseñas de todo el mundo.

MD5(str)

Calcula una checksum MD5 de 128-bit para la cadena. El valor se retorna como una cadena binaria de dígitos 32 hex ,o NULL si el argumento era NULL. El valor de retorno puede usarse como clave hash, por ejemplo.

mysql> SELECT MD5('testing');
        -> 'ae2b1fca515949e5d54fb22b8ed95575'

Este es el “RSA Data Security, Inc. MD5 Message-Digest Algorithm.”

 

SHA1(str), SHA(str)

Calcula una checksum SHA1 de 160-bit para la cadena, como se describe en RFC 3174 (Secure Hash Algorithm). El valor se retorna como cadnea de 40 dítigos hexadecimales, o NULL si el argumento era NULL. Uno de los usos posibles para esta función es una clave hash. También puede usarlo como función criptográficamente segura para almacenar contraseñas

mysql> SELECT SHA1('abc');
-> 'a9993e364706816aba3e25717850c26c9cd0d89d'

SHA1() puede considerarse un equivalente criptográficamente más seguro que MD5(). SHA() es sinónimo de SHA1().

Ver mas:  fuente: https://cursoprogramador.wordpress.com/

Problemas de conexion de MySQL Workbench

Jesus Fabian

De todos los gestores de base de datos para MySQL el que me parece mas completo es MySQL Workbench, lo uso mucho para modelar base de datos, gestionar data, conexiones remotas, etc. Es muy completo. En distribuciones Arch es un poco complicado, pero vale la pena :).

Luego de instalar EL MySQL Workbench (un DBMS para MySQL) y establecer los parametros para nuestra conexion en modo local, quizas nos puede aparecer algo asi:

Esto sucede por que generalmente el mysql que tenemos instalado, esta bloqueando las conexiones, hay que modificar esta configuracion en el archivo my.cnf (en el caso de ArchLinux esta en /etc/mysql/my.cnf).

Dentro de este archivo comentamos la linea que contiene skip-networking reinicamos el servicio mysql, y ya podremos conectarnos desde el MySQL Workbench a nuestro servidor local :).

Nota: para reinicar nuestro servicio mysql basta con:

Ver la entrada original

Cómo resetear la contraseña del usuario root de MySQL Server (mas Simple)

Sí te sucede que olvidaste la contraseña del usuario root del servidor de base de datos MySQL y no puedes crear nuevos usuarios, ni nuevos catálogos ni  acceder a la consola de administración, en ésta publicación explico como resetear la contraseña del usuario root tanto para Linux como para Windows. Para Windows realizar lo siguiente:

      1. MySQL Server está instalado como servicio. Detener el servicio
      2. Abrir una consola de comandos (cmd)
      3. Ir al directorio de instalación de MySQL Server. Por ejemplo: 1.C:\Program Files\MySQL\MySQL Server 5.1\bin
      4. Ejecutar el siguiente comando:  1.mysqld –skip-grant-tables &
      5. Abrir otra consola de comandos (cmd)
      6. Ingresar a la consola de administración de MySQL con el comando: 1.mysql -u root
      7. En la consola de administración de MySQL, ejecutar los siguientes comandos:
      8. 1. mysql>use mysql;

          2. mysql>update user set password=PASSWORD(“nuevaClave”) where user=’root’;

        3. mysql>flush privileges;

        4. mysql>quit;
        Finalmente, cerrar la consola de comandos abierta en el paso 2 e iniciar nuevamente el servicio de

MySQL

      Server. Para Linux:
  1. Detener el servicio de MySQL usando el comando 1./etc/init.d/mysql stop
  2. En la consola de comandos (shell) ejecutar el comando: 1.sudo mysqld_safe –skip-grant-tables &
  3. Realizar los pasos 6 y 7 descritos para Windows.
  4. Iniciar nuevamente el servicio de MySQL usando el comando 1./etc/init.d/mysql start

Como resetear el autoincremental en mysql

Cuando se trabaja con bases de datos MySQL es habitual utilizar los autoincrementales para crear las claves primarias de las tablas de datos. Este tipo de campos lo que hacen es asignar un entero diferente a cada nuevo registro, añadiendo 1 al anterior valor asignado, empezando por el 1. Por lo tanto, si borramos toda la información de la tabla y generamos un nuevo registro podremos comprobar como no obtiene un 1 sino el valor que hubiera correspondido antes de borrar los registros.

Si necesitamos borrar la tabla y resetear este número para reiniciar la numeración en 1 la opción más sencilla es ejecutar la siguiente sentencia SQL.

TRUNCATE nombre_tabla;

Esta instrucción vacía la tabla y resetea el autoincremental a su valor inicial.

Si lo que queremos es hacer que el valor autoincremental tome un valor determinado es posible utilizar la siguiente sentencia, que modifica la tabla cambiando el valor de autoincremento a 1000 (o al valor que queramos). Hay que tener en cuenta que este número debe ser mayor que cualquier id de la tabla.

ALTER TABLE nombre_tabla AUTO_INCREMENT=1000

Agradecimiento a Demiurgo y Narion por aportar la opción de Truncate en vez de alterar la tabla asignando un 1 al autoincremental.