Imansible accedere a mysql con utente non radice dalla row di command

Sto installando un server mysql e sto cercando di creare un utente non privilegiato per accedere a each database che creo. Posso accedere correttamente come root dalla console ma quando cerco di accedere come utente "rotaie" non riesce. Ecco come sembrano i miei utenti:

 mysql> select utente, host, password da mysql.user;
 + --------- + ----------- + --------------------------- ---------------- +
 |  utente |  host |  password |
 + --------- + ----------- + --------------------------- ---------------- +
 |  radice |  localhost |  * 9CAF1C22F1F66A8C47C74E7F6700391F0AB817F0 |
 |  radice |  127.0.0.1 |  * C453FFD4FD2470D5CD56BB9A229BDC7388F3A170 |
 |  datadog |  localhost |  * AEB79FF15C0A9CA185F3768235927ADDD9667C85 |
 |  rotaie  localhost |  * 9CAF1C22F1F66A8C47C74E7F6700391F0AB817F0 |
 + --------- + ----------- + --------------------------- ---------------- +

Le sovvenzioni per l'utente dei binari sembrano così:

 mysql> mostra sovvenzioni per 'rotaie' @ 'localhost';  ';
 + ------------------------------------------------- -------------------------------------------------- ----------------------- +
 |  Sovvenzioni per binari @ localhost |
 + ------------------------------------------------- -------------------------------------------------- ----------------------- +
 |  GRANDI UTILIZZO su *. * A 'rotaie' @ 'localhost' IDENTIFICATO DA PASSWORD '* 9CAF1C22F1F66A8C47C74E7F6700391F0AB817F0' RICHIEDI SSL |
 |  GRANDI TUTTI I PRIVILEGI SU 'resumecompanion_staging`. * A' rotaie '@' localhost '|
 + ------------------------------------------------- -------------------------------------------------- ----------------------- +

si prega di notare che ho impostato la password utente utente root e la password della rotaia come la stessa. Ho fatto questo per confermare che sto immettendo la password corretta e ancora non funziona.

Quando tento di accedere con gli utenti delle rotaie vedo questo:

 mysql -u rails -h localhost -p -protocol = TCP resumecompanion_staging
 Inserire la password:
 ERRORE 1045 (28000): accesso negato per 'rail' utente @ 'localhost' (utilizzando password: SI)

Qualcuno ha delle idee su quello che sto facendo male?

Grazie,

Josh

One Solution collect form web for “Imansible accedere a mysql con utente non radice dalla row di command”

GRANT ... TO 'rails'@'localhost' ... REQUIRE SSL

Per gli avviatori che richiedono SSL per le connessioni da / da localhost è assolutamente insensato. SSL o TLS forniscono una sicurezza di trasporto che non è necessaria per comunicazioni che non lasciano il sistema effettivo, che non forniscono alcuna protezione aggiuntiva e solo overhead supplementari.

Inoltre, le librerie ufficiali MySQL su Linux / UNIX trattano la keyword localhost diversa da quella che ci si aspetterebbe e utilizzerà la socket Unix, non TCP. dal manuale :

Su Unix, i programmi MySQL trattano specificamente il nome host localhost in un modo che è probabilmente diverso da quello che ti aspetti rispetto ad altri programmi basati sulla networking. Per connessioni a localhost, i programmi MySQL tentano di connettersi al server locale utilizzando un file socket Unix. Ciò si verifica anche se viene fornita un'opzione -port o -P per specificare un numero di port. … È inoltre ansible specificare il protocollo di connessione in modo esplicito, utilizzando l'opzione --protocol=TCP .

L'utilizzo dello zoccolo consente di get performance molto più elevate rispetto a TCP / IP e AFAIK, il socket non support SSL (e non ne avrebbe bisogno).

Se forzate una connessione TCP, dovrai GRANT accedere anche su TCP, con GRANT ... TO 'rails'@'127.0.0.1' ... perché la concessione di connessioni da localhost implica la presa Unix.

Particolarmente inutile è che per i messaggi di errore MySQL segue la convenzione per eseguire una ricerca DNS inversa per gli indirizzi IP che convertire l'indirizzo IP 127.0.0.1 in localhost .

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.