c# - mysqldump.exe 需要密码,即使它在参数中给出

标签 c# mysql process

问题说明了一切 - 我正在创建一个 Process 并传递一个 ProcessStartInfo 对象和 ProcessStartInfo.fileName 并且ProcessStartInfo.Arguments 作为此进程的构造函数参数。

作为 ProcessStartInfo.fileName 我正在使用已包含在我的项目文件夹中的 mysql.exe。

我的 ProcessStartInfo.Arguments 字符串如下所示;

-h localhost --port=3306 -u pete -p 1234 db1 -r C:\\Users\\Pete\\Databases\\localhost_db1.sql

当我开始这个过程时,控制台要求输入密码 - 问题是我不想重新输入它。身份验证和转储应该一步执行 - 这可能吗?

我正在使用 Visual Studio 2017 Enterprise 和 .NETCoreApp 1.1 框架。

编辑: 当我不使用密码时,一切正常。 .sql 文件已创建 并成功转储数据库。

最佳答案

在编写使用 MySQL 或 Mongodb 等数据集的应用程序时,您永远不想以纯文本形式存储密码。您应该放置一个隐藏的文本框以隐藏密码以防引人注目,或者在编译时使用项目内部的文件来保存密码。

当您使用“-p”参数时,它会假定您要输入与“-u”相同的密码。尝试使用 --username 和 --password 来设置要连接的用户名和密码。

关于c# - mysqldump.exe 需要密码,即使它在参数中给出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45323384/

相关文章:

c# - 菜单设计和事件wpf

mysql - 使用来自其他网络的 mySQL 数据库

mysql - 如何在 SQL 中连接两个表并且每个连接索引只获取 1 行

mysql - 如何在触发器中获取列的默认值?

c# - 如何设置 ASP :Menu with CSS 的样式

c# - System.Reflection.AmbiguousMatchException : 'Ambiguous match found.'

bash - 启动并监视 shell 脚本中的进程以完成

c# - 使用进程类从 C# 执行 python 代码

c# - iTextSharp System.NullReferenceException

shell - Haskell 从进程中读取