问题说明了一切 - 我正在创建一个 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/