我的MySQL数据库被设置为监听TCP端口3307而非3306。我正尝试使用mysqldump
命令,我将命令行写成了这样:
mysqldump -u root -p database > "path_to_dumpfile\database.sql"
然后,我被提示输入密码,然后收到以下错误消息:
我是不是做错了什么?或者有没有我没按照的步骤?ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (36)
我的MySQL数据库被设置为监听TCP端口3307而非3306。我正尝试使用mysqldump
命令,我将命令行写成了这样:
mysqldump -u root -p database > "path_to_dumpfile\database.sql"
我是不是做错了什么?或者有没有我没按照的步骤?ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (36)
尝试在命令行中添加--port=port_num
或-P port_num
,例如:
mysqldump -u root --port=3307 -p database > ..\path_to_dumpfile\database.sql
我建议您查看MySQL手册,了解mysqldump
命令的其他可能参数,链接如下。
我也遇到了同样的问题,使用了--port参数后,我按照serverfault答案中的建议解决了问题:
当给出localhost参数时,MySQL会使用sockets。改用127.0.0.1代替。
正如其他人建议的那样,问题可能是在使用localhost/127.0.0.1时使用了错误的协议。
因此,除了--port=3307
之外,还需要添加协议。
尝试:
--protocol=TCP --port=3307
来自 man mysqldump
:
--protocol={TCP|SOCKET|PIPE|MEMORY}
连接到服务器时使用的连接协议。当其他连接参数通常会导致使用不想要的协议时,它非常有用。有关允许的值的详细信息,请参见第4.2.2节“连接到MySQL服务器”。
我有一个类似的问题,我的服务器上运行着两个mysql实例,一个在3306端口,另一个在3307端口。尽管我指定了端口为3307,但似乎mysqldump连接到的是在3306端口的实例。我的解决方法是关闭在3306端口上运行的实例。我只能认为这是mysqldump识别正在运行的实例的bug。
我知道我对这个帖子来说有些晚了,但是它可能会在将来帮助某个人。
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
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
mysqldump -u 这里放用户名 -p -h localhost --port=3306 数据库名 > 文件名.sql
对于*nix客户端,请使用--host=127.0.0.1
并显式提供--port=3307
mysqldump --host=127.0.0.1 --port=3307 -u root -p database > "path_to_dumpfile\database.sql"
这是来自MySQL文档的内容:
仅使用或检查与所选传输协议相关的连接选项。其他连接选项将被忽略。例如,在Unix上使用--host=localhost时,即使给出--port或-P选项指定TCP/IP端口号,客户端也会尝试使用Unix套接字文件连接到本地服务器。
为确保客户端与本地服务器建立TCP/IP连接,请使用--host或-h指定主机名值为127.0.0.1(而不是localhost)或本地服务器的IP地址或名称。
使用mysqldump命令备份所有数据库,包括存储过程。命令如下:
mysqldump --host 192.168.1.1 --port 3307 -u root -pYourrootpassword --routines --all-databases |gzip > /yourbackuppath/filename_date +%d
.sql.gz
-h localhost --port=3307
。加上-p
选项会强制让MySQL命令行工具提示输入密码。 - Marc B-P
可以指定端口。这是Marc B指出的--port
选项的缩写。 - Toddius Zho