GNU/Linux >> Znalost Linux >  >> Linux

Testovat přihlašovací údaje MySQL z příkazového řádku Linuxu?

mysql -h host -u user -p<whatever> -e"quit"

To vám umožní použít stejný připojovací řetězec, který používáte pro programové odesílání dotazů na server. Můžete přidat || exit 1 do konce pro automatické ukončení u neplatných argumentů. Můžete také chtít přesměrovat stderr na /dev/null pokud se vám nelíbí automaticky generovaná chybová zpráva MySQL.


Můžete použít následující příkaz (za předpokladu, že máte v PATH nastaveno mysql):

mysql -h host -u user -p

Stačí nahradit hostitel a uživatel se správnými hodnotami a poté byste měli být vyzváni k zadání hesla.


Odpověď @Phil's Answer a @Mr.Brownstone's Answer by pro vaši otázku měly stačit, takže +1 pro oba.

Pro následující předpokládejme, že se přihlašujete pomocí uživatelského jména myuser

Jakmile se připojíte k mysql, měli byste spustit následující dotaz:

SELECT USER(),CURRENT_USER();
  • USER() hlásí, jak jste se pokusili ověřit v MySQL
  • CURRENT_USER() hlásí, jak vám bylo povoleno ověření v MySQL

Někdy jsou různé. To vám může poskytnout přehled o tom, proč se můžete přihlásit k mysql.

Zde je další dotaz, který musíte spustit:

SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';

To vám ukáže způsoby, kterými se můžete přihlásit jako myuser .

Pokud vidíte 'myuser'@'localhost' , pak se můžete ověřit ze serveru DB.

Pokud vidíte 'myuser'@'127.0.0.1' a nevidíte 'myuser'@'localhost' , pak se můžete znovu ověřit z DB serveru, ale musíte zadat --protocol=tcp z příkazového řádku.

Pokud vidíte 'myuser'@'%' , pak se můžete vzdáleně přihlásit z libovolného serveru.

Pokud vidíte 'myuse'[email protected]'10.20.30,%' , pak můžete provádět vzdálené přihlášení pouze z 10.20.30.% síťového bloku.

Jakmile uvidíte, co má 'mysql.user' pro vašeho uživatele, možná budete chtít povolit nebo omezit přihlášení myuser jedním způsobem a ne druhým.

Pokud chcete jednoduše zkontrolovat, zda je heslo pro myuser je whateverpassword , můžete provést následující:

SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');

Můžete to zkontrolovat z příkazového řádku následovně:

PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`

Pokud nejste root a chcete otestovat pouze myuser, můžete to udělat takto:

PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`

Pokud získáte 1, heslo pro myuser je ověřeno jako dobré.


Linux
  1. Nakonfigurujte pracovní prostor Linuxu vzdáleně z příkazového řádku

  2. Jak spouštět dotazy MySQL/MariaDB přímo z příkazového řádku Linuxu

  3. 4 způsoby, jak odeslat e-mailovou přílohu z příkazového řádku systému Linux

  1. Prohledávejte torrenty z příkazového řádku v Linuxu

  2. Linux su příkaz

  3. zkrátit tabulku pomocí příkazového řádku v Linuxu

  1. Programujte hardware z příkazového řádku Linuxu

  2. Jak se připojit k databázi PostgreSQL z příkazového řádku v Linuxu

  3. matlab spustí skript z příkazové řádky linuxu