Archivo de la etiqueta: MySql

Solucion error code 1175 mysql workbench



Fuente original en el siguiente url:

desarroller.blogspot

Anuncios

Recuperar contraseña root de MySQL en Windows

De verdad funciona!! el unico problema que tube fue al inicar de nuevo el servicio ahora tengo que reiniciar la PC

Kopetin Adventures

Hace unas horas Omar y yo estabamos desarrollando una idea para una aplicación la cual, debo decir, nos quedo “bien padre”… Alegres y jubilosos nos dispusimos a trabajar, abro el MySQL Administrator y zas marrano!!! que me doy cuenta que, estupidamente, perdí mi contraseña de root… un poco muy bruto diría mi hermano… Ni modo, después del shock inicial… a buscar y como siempre, a encontrar la solución. Aquí se las pongo para todos aquellos que han perdido (no se quemen diciendo el por qué) la contraseña del root.

1. Poner cara de “Panda la madre Osa!!!”

2. Respirar tranquilos…

3. Abrir el administrador de procesos de Windows (services.msc)

4. Detener el servicio de MySQL (click derecho — Detener)

5. Abrir una ventana de CMD, consola de Windows, o Pantalla de DOS (como le quieran llamar) y situarse en la carpeta donde esta instalado el MySQL (generalmente es en la…

Ver la entrada original 531 palabras más

Mysql Conexión Remota

Mysql conexión remota usuarios crear borrar

Para obtener conexiones remotas a un servidor de base de datos Mysql debemos tener un usuario que tenga permisos para acceder desde cualquier servidor, o de un servidor determinado, para conexiones remotas Mysql no permite la conexion usando el usuario root, se debe crear un usuario diferente para hacer la conexion.
Si usas Phpmyadmin indicar en la tabla de privilegios de usuarios en el campo host con el simbolo ‘%’ que indica que la conexion se realizara desde cualquier servidor, si lo que queremos es hacerlo desde una ip especifica se pondría 172.18.20.30, o parte de la ip con el comodin 172.18.%, aqui coloca la ip correspodiente a su equipo.
Lo siguiente es modificar en el fichero my.cnf el parámetro bind-address, que por defecto viene con 127.0.0.1, y cambiarlo
bind-address = 127.0.0.1
bind-adrres = 0.0.0.0
para que sea accesible desde cualquier servidor.
Tambien se puede comentar la linea, esto permitiria la conexión igualmente
#bind-address = 127.0.0.1
debe reiniciar el servidor mysql-server para que tome los cambios:
# /etc/init.d/mysql restart
Si tiene iptables o un cortafuegos equivalente debe se crear una regla para que se permita la conexion por el puerto 3306 algo como:
iptables -A INPUT -s 172.18.20.30 -p tcp –dport 3306 -j ACCEPT
Para hacerlo desde la consola de comandos con el administrador mysql puede hacerlo asi:
Para una ip o servidor especifico, para consulta escritura y actualización:
mysql> CREATE USER ‘nombre_de_usuario’@’172.18.20.30’ IDENTIFIED BY ‘clave’;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, FILE ON * . * TO ‘nombre_de_usuario’@’172.18.20.30’ IDENTIFIED BY ‘clave’
Para cualquier servidor desde una red 172.18.2.0/24 solo de consulta:
mysql> CREATE USER ‘nombre_de_usuario’@’172.18.2.%’ IDENTIFIED BY ‘clave’;
mysql> GRANT SELECT ON * . * TO ‘nombre_de_usuario’@’172.18.2.%’ IDENTIFIED BY ‘clave’;
Si desea darle todos los privilegios:
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘prueba’@’172.18.2.%’ IDENTIFIED BY ‘clave’;
Si desea que este usuario pueda dar permisos a otros usuarios debe dar la siguiente linea de comando
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘prueba’@’172.18.2.%’ IDENTIFIED BY ‘clave’ WITH GRANT OPTION;
Si deseamos darle permisos al usuario creado sobre una base de datos especifica debemos dar el siguiente comando:
mysql> GRANT ALL PRIVILEGES ON basedatos.* TO ‘prueba’@’172.18.2.%’ IDENTIFIED BY ‘clave’;
Si desea que pueda dar permisos a otros usuarios de la base de datos asignada debe dar el siguiente comando:
mysql> GRANT ALL PRIVILEGES ON basedatos.* TO ‘prueba’@’172.18.2.%’ IDENTIFIED BY ‘clave’ WITH GRANT OPTION;
Borrar un usuario:
mysql> DROP USER prueba;
Si tiene privilegios no lo deja borrar debe mirar cuales tiene y revocarlos para luego eliminar el usuario:
mysql> SHOW GRANTS FOR prueba;
mysql> REVOKE ALL PRIVILEGES ON basedatos.* FROM prueba;
mysql> DROP USER prueba;
Conexión remota desde phpmyadmin
Editar el archivo config.inc.php para cambiar los valores de host de la base de datos (ordenador que tiene instalado el MySQL) y el usuario y password con el que nos conectamos. Se pueden configurar muchos aspectos en la herramienta, aunque ahora solo nos interesa la conexión remota, en la documentación tenemos un apartado dedicado por completo a especificar el sentido de cada variable.
$cfgPmaAbsoluteUri
Debemos asignarlo a la ruta completa necesaria para acceder a phpMyAdmin. Podría ser algo como http://localhost/phpMyAdmin o http://www.dominio.org/phpMyAdmin
$cfgServers[$i][‘host’] string
El nombre del host de la base de datos. Por ejemplo localhost, si es que es el mismo ordenador donde estamos instalandos phpMyAdmin y la base de datos. También podría ser la dirección IP del ordenador remoto al que nos conectaremos.
$cfgServers[$i][‘user’] string
$cfgServers[$i][‘password’] string
El usuario contraseña que debe utilizar phpMyAdmin para conectarse con el servidor MySQL, remoto.
Es muy importante tener en cuenta que versiones antiguas de phpmyadmin tendran dificultades con la evaluacion de claves ya que las versiones nuevas cambian las valorancion de estas, por tal razon es posible que tenga problemas al conectarse de un administrador phpmyadmin de version antigua a un servidor de datos Mysql de version reciente.

Los tipos de datos DATETIME, DATE y TIMESTAMP

        Los tipos DATETIME, DATE, and TIMESTAMP están relacionados. Esta sección describe sus características, en qué se parecen y en  qué difieren.

        El tipo DATETIME se usa cuando necesita         valores que contienen información de fecha y hora. MySQL recibe  y muestra los valores DATETIME en formato         'YYYY-MM-DD HH:MM:SS' . El rango soportado es         de '1000-01-01 00:00:00''9999-12-31 23:59:59'.         (“Soportado” significa que aunque valores  anteriores pueden funcionar, no hay garantías)

        El tipo DATE se usa cuando necesita sólo un  valor de fecha, sin una parte de hora. MySQL recibe y muestra  los valores DATE en formato         'YYYY-MM-DD' . El rango soportado es de  '1000-01-01''9999-12-31'.

        El tipo TIMESTAMP tiene varias propiedades,         en función de la versión de MySQSL y el modo SQL que esté         ejecutando el servidor. Estas propiedades se describen         posteriormente en esta sección.

        Puede especificar valores DATETIME,         DATE, y TIMESTAMP usando         cualquier de los siguientes formatos:

  •             Como cadena de caracteres en formato 'YYYY-MM-DD             HH:MM:SS' o 'YY-MM-DD HH:MM:SS'             . Una sintaxis “relajada” se permite: Cualquier             carácter de puntuación puede usarse como delimitador entre             partes de fecha o de hora. Por ejemplo, '98-12-31             11:30:45', '98.12.31 11+30+45',             '98/12/31 11*30*45', y '98@12@31             11^30^45' son equivalentes.
  •             Como cadena de caracteres en formato             'YYYY-MM-DD' or             'YY-MM-DD' . Se permite una sintaxis             “relajada” . Por ejemplo,             '98-12-31',             '98.12.31',             '98/12/31', y             '98@12@31' son equivalentes.
  •             Como cadena de caracteres sin delimitadores en formato             'YYYYMMDDHHMMSS' o             'YYMMDDHHMMSS', mientras que la cadena de             caracteres tenga sentido como fecha. Por ejemmplo,             '19970523091528' y             '970523091528' se interpretan como             '1997-05-23 09:15:28', pero             '971122129015' es ilegal (tiene una parte             de minutos sin sentido) y se convierte en             '0000-00-00 00:00:00'.
  •             Como cadena de caracteres sin delimitadores en formato             'YYYYMMDD' o 'YYMMDD'             , mientras que el cadena de caracteres tenga sentido como             fecha. Por ejemplo, '19970523' y             '970523' se interpretan como             '1997-05-23', pero             '971332' es ilegal (tiene una parte de             mes y día sin sentido) y se convierte en             '0000-00-00'.
  •             Como número en formato YYYYMMDDHHMMSS o             YYMMDDHHMMSS, mientras que el número             tenga sentido como fecha. Por ejemplo,             19830905132800 y             830905132800 se interpretan como             '1983-09-05 13:28:00'.
  •             Como número en formato YYYYMMDD o             YYMMDD, mientras que el número tenga             sentido como fecha. Por ejemplo, 19830905             y 830905 se interpretan como             '1983-09-05'.
  •             Como resultado de una función que retorne un valor             acceptable en un contexto DATETIME,             DATE, o TIMESTAMP ,             como NOW() o             CURRENT_DATE.

        Los valores ilegales de DATETIME,         DATE, o TIMESTAMP se         convierten al valor “cero” del tipo apropiado         ('0000-00-00 00:00:00',         '0000-00-00', o         00000000000000).

        Para valores especificados como cadenas de caracteres que         incluyan partes de fecha delimitadas, no es necesario         especificar dos dígitos para valores de mes o día menores que         10. '1979-6-9' es lo mismo         que '1979-06-09'. Similarmente, para valores         especificados como cadenas de caracteres que incluyan         delimitadores para la parte de hora, no es necesario especificar         dos dígitos para horas, minutos o segundos menores que         10. '1979-10-30 1:2:3' es         lo mismo que '1979-10-30 01:02:03'.

        Los valores especificados como números deben tener una longitud         de 6, 8, 12, o 14 dígitos. Si un número tiene una longitud de         8 o 14 dígitos, se asume que está en formato         YYYYMMDD o YYYYMMDDHHMMSS         y que el año lo dan los primeros 4 dígitos. Si el número         tiene 6 o 12 dígitos de longitud, se asume que está en formato         YYMMDD o YYMMDDHHMMSS y         que el año lo dan los primeros 2 dígitos. A los números que         no tengan estas longitudes se les añaden ceros a la izquierda         hasta la longitud más cercana permitida.

        Los valores especificados como cadenas de caracteres no         delimitadas se interpretan usando su longitud. Si la cadena de         caracteres tiene longitud 8 o 14, el año se asume como dado por         los primeros 4 caracteres. En el resto de caso, se supone que el         año lo dan los primeros 2 caracteres. La cadena de caracteres         se interpreta de izquierda a derecha para encontrar el año,         mes, día, hora, minuto y segundo, para tantas partes como         representa la cadena de caracteres. Esto significa que no debe         usar cadenas de caracteres con menos de 6 caracteres. Por         ejemplo, si especifica '9903', pensando que         representa Marzo, 1999, MySQL inserta un valor         “cero” en la tabla. Esto es porque el valor de año         y mes son 99 y 03, pero la         parte de día no se encuentra, así que el valor no es una fecha         legal. Sin embargo, puede especificar explícitamente un valor         de cero para representar partes de día y mes. Por ejemplo,         puede usar '990300' para insertar el valor         '1999-03-00'.

Puede asignar valores de un tipo a un objeto de un tipo         diferente hasta un límite. Sin embargo, hay algunas         alteraciones del valor o pérdidas de información:

  •             Si asigna un valor DATE a un objeto             DATETIME o TIMESTAMP,             la parte de hora del valor resultante se cambia a             '00:00:00' ya que el valor             DATE no contiene información temporal.
  •             Si asigna un valor DATETIME o             TIMESTAMP a un objeto             DATE, la parte temporal del valor             resultante se borra porque el tipo DATE             no tiene información temporal.
  •             Tenga en cuenta que aunque DATETIME,             DATE, y TIMESTAMP             pueden especificarse usando el mismo conjunto de formatos,             los tipos no tienen el mismo rango de valores. Por ejemplo,             TIMESTAMP no pueden ser anteriores a             1970 o posteriores a             2037. Esto significa que una fecha como             '1968-01-01', que sería legal como             DATETIME o DATE no es             un valor válido TIMESTAMP y se convierte             a 0 si se asigna a un objeto de este             tipo.

Tenga en cuenta ciertas cosas al especificar valores temporales:

  •             El formato relajado para valores especificados como cadenas             de caracteres puede ser problemático. Por ejemplo, un valor             como '10:11:12' puede parecer una hora             por el delimitador ‘:‘ , pero si se usa             en un contexto de fecha se interpreta como             '2010-11-12'. El valor             '10:45:15' se convierte a             '0000-00-00' ya que             '45' no es un mes legal.
  •             El servidor MySQL realiza sólo chequeo básico de la             validez de las fechas: Los rangos para año, mes y día son             de 1000 a 9999, 00 a 12, y 00 a 31, respectivamente.             Cualquier fecha que contenga partes fuera de estos rangos             está sujeta a conversión a             '0000-00-00'. Tenga en cuenta que esto             permite almacenar fechas inválidas como             '2002-04-31'. Para asegurar que una fecha             es válida, haga una comprobación en su aplicación.
  •             Fechas con valores de año de dos dígitos son ambíguas             porque no se conoce el siglo. MySQL interpreta los años de             dos dígitos usando las siguientes reglas:
    •                 Los valores de años en el rango                 00-69 se convierten a                 2000-2069.
    •                 Los valores de años en el rango                 70-99 se convierten a                 1970-1999.

Migración de Una Base de Datos de SQL SERVER 2005 a Mysql (Posible Solución)

Si por razones varias que pueden ser:

–          Petición del cliente de cambiar la base de datos.

–          Problemas ocasionados con tu base de datos SQL SERVER 2005

–          Tarea que te envíe tu profesor de base de datos

Y te ves en la necesidad de migrar tu base de datos en SQL SERVER 2005 a MYSQL 5.0 o superior aquí definiré una serie de pasos que puedes ejecutar y te daré dos soluciones para poder salir de esta tarea.

Primera solución.-

Esta solución es un tanto tediosa y repetitiva, consta básicamente de dos partes; la primera parte es migrar tu base de datos a Access y luego migrar tu base de datos de Access a Mysql. Probé esta solución y migró exitosamente tanto la estructura de la base de datos como los datos.

Los pasos que ejecuté fueron los siguientes:

1.- En primera instancia necesitados descargar un ODBC de mysql que lo puedes descargar de esta dirección: http://download.softagency.net/MySQL/Downloads/Connector-ODBC/3.51/ yo descargué la que tenía una fecha más actual (la del final) y procedes a instalarlo a este conector, la instalación es bastante fácil así que no la describiré pero si tienes algún problema coméntamelo.

2.- Agregar este Origen de datos.- Dentro del PANEL DE CONTROL (en modo vista Clásica) ingresamos en la opción Herramientas administrativas, damos un doble click en Orígenes de Datos (ODBC), dentro de la pestaña DNS de Usuario (aparece por defecto en primer plano)  seleccionamos Agregar, ahora nos apareció una nueva pantalla y en esta buscamos cuidadosamente el MySQL ODBC 3.51 Driver y le damos un doble click, en esta nueva pantalla seleccionamos la pestaña Advanced y dentro de esta seleccionamos la pestaña Flags 1 y seleccionamos todas las opciones que nos propone; ahora seleccionamos la pestaña Connect Options y llenamos el campo del puerto, si la dase de datos mysql está en tu mismo computador llena el campo Port con 3306; ahora seleccionamos a pestaña Login y llenamos los campos correspondientes ( en Data Source Name pon cualquier nombre puede ser myodbc; en Server especificas el servidor por lo general suele ser localhost; en User un nombre de usuario que tengas en tu base de batos osea con el que sabes ingresar a tu base de datos y en Password la contraseña del usuario mencionado, y en Database seleccionas la base de datos en la cual quieres almacenar tu base de datos de SQLServer 2005); pulsas Ok y ya esta agregada, pulsas Aceptar en el Administrador de Orígenes de Datos ODBC y listo.

3.- Exportar Tu base de datos de SQL SERVER 2005 a Access.- Ingresas al SQL Server Management Studio y das click derecho sobre tu base de datos, seleccionas la opción de Tasks luego Export Data… das NEXT hasta ubicarte en la pantalla Choose a Data Source  y seleccionas tu base de datos y pulsas NEXT; ahora en  Choose a Destination en Destination selecciona Microsoft Access, en File Name puedes usar el Browse…  y seleccionar el archivo de Access donde alojaras la base de datos pulsa NEXT, otro NEXT, en Select Source Tables and Views selecciona una tabla, (suele ocasionar problemas si a veces seleccionas todas), pulsa NEXT, en esta pantalla selecciona también la opción Save SSIS Package y SQL SERVER, pulsa ahora NEXT, Ok,  y ahora pon un nombre al paquete y NEXT,  pulsa ahora Finish y listo tienes exportada tu tabla a Access con todo y datos, repite este proceso hasta terminar con todas tus tablas de tu base de datos.

4.- Exportar tu base de datos de ACCESS a MySQL.- Abre la base de datos en Access  selecciona una tabla, dale click derecho y pulsa en la opción Exportar… (en el Office 2003 en Guardar como tipo selecciona Base De Datos ODBC) selecciona Base De Datos ODBC, en la nueva ventana pulsa Aceptar en esta ventana nueva pulsa la pestaña Origen de Datos de Equipo y selecciona el origen de datos que creamos en nuestro caso es myodbc y listo comienza la exportación. Repite este proceso por cada tabla y listo está exportada tu base de datos con todo y estructura y datos.