Eine ähnliche Frage gibt es bei StackOverflow.
Um meine Antwort von dort zusammenzufassen.
Du kannst export MYSQL_PWD=yourverysecretpassword
.
Der Vorteil dieser Methode gegenüber der Verwendung einer Konfigurationsdatei besteht darin, dass Sie keine separate Konfigurationsdatei benötigen, um mit Ihrem Skript synchron zu bleiben. Sie müssen nur das Skript warten.
Es ist kein Nachteil dieser Methode.
Das Kennwort ist für andere Benutzer im System nicht sichtbar (es wäre sichtbar, wenn es sich in der Befehlszeile befindet). Die Umgebungsvariablen sind nur für den Benutzer sichtbar, der den Befehl mysql und root ausführt.
Das Kennwort ist auch für alle sichtbar, die das Skript selbst lesen können. Stellen Sie daher sicher, dass das Skript selbst geschützt ist. Dies unterscheidet sich in keiner Weise vom Schutz einer Konfigurationsdatei. Sie können das Kennwort weiterhin aus einer separaten Datei beziehen, wenn das Skript öffentlich lesbar sein soll (export MYSQL_PWD=$(cat /root/mysql_password)
. Es ist immer noch einfacher, eine Variable zu exportieren, als eine Konfigurationsdatei zu erstellen.
Z.B,
$ export MYSQL_PWD=xoF3mafn5Batxasdfuo
$ 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 */;
echo "$MYSQL_PASS"
Sie es, bevor Sie es an diemysql
Leitung übergeben. Hat es das richtige Passwort?