EROARE 1698 (28000): Acces interzis pentru utilizatorul 'rădăcină'@'localhost'
Am'm configurarea unui server nou și continua să fie difuzate în această problemă.
Când m-am încercați să vă conectați la baza de date MySQL cu utilizatorul root, primesc eroarea:
EROARE 1698 (28000): Acces interzis pentru utilizatorul 'rădăcină'@'localhost'
Nu't contează dacă am conecta prin terminal(SSH), prin PHPMyAdmin sau un Client MySQL, de exemplu, Navicat. Toate acestea nu reușesc.
M-am uitat în mysql.masa de utilizator și pentru a obține următoarele:
+------------------+-------------------+
| user | host |
+------------------+-------------------+
| root | % |
| root | 127.0.0.1 |
| amavisd | localhost |
| debian-sys-maint | localhost |
| iredadmin | localhost |
| iredapd | localhost |
| mysql.sys | localhost |
| phpmyadmin | localhost |
| root | localhost |
| roundcube | localhost |
| vmail | localhost |
| vmailadmin | localhost |
| amavisd | test4.folkmann.it |
| iredadmin | test4.folkmann.it |
| iredapd | test4.folkmann.it |
| roundcube | test4.folkmann.it |
| vmail | test4.folkmann.it |
| vmailadmin | test4.folkmann.it |
+------------------+-------------------+
După cum puteți vedea, rădăcină ar trebui să aibă acces.
Serverul este destul de simplu, așa cum am încercat pentru a depana acest lucru pentru un timp acum..
L's rulează Ubuntu 16.04.1 E cu Apache, MySQL și PHP, astfel încât să poată găzdui site-uri web, și iRedMail 0.9.5-1, astfel încât să poată găzdui e-mail.
Conectare la baza de date MySQL funcționează bine înainte de a mă instala iRedMail. Am încercat, de asemenea, instalarea doar iRedMail, dar apoi rădăcină, de asemenea, nu't de lucru...
Dacă cineva ar putea spune-mi cum să-mi aranjez MySQL login problema sau cum pot instala iRedMail, pe partea de sus a unei existente MySQL instalat. Și da, am încercat Sfaturi de Instalare și pot't găsi acele variabile în fișierele de configurare.
Unele sisteme, cum ar fi Ubuntu, mysql este folosind implicit UNIX auth_socket plugin.
Practic înseamnă că: db_users folosind-o, va fi "uat" de utilizator de sistem credentias. Puteți vedea dacă dumneavoastră "radacina" utilizatorul este configurat astfel de a face următoarele:
După cum puteți vedea în interogare, "root", utilizatorul este folosind
auth_socket
pluginExistă 2 moduri de a rezolva acest lucru:
mysql_native_password
pluginutilizator_bd
cu tinesystem_user
(recomandat)Opțiunea 1:
Opțiunea 2: (înlocuiți YOUR_SYSTEM_USER cu numele de utilizator trebuie)
Amintiți-vă că, dacă utilizați opțiunea #2'll trebuie să se conecteze la mysql ca sistemul dvs. de utilizator (
mysql -u YOUR_SYSTEM_USER
)Notă: Pe unele sisteme (de exemplu, Debian întindere) 'auth_socket' plugin este numit 'unix_socket', astfel încât corespunzătoare SQL command ar trebui să fie:
UPDATE user SET de plugin='unix_socket', UNDE Utilizator='YOUR_SYSTEM_USER';
Actualizare: de la @andy's comenteze pare că mysql 8.x.x actualizat/înlocuit
auth_socket "pentru" caching_sha2_password
eu nu't au un sistem de configurare cu mysql 8.x.x pentru a testa acest lucru, cu toate acestea, pașii de mai sus ar trebui să vă ajute să înțeleagă problema. Aici's a răspuns:O schimbare de MySQL 8.0.4 este că noua autentificare implicit plugin este 'caching_sha2_password'. Nou 'YOUR_SYSTEM_USER' va avea acest auth plugin și vă puteți conecta la bash shell acum cu "mysql -u YOUR_SYSTEM_USER -p" și să furnizeze parola pentru acest utilizator pe prompt. Nu este nevoie de "UPDATE user SET de plugin" pas. Pentru 8.0.4 default auth plugin actualizare vedea, https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/
Verificați aici:
NOUA Versiune de MYSQL face în acest fel.
În noul my-sql dacă parola este lăsat gol în timp ce instalarea apoi ea se bazează pe
auth_socket
plugin.Calea corectă este să vă conectați la my-sql cu "sudo" privilegiu.
Și apoi actualizați parola folosind:
Odată ce acest lucru este făcut pentru a opri și de a începe la serverul mysql.
Pentru detalii complete puteți face referire la acest link.
Nu comentez pentru orice îndoială.
Am avut această problemă pe un Debian 8 NEG că am fost prin interactiunea cu Chit pe Windows 10 desktop.
Am încercat diverse sugestii pe aici, dar nimic nu a lucrat și eu sunt difuzate MariaDB pe Debian gazdă. În final, am constatat că nu puteam't începe db server în modul de siguranță, dar n-am't nevoie pentru a și următoarele comenzi, de fapt, a lucrat pentru mine și anume să permită un nou create MySql utilizator pentru a vă conecta la MySql/MariaDB server:
Dacă cele de mai sus nu't destul de lucru pentru tine, urmați pașii descriși în zetacu's postul de mai sus (zetacu), apoi urmați pașii mei.
Acum ar trebui să fie capabil de a utiliza un terminal de la distanță client și în siguranță a vă conecta la mysql folosind comanda:
*introduceți parola când vi se solicită
Aș sugera pentru a elimina de conectare Mysql -
UPDATE-Acest lucru este pentru Mysql versiunea 5.5,dacă versiunea dvs. este diferit ,vă rugăm să schimbați prima linie în mod corespunzător
Și Instalați din Nou Dar de data asta a seta o parola de root tine. Acest lucru va salva o mulțime de efort.
pasul 1.
sudo mysql -u root -p
pasul 2. UTILIZAREA mysql;`
pasul 3.
ALTER USER 'rădăcină'@'localhost' IDENTIFICAT CU mysql_native_password DE 'admin';
Aici 'admin' este noua ta parola, yo pot schimba.
pasul 4. "ieșire"
Multumesc. Ați terminat.
Mi-am găsit soluția, după ore de cercetare aici.
Stop MySQL
Asigurați-MySQL directorul de servicii.
Dă MySQL utilizator permisiunea de a scrie în directorul de servicii.
Start MySQL manual, fără permisiunea controale sau de rețea.
Autentificare fără parolă.
actualizare parolă
Opriți MySQL.
Începe serviciul MySQL în mod normal.
Primul pas: du-te la /etc/phpmyadmin/config.inc.php apoi decomentați linii în cazul în care veți găsi AllowNoPassword . Al doilea pas: conectare la mysql default cont
și că's toate!
Care a lucrat pentru mine:
M-am confruntat cu aceeasi problema la prima dată.
Acum este fix:
În primul rând, de a copia
/etc/mysql/mysql.conf.d/mysqld.cnf
fișier și trecut în/etc/mysql/my.cnf
.O puteți face prin comanda:
Acum las's Restul parola:
Utilizați următoarele comenzi în terminal:
Acum ești în interiorul consola mysql.
Atunci sa's scrie unele întrebări, să ne resetăm parola de root
Acum putem curat
/etc/mysql/my.gnc
Deschide fișierul de mai sus în editor și scoateți toată linii în interiorul fișierului.
După care las's restart mysql:
Acum las's utilizarea mysql cu parola nou creat:
În cele din urmă să introduceți parola nou creat.
Vrei pentru a accesa MySQL cu root dar're nu furnizează rădăcină's parola corectă.
Dacă aveți nevoie pentru a seta o nouă parolă pentru root, MySQL's site-ul are o mare documentare despre cum se face: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Am'll nu arăta procesul aici pentru MySql documentația pe linkul de mai sus - l's clar și concis.
sistem de operare:Ubuntu18.04
mysql:5.7
adauga
skip-grant-tables
la dosar sfârșitul mysqld.cnfcp al meu.cnf
sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
reseta parola `` (de bază) ➜ ~ sudo service mysql opri (de bază) ➜ ~ sudo service mysql start (de bază) ➜ ~ mysql -uroot Bun venit la MySQL monitorizeze. Comenzile se încheie cu, sau g. Dvs. de conectare MySQL este id-ul 2 Versiune Server: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)
Copyright (c) 2000, 2019, Oracle și/sau filialele sale. Toate drepturile rezervate.
Oracle este o marcă înregistrată a Oracle Corporation și/sau filialele. Alte nume pot fi mărci comerciale ale respectivilor proprietarii.
Tip 'ajutor;' sau '\h' pentru ajutor. Tip '\c' pentru a șterge contul de curent de intrare.
mysql> utilizați mysql Tabel de lectură informații pentru completarea tabelului și numele de coloane Puteți dezactiva această caracteristică pentru a obține o mai repede de pornire cu -O
Baza de date s-a schimbat, 3 avertismente mysql> actualizare mysql.utilizatorul set authentication_string=parola('newpass'), unde utilizator='rădăcină' și Gazdă ='localhost'; Query OK, 1 rând afectat, 1 avertisment (0.00 sec) Rânduri potrivite: 1 s-a Schimbat: 1 Avertismente: 1
mysql> update user set de plugin="mysql_native_password"; Query OK, 0 randuri afectate (0.00 sec) Rânduri potrivit: 4 s-a Schimbat: 0 Avertismente: 0
mysql> culoare privilegii; Query OK, 0 randuri afectate (0.00 sec)
mysql> demisia Pa ``
skip-grant-tables
la mea.cnf`` (de bază) ➜ ~ sudo emacs /etc/mysql/mysql.conf.d/mysqld.cnf (de bază) ➜ ~ sudo emacs /etc/mysql/my.cnf (de bază) ➜ ~ sudo service mysql restart
4. deschide mysql
(de bază) ➜ ~ mysql -uroot -ppassword mysql: [Avertisment] Utilizând o parolă pe interfață linie de comandă poate fi nesigur. Bun venit la MySQL monitorizeze. Comenzile se încheie cu, sau g. Dvs. de conectare MySQL este id-ul 3 Versiune Server: 5.7.25-0ubuntu0.18.04.2 (Ubuntu)Copyright (c) 2000, 2019, Oracle și/sau filialele sale. Toate drepturile rezervate.
Oracle este o marcă înregistrată a Oracle Corporation și/sau filialele. Alte nume pot fi mărci comerciale ale respectivilor proprietarii.
Tip 'ajutor;' sau '\h' pentru ajutor. Tip '\c' pentru a șterge contul de curent de intrare.
mysql> ``
`` mysql> selectați @@validate_password_policy; +----------------------------+ | @@validate_password_policy | +----------------------------+ | MEDIE | +----------------------------+ 1 rând în set (0.00 sec)
mysql> ARATĂ VARIABILE CA 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Valoarea | +--------------------------------------+--------+ | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIU | | validate_password_special_char_count | 1 | +--------------------------------------+--------+ 6 rânduri în set (0.08 sec)! ``
validate_password
`` mysql> set global validate_password_policy=0; Query OK, 0 randuri afectate (0.05 sec)
mysql> set global validate_password_mixed_case_count=0; Query OK, 0 randuri afectate (0.00 sec)
mysql> set global validate_password_number_count=3; Query OK, 0 randuri afectate (0.00 sec)
mysql> set global validate_password_special_char_count=0; Query OK, 0 randuri afectate (0.00 sec)
mysql> set global validate_password_length=3; Query OK, 0 randuri afectate (0.00 sec)
mysql> ARATĂ VARIABILE CA 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Valoarea | +--------------------------------------+-------+ | validate_password_dictionary_file | | | validate_password_length | 3 | | validate_password_mixed_case_count | 0 | | validate_password_number_count | 3 | | validate_password_policy | SCĂZUT | | validate_password_special_char_count | 0 | +--------------------------------------+-------+ 6 rânduri în set (0.00 sec) ``
notă ar trebui să știi că ai eroare cauzată de ce? validate_password_policy?
ar trebui sa decis pentru a reseta parola pentru a umple politică sau schimba politica.
Acest lucru s-a întâmplat cu mine. Problema este cu mysql repo care vine deja cu distro linux. Deci, atunci când pur și simplu:
$ sudo apt install mysql-server
se instaleaza mysql lor implicit repo, care dă această problemă. Deci, pentru a depăși de care aveți nevoie pentru a dezinstala care a instalat mysql$ sudo apt de a elimina mysql* --purge --auto-elimina
Apoi, descărcați mysql repo de la oficial site-ul mysql MySQL APT Repo Urmați documentația cu privire la modul de a adăuga repo și instalați-l. Acest lucru vă oferă nici o problema. De asemenea, ca răspuns de către @zetacu, puteți verifica dacă mysql root acum într-adevăr folosește mysql_native_password plugin