Как использовать mysqldump с localhost: 3307? - PullRequest
4 голосов
/ 19 июля 2011

База данных MySQL была настроена с Localhost: 3307. Я пытаюсь использовать команду mysqldump для резервного копирования всех данных из моего коллеги. Я написал командную строку так: mysqldump -u root -h 3307 -p database> "path_to_dumpfile \ database.sql". Затем мне предложили ввести пароль (который больше не запрашивается при открытии рабочей среды). Проблема в том, что я получаю следующее сообщение об ошибке: «mysqldump: получена ошибка: 2005: неизвестный хост сервера mysql« 3307 »<2> при попытке подключения» Есть что-то, что я сделал не так? или шаг, за которым я не следил?

Спасибо за вашу помощь.

Ответы [ 6 ]

2 голосов
/ 08 августа 2017

У меня похожая проблема в том, что у меня есть два экземпляра mysql, запущенных на моем сервере, один на порту 3306 и один на 3307. Кажется, что mysqldump, хотя я указываю порт, равный 3307, подключается к экземпляру на 3306. Мой обходной путь должен был закрыть экземпляр, работающий на 3306. Я могу только предположить, что это ошибка с тем, как mysqldump идентифицирует работающий экземпляр.

1 голос
/ 21 марта 2018

У меня была такая же проблема, также с использованием параметра --port, и я решил использовать это предложение из ответа сервера об ошибке :

Когда задан параметр localhost, MySQL используетРозетки.Вместо этого используйте 127.0.0.1.

0 голосов
/ 03 июля 2019

Попробуйте добавить --port=port_num в командную строку вместо -h (или -P port_num, если первый не работает), например так:

mysqldump -u root --port=3307 -p database > ..\path_to_dumpfile\database.sql

I 'Я рекомендую вам взглянуть на руководство по MySQL, чтобы узнать о других возможных аргументах для команды mysqldump, ссылка следующая:

Источник: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

0 голосов
/ 18 октября 2018

Как и предполагалось, проблема может заключаться в использовании неверного протокола при использовании localhost / 127.0.0.1.Поэтому в дополнение к --port=3307 также добавьте протокол.

Попробуйте:

--protocol=TCP --port=3307

С man mysqldump:

- protocol = {TCP | SOCKET| ТРУБА | ПАМЯТЬ}

Протокол соединения, используемый для соединения с сервером.Это полезно, когда другие параметры соединения обычно вызывают использование протокола, отличного от того, который вы хотите.Подробнее о допустимых значениях см. В разделе 4.2.2 «Подключение к серверу MySQL».

0 голосов
/ 29 августа 2018

Я знаю, что опоздал на эту тему.Но это может помочь кому-то в будущем.

echo off 

set TIMESTAMP=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%

"C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 ecommerce  > C:\Users\User\Desktop\backmeup\destination_\ecommerce.%TIMESTAMP%.sql 

Как мы все знаем, -p обозначает пароль, а -P обозначает порт.

По какой-то причине, если я использую такие пробелы, как-u root -p пароль и т. д., он все равно выдаст ошибку.

А также, использование --databases не будет работать для меня.Вместо этого я добавил:

echo off 

set TIMESTAMP=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%

    "C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 ecommerce  > C:\Users\User\Desktop\backmeup\destination_\ecommerce.%TIMESTAMP%.sql 
    "C:\Program Files\MySQL\MySQLWorkbench6.3CE\mysqldump.exe" -uroot -ppassword -hlocalhost -P3307 equipment_rent  > C:\Users\User\Desktop\backmeup\destination_\equipment_rent.%TIMESTAMP%.sql 
0 голосов
/ 29 марта 2018

mysqldump --host 192.168.1.1 --port 3307 -u root -p root -pYourrootpassword --routines --all-database | gzip> /yourbackuppath/filename_date +%d.sql.gz

...