【问题标题】:MySQL Utilities - ~/.my.cnf option fileMySQL 实用程序 - ~/.my.cnf 选项文件
【发布时间】:2013-04-24 08:33:03
【问题描述】:

我正在尝试使用 2 个 mysql 实用程序,mysqldiff 和 mysqldbcompare,并希望避免将密码放在命令行上

是否可以使用选项文件来指定我的数据库连接的密码,以防止我必须指定密码?

这是我目前拥有的那种命令......

/usr/share/mysql-workbench/python/mysqldiff --server1=root@localhost --server2=root@localhost --difftype=sql db1:db2

我在 ~/.my.cnf 也有一个文件,它具有“600”权限并包含以下内容..

[client]
user=root
password=mypassword

当我通过命令行连接到 MySQL 时,它会在我的选项文件中获取详细信息,但 mysql 实用程序不会:-/

【问题讨论】:

    标签: mysql passwords utilities


    【解决方案1】:

    试试这个 -

    [client]
    user=root
    password="pass"
    
    [mysql]
    user=root
    password="pass"
    
    [mysqldump]
    user=root
    password="pass"
    
    [mysqldiff]
    user=root
    password="pass"
    

    .my.cnf 的位置:~/.my.cnf

    请参考名为Using Option Files的手册页

    【讨论】:

      【解决方案2】:

      要增强@Retraut 的答案,请在引号中输入您的密码。如果您的密码中有特殊字符,则接受的答案将不起作用,顺便说一句,这是一种很好的安全做法。

      [client]
      user=root
      password="p@$$"
      
      [mysql]
      user=root
      password="p@$$"
      
      [mysqldump]
      user=root
      password="p@$$"
      
      [mysqldiff]
      user=root
      password="p@$$"
      

      http://dev.mysql.com/doc/refman/5.7/en/option-files.html

      搜索“这是一个典型的用户选项文件:”并查看他们在其中陈述的示例。祝你好运,我希望能为别人节省一些时间。

      【讨论】:

      • 谢谢!如果可能的话,你会给多个赞成票吗:)
      • 我想知道为什么我的密码不被接受。现在我知道了。
      • 对于无论如何要存储的 root 密码,最好生成一个 ~128 位数字并将其保存为十六进制或其他格式。绝对垃圾的16个Latin-1字符相当于[0-9a-f]的32个字符。
      猜你喜欢
      • 1970-01-01
      • 2016-11-24
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多