3 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
一些答案提到將密碼放入配置文件中。
另外,您也可以從腳本中進(jìn)行操作export MYSQL_PWD=yourverysecretpassword。
與使用配置文件相比,此方法的好處在于,不需要單獨(dú)的配置文件即可與腳本保持同步。您只有要維護(hù)的腳本。
有沒(méi)有缺點(diǎn)給此方法。
該密碼對(duì)系統(tǒng)上的其他用戶(hù)不可見(jiàn)(如果在命令行上,則將可見(jiàn))。環(huán)境變量?jī)H對(duì)運(yùn)行mysql命令的用戶(hù)和root用戶(hù)可見(jiàn)。
任何可以讀取腳本本身的人都可以看到該密碼,因此請(qǐng)確保腳本本身受到保護(hù)。這與保護(hù)配置文件沒(méi)有什么不同。如果要使腳本公開(kāi)可讀(export MYSQL_PWD=$(cat /root/mysql_password)例如),仍然可以從單獨(dú)的文件中獲取密碼。導(dǎo)出變量比構(gòu)建配置文件要容易得多。
例如,
$ export MYSQL_PWD=$(>&2 read -s -p "Input password (will not echo): "; echo "$REPLY")
$ mysqldump -u root mysql | head
-- MySQL dump 10.13 Distrib 5.6.23, for Linux (x86_64)
--
-- Host: localhost Database: mysql
-- ------------------------------------------------------
-- Server version 5.6.23
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
$ mysqldump -u root mysql | head
-- MySQL dump 10.13 Distrib 5.6.23, for Linux (x86_64)
--
-- Host: localhost Database: mysql
-- ------------------------------------------------------
-- Server version 5.6.23
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
添加回答
舉報(bào)