Solusi 1:
Baik untuk MySQL dan PostgreSQL Anda dapat menentukan pengguna dan kata sandi Anda di file konfigurasi lokal. .my.cnf untuk MySQL dan .pgpass untuk PostgreSQL. File-file ini harus ada di direktori home Anda (mis. ~/.my.cnf).
.my.cnf:
[mysql]
user=user
password=password
.pgpass:
host:port:database:user:password
Anda dapat memiliki entri karakter pengganti di sini, menggantikan kolom apa pun dengan *******.
PS:JANGAN PERNAH MENENTUKAN SANDI PADA BARIS PERINTAH! Ini dapat terlihat sempurna dengan ps jika sistem Anda tidak dikonfigurasi untuk tidak menampilkan proses milik pengguna lain.
@thinice:Jika Anda ingin membuat file tersebut benar-benar aman, Anda harus melakukan:
umask 077
touch .my.new.config
umask 022 # or whatever was your default
Dengan cara ini file akan dibuat dengan izin yang aman sejak awal dan tidak ada penyadap yang memiliki kesempatan untuk mencuri kata sandi Anda.
PostgreSQL akan menolak untuk menggunakan file dengan izin lebih tinggi dari 0600.
Solusi 2:
mysql_config_editor set --login-path=storedPasswordKey --host=localhost --user=root --password
Bagaimana cara menjalankan baris perintah dengan kata sandi yang aman??gunakan editor konfigurasi!!!
Pada mysql 5.6.6 Anda dapat menyimpan kata sandi dalam file konfigurasi dan kemudian menjalankan perintah cli seperti ini....
mysql --login-path=storedPasswordKey ....
--login-path menggantikan variabel... host, pengguna DAN kata sandi.sangat baik!
Solusi 3:
Jangan menaruh tanda kutip di sekitar kata sandi karena jika Anda melakukannya, tanda kutip dianggap sebagai bagian dari kata sandi.
Solusi 4:
MYSQL_USER="root"
MYSQL_PASSWORD="PASSWORD"
DBNAME="DB_NAME"
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE DATABASE $DBNAME;" 2> /tmp/error1
STATUS=$?
if [ $STATUS -eq 0 ];
then
echo -e "Database '$DBNAME' is created"
elif (grep -i "^ERROR 1007" /tmp/error1 > /dev/null);
then
echo -e "Database '$DBNAME' already exists"
else
echo -e "Failed to create database '$DBNAME'"
fi
rm -r /tmp/error1
Ini akan berhasilTerima kasih