GNU/Linux >> Znalost Linux >  >> Linux

Připojit se k MySQL pomocí příkazového řádku bez použití hesla root?

Řešení 1:

Jak pro MySQL, tak pro PostgreSQL můžete zadat svého uživatele a heslo v místním konfiguračním souboru. .my.cnf pro MySQL a .pgpass pro PostgreSQL. Tyto soubory by měly být ve vašem domovském adresáři (tj. ~/.my.cnf).

.my.cnf:

[mysql]
user=user
password=password

.pgpass:

host:port:database:user:password

Zde můžete zadat zástupný znak, kterým nahradíte libovolné pole za *******.

PS:NIKDY NEZADÁVEJTE HESLO NA PŘÍKAZOVÉ ŘÁDCE! To lze perfektně vidět pomocí ps pokud váš systém není nakonfigurován tak, aby nezobrazoval procesy, které patří jiným uživatelům.

@thinice:Pokud chcete tyto soubory vytvářet opravdu bezpečně, měli byste to udělat:

umask 077
touch .my.new.config
umask 022 # or whatever was your default

Tímto způsobem by byl soubor vytvořen se zabezpečenými oprávněními od začátku a žádný odposlouchávač by neměl šanci vyzradit vaše heslo.

PostgreSQL stejně odmítne použít soubor s oprávněními vyššími než 0600.

Řešení 2:

mysql_config_editor set --login-path=storedPasswordKey --host=localhost --user=root --password

Jak mohu spustit příkazový řádek se zabezpečeným heslem? Použijte konfigurační editor!!!

Od mysql 5.6.6 můžete uložit heslo do konfiguračního souboru a poté spouštět příkazy cli, jako je tento....

mysql --login-path=storedPasswordKey ....

--login-path nahrazuje proměnné... hostitel, uživatel A heslo. vynikající správně!

Řešení 3:

Neuvádějte kolem hesla uvozovky, protože pokud tak učiníte, jsou uvozovky považovány za součást hesla.

Řešení 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 

To bude stačitDíky


Linux
  1. Získat celkovou velikost mého pevného disku v Linuxu pomocí příkazového řádku bez oprávnění root?

  2. Linux:nastavte datum pomocí příkazového řádku

  3. Nastavení hesla root v čerstvé instalaci mysql 5.7

  1. Jak vytvořit databázi v MySQL pomocí příkazového řádku

  2. Změnit root heslo pomocí Sudo, bez Su?

  3. Povolit linuxovému root uživateli mysql root přístup bez hesla

  1. Jak restartovat Linux pomocí příkazového řádku

  2. Resetujte kořenové heslo MySQL

  3. Jak změnit heslo root mysql