Mysql Tools Instalar + hacer copia de seguridad + Crear Usuarios y darles permisos
¿Que tal familia? En esta ocasión os he montado un videotutorial de una herramienta que para mí es inseparable de MySQL, MySQL Tools!.
Con MySQL Tools podemos manejar las bases de datos de nuestro servidor de una manera sencilla y muy intuitiva, con unos cuantos clicks conseguimos lo que con Querys tardaríamos posiblemente más y con un margen de error a mi parecer bastante más amplio.
En este videotutorial, realizamos la descarga, la instalación y damos unas pequeñas pautas de una de las herramientas del paquete de MySQL Tools como es MySQL Administrator.
Con MySQL Administrator podemos gestionar los usuarios, darles permisos sobre alguna base de datos, sobre varias bases de datos, sobre alguna parte de estas, etc, además de realizar copias de seguridad y restaurarlas.
En el video se me olvida decir que a la hora de hacer el backup se pueden seleccionar las tablas que queremos para realizar la copia, pero de la misma manera que al restaurarlas seleccionamos cuales queremos, a la hora de hacerla podemos seleccionar que tablas queremos y cuales no.
Espero que os sirva. Ya sabeis que si teneis alguna duda podeis escribirme a tutor@dkreativo.es y resolveré vuestra duda lo más rapido posible.
Un saludete!
Comments
hola muy interesante la pagina vertutoriales.com felcitaciones … le escribo xq tengo un problema con mi proyecto he creado un setup en visual basic 6 ..y hago las conecciones a access y a un servidor de fox :
Public Property Get ConeccionServidor() As String
ConeccionServidor = ” MSDASQL.1;Persist Security Info=False;Extended Properties=Driver={Microsoft Visual FoxPro Driver};UID=; SourceDB=\\ ipe \data ;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;”
End Property
Public Property Get ConeccionADOAccess() As String
ConeccionADOAccess = “Provider=Microsoft.Jet.OLEDB.4.0;Data source=” + App.Path + “\compra.mdb; Persist Security Info=False; Jet OLEDB:Database Password=”
End Property
….
el problema es cuando me conecto sale error: run-time ‘2147467259(8000400s) (microosoft)(administrador de controladores odbc) el controlador no admite esta funcion
no se a q se debe si podar dar una ayuda
Buenas Luis,
Necesitaría que me dijeras cual es la conexión que te da error, en principio la conexion con Visual FoxPro parece estar correcta (siempre y cuando la ruta esté bien).
La conexión de Microsoft Access parece que la tienes errada al final, supongo que no tienes contraseña ya que la dejas vacia, prueba a poner esta
path_Bd sería la ruta junto con el archivo de la base de datos .mdb, te aconsejo que pases la ruta completa, ya que dependiendo del sistema operativo, el app.path, puede pasarte la ruta con la “\” o sin ella, pudiendo dar errores al cambiar de sistemas.
Revisa tambien si tienes las ODBC bien instaladas y si fuera así, revisa que tengas el componente agregado.
Si continuas con el problema, comentamelo y vemos que puede ser más exactamente.
En primer lugar, te doy las gracias por los fantásticos video tutoriales.
En segundo lugar me gustaría saber cuáles son las opciones de configuración de la copia de seguridad automática del mysql administrator, por más que pruebo no soy capaz de hacerla funcionar. Lo he intentado todo, guardo la contraseña en obscure, guardo el acceso al programa y pongo el usuario de mi equipo, que creo que es lo último que pide.
Ya no se que mas hacer. Muchas gracias por todo.
hola necesito un favor tengo un programa en vb 6 conectado con sql pero me genera un error me dice que el nombre del origen de datos es muy largo como corrijo esto el codigo es:
Public Sub IniciarConexion()
Dim sRuta As String
‘ Asignar la ruta de la base de datos que se llama la_base
sRuta = App.Path & “\la_base”
Call Desconectar ‘por que me dice que no funciona cuando está abierto este es para serrar la conexión es igual a decir cnn.close
With cnn
.CursorLocation = adUseClient
.Open “Provider=MSDASQL.1;Data Source=” & _
sRuta & “;Persist Security Info=False”
End With
End Sub
si le quito el sRuta y coloco el nombre de la base de datos me funciona pero yo lo quiero asi para no estar conectando la base de datos con el driver de msql odbc
ademas necesito saber si cada ves que yo quiera abrir mi proyecto tengo que conectar la base de datos con el driver MySQL ODBC 3.51 Driver o puerdo crear un Path de la base
Buenas Joel,
Te agradecería que pusieras el código que hace falta para analizarlo en conjunto ya que sino no puedo responderte correctamente, sin embargo, ahí van algunas explicaciones para que te orientes y puedas sacar tú mismo conclusiones.
Primera y muy importante, para conectar Visual Basic 6 con MySQL necesitas el driver odbc para que puedan “entenderse” ambas aplicaciones, por lo que SIEMPRE necesitarás pasarle esa configuración a vb6. Aunque no sé exactamente a que base estás conectando por la configuración que tienes.
Lo de sRuta, es posible que te falle por la barra “\” ya que el app.path dependiendo del sistema en el que se ejecute el programa puede devolvertelo con \ o sin ella, es decir app.path puede ser igual a c:\midirectorio o c:\midirectorio\ por lo que si agregas la ruta “\base” y es la segunda opción la que te devuelve quedaría “c:\midirectorio\\base” por lo que el programa devolvería un error en la ruta.
Tambien te aconsejo que las conexiones las hagas en el momento que lo necesites, hagas todas las modificaciones que tengas que hacer, insersiones o eliminaciones y vuelvas a cerrar la conexión. Tal vez es algo más pesado pero dá muchisima más estabilidad a la aplicación.
Espero que te aclare alguna duda.
Un saludo!
como hago para enpmpaquetar mi proyecto de vb con base de datos que solo sea intalar responde a programadorjcb@hotmail.com
Buenas Joel,
Necesitaría que me dijeras que base de datos estás utilizando, si es MySQL, deberás instalar el programa por un lado y el servidor de MySQL por otro, aunque hay instalaciones ya predefinidas para MySQL, como son en archivos comprimidos listos para meter en la carpeta que quieras y funcione sin problemas.
Tal vez lo mejor sea instalar cada cosa por separado, así es como lo he hecho siempre, pero claro está que será un problema si quieres hacer una distribución a más nivel, de manera que esté todo todalmente automatizado. En ese caso te aconsejo que busques como instalar MySQL por un lado y luego te crees un pequeño instalador que lance ambas instalaciones, la que te crea Visual Basic 6 y MySQL.
Un saludo!
buenas tardes gracias por responderme el codigo completo del modulo principal es el siguiente:
este codigo pertenece a un ejemplo de listview editable de la pagina recursos de visual basic que quiero modificar ya que esta en vb con access y yo lo quiero con mysql yo utilizo el 4.5 de msql serve
Option Explicit
Public Declare Sub InitCommonControls Lib “comctl32″ ()
‘ variables para la conexión y el recordset
””””””””””””””””””””””
‘Public cnn As New ADODB.Connection
‘Public rs As New ADODB.Recordset
Public ObjItem As ListItem
Sub Main()
On Error Resume Next
Call InitCommonControls
Err.Clear
FrmPrincipal.Show
End Sub
‘ abre
‘Public Sub IniciarConexion()
Dim sRuta As String
‘ Asignar la ruta de la base de datos
sRuta = App.Path & “\la base”
Call Desconectar
With cnn
.CursorLocation = adUseClient
.Open “Provider=MSDASQL.1;Data Source=” & _
sRuta & “;Persist Security Info=False”
End With
‘ cnn.Open “driver={mysql odbc 3.51 driver};” _
‘ & “user=root;” _
‘ & “password=123456;” _
‘ & “server=localhost;” _
‘ & “database=la base;”
‘rs.Open “select * from personas”, cnn, adOpenStatic, adLockOptimistic
‘End Sub
Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
On Error GoTo ErrorSub
Dim i As Integer
‘limpia el LV
LV.ListItems.Clear
‘ si hay registros
If rs.RecordCount > 0 Then
‘ recorre el recordset
While Not rs.EOF
‘ añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))
ObjItem.SubItems(1) = rs!nombre
ObjItem.SubItems(2) = rs!Apellido
ObjItem.SubItems(3) = rs!Telefono
ObjItem.SubItems(4) = rs!Direccion
If Abs(rs!sexo) = 0 Then
ObjItem.SubItems(5) = “Masculino”
Else
ObjItem.SubItems(5) = “Femenino”
End If
ObjItem.SubItems(6) = rs!FechaDeAlta
‘ siguiente registro
rs.MoveNext
Wend
End If
Call ForeColorColumn(&H8000&, 0, FrmPrincipal.LV)
‘Call ForeColorColumn(vbRed, 6, FrmPrincipal.LV)
Exit Sub
Buenas Joel,
Vamos a ver paso por paso que puede ser lo que te de problemas.
En primer lugar, dices que utilizas la versión 4.5 de MySQL, me gustaría tambien saber que versión de ODBC estás utilizando, es posible que no sea compatible y por eso no conecte.
Tambien prueba a añadirle el puerto de conexión, mira en que puerto está escuchando el server de la base de datos de MySQL y añadeselo a la configuración del proveedor, tal vez tengas otro puerto.
En principio el código parece estar correcto excepto por los comentarios que tienes, no comprendo por qué tienes comentada la declaración o inicio de la función IniciarConexion(), ni variables como son cnn y el rs.
Lo demás aparte de algún comentario más parece que está bien, de todas maneras te pongo la cadena de conexión que tengo de otro tutorial en la web que tal vez te sirva:
CON.Open “DRIVER={MySQL ODBC 3.51 Driver};DATABASE=” & NomBd & “;SERVER=” & Servidor & “;UID=” & Usuario & “;password=” & Pwd & “;PORT=3306;”
Además sigue el siguiente enlace para la conexión de MySQL desde Visual Basic 6 utilizando ODBC. Seguramente te aclare bastantes dudas respecto a conectar con MySQL.
Ya como consejo y para terminar, intenta primero utilizar mi código para hacer la conexión, y una vez que consigas conectar con la base de datos… leer los datos, añadirlos a un listview o manejar esa información como sea, no será un problema, y si lo es, sigue posteando y te voy guiando hasta que lo consigamos.
Un saludo!
Buenas tardes he leído tus tutoriales y se me han despejado muchas dudas muchas gracias por la excelente ayuda que das.
Ya me funciona el código de conexión de vb y mysql aunque no he terminado el proyecto te seguire informando si alguna duda GRACIAS.
En uno de tus tutoriales dices:
“Es cierto que el código que tengo en otro tutorial, solo explica la parte de programación y por ningún otro sitio se comenta la configuración de MySQL, así que voy a hacer una redacción de los problemas más comunes a la hora de acceder a MySQL desde el exterior o fuera del servidor donde se aloja la base de datos. Así que vamos allá.
Lo primero es crear la base de datos, y esta tiene que tener permisos para acceder desde el exterior, es decir no la configureis para localhost, sino el acceso está restringido desde el propio server.
Segundo, debeis de configurar un usuario con los permisos a esta base de datos, que soporte todas aquellas funciones que vaya a utilizar, ya sea creación, inserción (insert), actualización (update) o eliminación (delete).
Tercero, para conectar vb6 con MySQL debeis de tener instalados los drives ODBC en vuestro equipo, estos drivers son necesarios para la comunicación de vuestra aplicación con el gestor de la base de datos MySQL. Estos drivers podeis descargarlos directamente de la web de MySQL.
Cuarto, en algunos servidores cambian el puerto de acceso al servidor, por lo que en la cadena de conexión de visual basic 6 (vb6) debeis de cambiarlo tambien para que sea al mismo puerto.”
En el primer paso como hago para no configurarlos para localhost sino acceso exterior. Es al momento de intalar mysql o en el drive de odbc pues nunca lo he intentado.
En el segundo dices de un usuario que quiere decir. Es cuando declaramos en el código la conexión con la base de datos y el drive de odbc o es otra forma. La duda surge porque cuando yo no hago la conexión en el driver “ MySQL ODBC 3.51 Driver” de la base de datos por origen de datos de odbc de panel de control del pc me sale el error de que no se ha definido el usuario y cuando hago la conexión en el driver me ejecuta el programa sin errores.
Yo siempre que voy a trabajar o ver un proyecto vb tengo que intalar mysql-essential-4.1.12a-win32 y mysql-connector-odbc-3.51.26-win32 ademas utilizo HeidiSQL_3.2_Setup para la creación de las bases de datos y después crear una conecon en el driver de odbc para la base de datos que también tengo que abrirla en mysql.
Además si empaqueto el proyecto debo intalarlo.
Ahora lo que me ha puesto a pensar al ver varios programas que he intalado en las pc es que no se instala ni base da datos ni odbc por aparte solo el instalador del programa y listo ¿como hago lo mismo en vb? Es por ello que te mande el código donde especificaba un path de la ruta de la base de datos pero no me ha funcionado dice que es muy larga la ruta o conexión cuando ejecuto el programa
El código es
Public Sub IniciarConexion()
Dim sRuta As String
‘ Asignar la ruta de la base de datos
sRuta = App.Path & “\la_base” ‘si le quito esto funciona pero lo quiero con una ruta para no tener que intalar la base de datos
Call Desconectar ‘por que me dice que no funciona cuando está abierto este es para serrar la conexión es igual a decir cnn.close
With cnn
.CursorLocation = adUseClient
.Open “Provider=MSDASQL.1;Data Source=” & _
sRuta & “;Persist Security Info=False” ‘si le cambio sRuta por la_base funciona
End With
End Sub
En fin como hago para tener enpaquetado el programa y la base de datos que solo se intalar el programa sin necesida de intalar vb, msql ni drives en la pc o si tengo que empoaquetar el programa y pegar la base de datos donde intale el programa o crear un ejecutable para pegarla en el mismo lugar para que funcione el programa pueda encontrar la base de datos
Quiero llevar solo en un archivo ran el programa y la base o solo un intalador
garcias
Buenas de nuevo Joel,
Parece ser que el problema que tienes real es que no conoces MySQL, si has trabajado con Microsoft Access, o con algún otro sistema, habrás podido comprobar que te crea un archivo donde están los datos, con MySQL eso no es posible, es decir, MySQL en sí es un servidor de base de datos, por lo que debes de tener instalado todo el server en el pc cliente (hablando de tu caso) donde quieras ejecutar la base de datos.
Con respecto a empaquetarlo todo junto, creo que ya te comenté que has de hacer una instalación para el servidor de MySQL y otro para la aplicación de Visual Basic, además de los drivers ODBC para poder conectar ambos.
¿Como hacerlo?
Con VB6 no tendrás problema, y el driver en sí tampoco ha de darte ninguno, tal vez para instalar el servidor de MySQL para un cliente sea algo más complejo, pero puedes buscar dentro de la web de MySQL y buscar un tipo de instalación que lo que hace es una instalación “sencilla”, creo recordar que viene un paquete que es solo descomprimirse, el resto viene configurado, o para configurarse.
Tienes que ver que realmente lo que quieres es una base de datos en local, así que todo lo que te comentaba de permisos y demás, no hay problema, eso lo comento por que como ya he escrito anteriormente es un Servidor de base de datos, por lo que puedes tener acceso de varios usuarios a la vez remotamente y desde la otra punta del mundo.
Con respecto la ruta de la base de datos, no es así, has de utilizar la cadena de conexión del ejemplo que te puse, esa es la manera que utilizo para conectar con la base de datos y luego es usar el recordset (rs).
Podría continuar indicandote varias cosas más, pero te aconsejo que veas los tutoriales que tengo sobre MySQL, en los cuales muestro como crear usuarios, darles permisos y demás, y en otro una pequeña explicación con las herramientas MySQL Administratror y MySQL Query Browser.
Nutrete primero de esa información y luego vamos puliendo la idea que tengas, pero si quieres utilizar MySQL es bueno que vayas relacionandote con este.
Un saludo!
otra pregunta puedo hacer listviet editables que modifiquen guarden uno nuevo digitandolo desde el lisviet me he bajado ej pero no se puede crear uno nuevo campo desde el lisviet
No te entiendo lo que quieres hacer.
¿Dices de poder hacer click dentro de la rejilla que quieras y guardar los cambios o de poder modificar las columnas del listview?
Comentarte que ambas cosas pueden hacerse.
Un saludo!
buenas tardes
gracias por esplicarme se me aclaro la duda seguire tu consejo y luego te cuento como me fue muchas gracias
Buenos días
Necesito un favor es que estoy hacienda un programa utilizando como base el diseño del proyecto “form-abm-con-ado-access” que me lo descargue gratis de: http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/formulario-abm-con-access-ado.htm (bájatelo para que me entiendas mejor ) pero lo estoy intentando realizar con una base de datos en mysql ya me guarda pero no he podido cargar los datos guardados en el ListView no se cual sea el problema utilice el código
If Abs(rs!sexo) = 0 Then ‘no esta chuleada en base
ObjItem.SubItems(5) = “Masculino”
Else
ObjItem.SubItems(5) = “Femenino” ‘ esta chuleada en base
End If
Para el sexo pues está en la base de datos con propiedad tipo enum (‘Y’,’N’) y la cambien a varchar pero como que no es el problema
Utilice también la variable Public IdRegistro para Id tal como aparece en el proyecto “form-abm-con-ado-access”
Option Explicit
Public Declare Sub InitCommonControls Lib “comctl32″ ()
‘ variables para la conexión y el recordset
””””””””””””””””””””””
Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public ObjItem As ListItem
Sub Main()
On Error Resume Next
Call InitCommonControls
Err.Clear
FrmPrincipal.Show
End Sub
‘ abre
Public Sub IniciarConexion()
cnn.Open “driver={mysql odbc 3.51 driver};” _
& “user=root;” _
& “password=123456;” _
& “server=localhost;” _
& “database=asociacion;”
rs.Open “select * from personas”, cnn, adOpenStatic, adLockOptimistic
End Sub
Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
On Error GoTo ErrorSub
‘limpia el LV
LV.ListItems.Clear
‘ si hay registros
If rs.RecordCount > 0 Then
‘ recorre el recordset
While Not rs.EOF
‘ añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))
ObjItem.SubItems(0) = rs!cedula
ObjItem.SubItems(1) = rs!nombre
ObjItem.SubItems(2) = rs!apellido
ObjItem.SubItems(3) = rs!fecha_nacimiento
ObjItem.SubItems(4) = rs!ciudad_nacimiento
If Abs(rs!sexo) = 0 Then
ObjItem.SubItems(5) = “Masculino”
Else
ObjItem.SubItems(5) = “Femenino”
End If
ObjItem.SubItems(6) = rs!direccion
ObjItem.SubItems(7) = rs!telefono
ObjItem.SubItems(8) = rs!email
ObjItem.SubItems(9) = rs!estado_civil
ObjItem.SubItems(10) = rs!profecion_oficio
ObjItem.SubItems(11) = rs!empresa
ObjItem.SubItems(12) = rs!nombre_emergencia
ObjItem.SubItems(13) = rs!parentesco
ObjItem.SubItems(14) = rs!numero_contacto
ObjItem.SubItems(15) = rs!cargo
ObjItem.SubItems(16) = rs!estado
ObjItem.SubItems(17) = rs!nota
‘ siguiente registro
rs.MoveNext
Wend
End If
Call ForeColorColumn(&H8000&, 0, FrmPrincipal.LV)
‘Call ForeColorColumn(vbRed, 6, FrmPrincipal.LV)
Exit Sub
ErrorSub:
If Err.Number = 94 Then Resume Next
End Sub
‘ cierra
Sub Desconectar()
On Local Error Resume Next
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
el me guarda pero no me muestra en el ListView lo que hay en la base
¿Los datos los estás rescatando sin problema de la base de datos?
Es decir, ¿has conseguido mostrar un msgbox por ejemplo con el rs!celula?
Siempre ve por partes, en principio (como siempre) el código parece estar correcto, pero es posible que no estés haciendo bien la consulta, la conexión o alguna cosa así.
Aún así, creo que el problema puede ser el añadir valores al ListView, en estos días estaba pensando hacer un videotutorial sobre el componente listview de visual basic, así que si eres paciente explicaré cosas básicas para que aprendas tambien a utilizar ese objeto.
Un saludo!
P.D. Las dudas de Visual Basic, escribelas en algun post de visual basic 😀
muy buenas tardes
primeramente gracias porque me han servido tus aportes
la presente es para pedirte un ultimo favor con mi proyeto lo ue asa es ue ya me guarda elimina, modifica y me muestra en el listview los datos de la base de dato el problema como que hera la base de datos volvi a hacerla y me funciona pero ahora quiero utilizar el datarepor pero me envia un mensaje de error que el tamaño del informe es mayor que el del papel y he intentado coabiarlo a horizotal pero no lo he logrado sabes alguna forma de poder utilizar el datarepor para un tamaño mayor al predestinado pues quiero que muestre en unos reportes 8 datos pero en otros necesitare mostrar mas o menos datos
otra pregunta es que quiero mostrar unos reportes de unos datos de una tabla y sera posible hacer que en un datarepor me muestre como en forma de carnet o tabla por lo menos 3 cada ves que presione un boton de adelante o con otra forma para imprimirlos lo que quiero es mostrar en forma de tablas unos datos de cada persona por ejemplo si son tres que muestre en cada tabla los datos de ellos pero que me permita pasar a los otros tres, pero si hay una forma de tener como una plantilla que se repita el numero de datos que tengo en la tabla seria genial es que solo tengo la idea pero no se como podria hacerlo
la tabla estaria asi
nombre persona
dato1 dato2 dato3 dato4 dato5 dato6
x x x x x x
x x x x x x
nombre persona2
dato1 dato2 dato3 dato4 dato5 dato6
x x x x x x
x x x x x x
nombre persona3
dato1 dato2 dato3 dato4 dato5 dato6
x x x x x x
x x x x x x
………………..
las personas tiene varios datos
el modelo seria el anterio eso si ambian los nombres y titulos
si alguna idea y me la quieres pasar enviala a programadorjcb@hotmail.com
gracias
muchas gracias
en el mensaje anterio en el diseño va sentrado los nombres y los datos 1….6 representan las colomnas y sus datos
Que tal Joel?
Hacía tiempo que no dabas señales de vida 😀
Pues con respecto a tu duda, no puedo ayudarte, ya que no he utilizado nunca los reportes con visual basic 6. Cada vez que he tenido que imprimir he utilizado el metodo printer de vb6. Así que yo mismo me he ido haciendo poco a poco un impresor de documentos, es algo menos optimo pero para lo que tenía que imprimir ha sido por ahora más que suficiente.
Si quieres que te comente como funciona me lo dices, pero el tema de reportes como ya he dicho, no tengo ni idea.
Un saludo! 🙂
bueno gracias si lo logro te estare mostrando como lo hice
Nada! a ver si es verdad y lo explicas para los demás!
Un saludo! 🙂
vale … vale… vale… vale … vale … y mas vale … debes ejercitarte para quitarte esa muletilla … Felicitaciones por los videotutoriales vale … 🙂
Diculpame ¿Vale? 😀
Este tutorial que has visto es de los primeros que hice y creo que poco a poco he ido puliendo mi forma de explicar 😉
Gracias por las felicitaciones! Espero verte más por aquí!
Un saludo!