ОШИБКА 1044 (42000): доступ запрещен для пользователя '' @ 'localhost'

0

Я работаю над сценарием Perl, который использует mysqldiff для сравнения двух баз данных, а затем применяет изменения к первой базе данных. Команда, которую я использую:

mysqldiff --host=$dbHost --user=$dbUser -A $dbName1 $dbName2

Я получаю разницу, но после этого всегда происходит следующая ошибка:

ERROR 1044 (42000): Access denied for user ''@'localhost' to database <NAME OF THE DATABASE>

Как я могу решить эту проблему?

  • 1
    Похоже, $ dbUser пуст
  • 0
    Нет, я назначил значение для $ dbUser.
Теги:

1 ответ

0

Правильно ли я понимаю, что вы получаете по крайней мере следующее сообщение?:

nПрименить вышеуказанные изменения к $ db0 [y/N]?

если да, похоже, что auth_args из MySQL :: Diff не работает. Вы можете попробовать использовать альтернативные заявления:

GetOptions (\% opts, "help |?", "Debug | d: i", "apply | A", "batch-apply | B", "keep-old-tables | k", "keep-old-columns" | c "," no-old -d efs | n "," only-both | o "," table-re | t = s "," host | h = s "," port | P = s ", "socket | s = s", "user | u = s", "password | p: s", "host1 = s", "port1 = s", "socket1 = s", "user1 = s", "password1: s "," host2 = s "," port2 = s "," socket2 = s "," user2 = s "," password2: s "," толерантный | я "," одиночная транзакция | S "," список столы | l ")

(см. исходный код)

Если это не работает, попробуйте запустить его в режиме отладки с помощью

-d, - -d ebug

  • 0
    Привет, Алекс, спасибо за ответ. Я очень новичок в создании сценариев Perl. Не могли бы вы объяснить, как я могу использовать альтернативные заявления?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню