在批次處理 mysql 作業,為免去人工輸入密碼,通常有三種做法,我還是小嫩嫩的時候都是用第一種…
- 直接在bash 填入密碼,簡單好用但是不安全,mysql 還會發警告
mysql -uroot -pxxxx Warning: Using a password on the command line interface can be insecure
- 針對所有使用者免必密碼-修改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)