Msyql:mysql_config_editor 免密碼登入-加密版

在批次處理 mysql 作業,為免去人工輸入密碼,通常有三種做法,我還是小嫩嫩的時候都是用第一種…

  1. 直接在bash 填入密碼,簡單好用但是不安全,mysql 還會發警告
    mysql -uroot -pxxxx
    Warning: Using a password on the command line interface can be insecure
    
  2. 針對所有使用者免必密碼-修改my.cnf
    vim /etc/my.cnf
    [client]
    user=“root”
    password=“xxxx”
    

    2–1 針對個別使用者的免密碼-在自己的家目錄建立~/.my.cnf

    vim ~/.my.cnf
    [client]
    user=“root”
    password=“xxxx”
    最好加個權限控管,因為“明碼”,你知道的! chmod 600 ~/.my.cnf

接著 打入mysql -uroot 就可操作 mysql 了

以上都是明碼,我也不太喜歡,還好 mysql 出了第三種方法,就是 mysql_config_editor

host:
mysql_config_editor set –login-path=name –host=localhost –user=root –password
Enter password: (input) “xxxx”

Socket: mysql_config_editor set -G name -S /tmp/mysql.sock -u root -p Enter password: (input) “xxxx”

-h,–host=name 添加host到登陸文件中 -G,–login-path=name 在登錄文件中為login path添加名字(默認為client) -p,–password 在登陸文件中添加密碼(該密碼會被mysql_config_editor自動加密) -u,–user 添加用戶名到登陸文件中 -S,–socket=name 添加sock文件路徑到登陸文件中 -P,–port=name 添加port到登陸文件中

接著你就會發現在家目錄下有個 ~/.mylogin.cnf 加密的二進制檔案,相對安全[不會有人承諾100%安全的..],你可以用以下指令查看已建置的內容

mysql_config_editor print –all

然後使用以下指令操作mysql

mysql –login-path=name

移除設定

mysql_config_editor remove –login-path=name

更多說明請見 https://dev.mysql.com/doc/refman/5.7/en/mysql-config-editor.html

Percoan 體系注意:
Percona client 5.7 找不到 mysql_config_editor 的解法

apt install libperconaserverclient20-dev
#注意:有可能會連mysql-server 一起update,production 環境要留意
(Visited 10 times, 1 visits today)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *