2014-01-03 5 views
0

У меня возникла проблема с экспортом базы данных mysql из wampserver. Im, используя следующий код:Экспорт базы данных mysql из wampserver с помощью vb6

Private Sub cmdBackup_Click() 
Screen.MousePointer = vbHourglass 
    DoEvents 

    cmd = Chr(34) & "C:\Documents and Settings\Owner\Desktop\Documents\Clients\Darwin\mysql\mysqldump" & Chr(34) & "mysqldump.exe -uroot -p -hlocalhost school > c:\a.sql" 
    Call execCommand(cmd) 

    Screen.MousePointer = vbDefault 
    MsgBox "Done" 

End Sub 

Как и ожидалось, .sql файл был создан в моей C: /. Но по неизвестной причине созданный sql-файл пуст (буквально пустой, 0 байт, без текстов внутри).

Может кто-нибудь мне помочь? Заранее спасибо! Извините за мой английский.

+0

делает окна и возможность перенаправлять данные? Я думаю, что не – Rugal

+0

Прошу прощения, но я не понимаю? Что вы имеете в виду возможность перенаправления данных? – kenkenXD

+0

он означает ваш> в cmd - это перенаправление – niyou

ответ

0

Я понятия не имею, если этот код должен работать его уже много лет, так как я использовал VB6, но одна очевидная проблема, я вижу в том, что при выполнении этого оператора

mysqldump.exe -uroot -p -hlocalhost school > c:\a.sql 

в mysqlsump.exe будет видеть параметр -p и ожидать ввода пароля с консоли. Попробуйте вручную из командной строки!

Я предполагаю, что нет консоли, и если бы пользователь все равно не знал пароль для учетной записи root.

Быстрое решение было бы изменить код:

mysqldump.exe -uroot -pSuperUsersPassword -hlocalhost school > c:\a.sql 

но это кошмар главной безопасности как вы жёстко пароль Пользователи MySQL Супер в куске коды. Помните, что MySQL является надлежащей СУБД и может управлять множеством разных баз данных, а не только той, которую вы используете.

Также если пароль был изменен, вы должны помнить об изменении этого кода в одно и то же время, кошмар для обслуживания.

По крайней мере, вы должны создать новую учетную запись пользователя в MySQL, которая имеет доступ только к одной базе данных и имеет только привилегии делать резервные копии (SELECT, SHOW DATABASES, LOCK TABLES, EVENT). Тогда, по крайней мере, вы не отдаете драгоценности Crown всем, кто может видеть ваш исходный код, или можете прочитать шестнадцатеричный дамп вашего исполняемого файла.

+0

Большое спасибо Mr.Riggs! Я в твоем долгу! :) – kenkenXD

Смежные вопросы