mysqldump mysql 8,在命令行中没有密码的Windows服务器上

标签 mysql windows

我想使用每日批处理作业而不在批处理文件中包含密码。

那里有很多 Linux 示例。我找不到 Windows 版本。

我的开发机器在 Windows Server 2016 上使用 MySQL 8.0.0.12。 我使用 Windows mysql 安装程序并添加了 Mysql 服务器和 Workbench。

mysqldump 的位置: "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe"

https://dev.mysql.com/doc/refman/8.0/en/option-files.html 表 4.1 指定了 8 个可能的位置。表中的最后一个选项优先。

C:\ProgramData\MySQL\MySQL 服务器 8.0\数据

您可以在配置文件中包含 sql 用户名和密码。 现在你在使用 mysqldump 时引用这个文件。 在 Linux 中,配置文件以 .cnf 结尾,在 Windows 中,它们以 .ini 结尾

如果不存在,请将 mysql bin 目录添加到 Windows 路径:C:\Program Files\MySQL\MySQL Server 8.0\bin

我更改了“C:\ProgramData\MySQL\MySQL Server 8.0\Data\my.ini”。

作为第一步,我使用了 root 用户和密码。 all-databases - 这将使 mysqldump 备份所有文件。 我将此部分添加到 .ini 文件的底部。

[mysqldump]
user=root
password=**yourpasswordhere**
all-databases

我认为 mysqldump 会从 my.ini 中获取用户和密码,备份会起作用。

C:\ProgramData\MySQL\MySQL Server 8.0>"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlpump.exe"

mysqlpump:出现错误:1045:连接到 MySQL 服务器时,用户 'ODBC'@'localhost'(使用密码:NO)的访问被拒绝 mysqlpump: [错误] (11)

转储过程遇到错误,将不会继续。

最佳答案

但是,我发现解决方案是使用

-defaults-file ="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"

SO 2010

--这在命令提示符下有效:

 mysqldump  --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"  --result-file test003.sql

--result-file 这避免了任何 utf 和 powershell issues与 >

关于mysqldump mysql 8,在命令行中没有密码的Windows服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619360/

相关文章:

MySQL 查询到 SQLite 查询过去 24 小时的事件

mysql - 在 JOIN 中选择最小值

php - 设置 http header 时丢失 session 数据(在 CodeIgniter 中)

Windows 服务看不到 Shell_TrayWnd

windows - 在 DisableProcessWindowsGhosting 之后,有没有办法重新打开 Windows 重影功能?

MySQL连接2个表

MySQL 查询行序列

删除临时文件时,C# 应用程序无一异常(exception)地退出

php - 如何从网站上抓取所有内容?

mysql - 无法从本地机器连接 mysql 到远程服务器 10060