विकल्प फ़ाइल (my.cnf / my.ini) का उपयोग
MySQL Utilities (mysqldump, mysqldiff, आदि) के साथ कमांड लाइन पर पासवर्ड देने से बचने के लिए (सुरक्षा चेतावनी: "Using a password on the command line interface can be insecure"), **विकल्प फ़ाइल** में क्रेडेंशियल स्टोर करें।
चरण 1: डेटा डायरेक्टरी ढूंढें
mysql> SELECT @@datadir;
+---------------------------------------------+
| @@datadir |
+---------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 8.0\Data\ |
+---------------------------------------------+
1 row in set (0.00 sec)
इस पथ में my.cnf (Linux/Mac) या my.ini (Windows) फ़ाइल खोजें।
चरण 2: विकल्प फ़ाइल में क्रेडेंशियल जोड़ें
[client] और अन्य समूहों के तहत:
[client]
user = root
password = "yourPassword"
[mysql]
user = root
password = "yourPassword"
[mysqldiff]
user = root
password = "yourPassword"
[mysqldump]
user = root
password = "yourPassword"
चरण 3: फ़ाइल अनुमति सुरक्षित करें (Linux/Mac)
chmod 600 ~/.my.cnf
केवल मालिक पढ़/लिख सके।
उपयोग
अब बिना पासवर्ड के चलाएं:
mysqldump --defaults-file=/path/to/my.cnf -u root mydb > backup.sql
mysqldiff --server1=root@localhost db1:db2
वैकल्पिक: mysql_config_editor (MySQL 5.6+)
एन्क्रिप्टेड लॉगिन पथ स्टोर करें:
mysql_config_editor set --login-path=local --host=localhost --user=root --password
फिर उपयोग करें:
mysqldump --login-path=local mydb > backup.sql
सुरक्षा सर्वोत्तम अभ्यास
- कभी भी स्क्रिप्ट/इतिहास में प्लेनटेक्स्ट पासवर्ड न रखें
- विकल्प फ़ाइल अनुमति 600 रखें
mysql_config_editorप्राथमिकता दें (एन्क्रिप्टेड)- उत्पादन में डेडिकेटेड कम-प्रिविलेज उपयोगकर्ता बनाएं
- पर्यावरण चर
MYSQL_PWDअसुरक्षित है (प्रक्रिया सूची में दिखता है)