Toegang geweigerd voor gebruiker ‘root’@’localhost’ (met wachtwoord: JA) – Geen rechten?

Ik krijg deze foutmelding voortdurend.

Ik gebruik mySQL Workbench en ik kom tot de conclusie dat de schemaprivileges van root nul zijn. Er zijn helemaal geen privileges.

Ik heb problemen op verschillende platforms waarvoor mijn server wordt gebruikt en dit is ineens een probleem.

[email protected]heeft blijkbaar veel toegang, maar ik ben zo ingelogd, maar het wijst toch gewoon aan localhost toe – localhost heeft geen privileges.

Ik heb een paar dingen gedaan, zoals FLUSH HOSTS, FLUSH PRIVILEGES, enz.
maar heb daar of het internet geen succes mee gevonden.

Hoe kan ik root zijn toegang terugkrijgen? Ik vind dit frustrerend, want als ik om me heen kijk, verwachten mensen dat je “toegang hebt”, maar ik heb geen toegang, dus ik kan niet naar de opdrachtregel of wat dan ook en GRANTmezelf iets.

Bij het uitvoeren van SHOW GRANTS FOR rootkrijg ik dit terug:

Foutcode: 1141. Er is geen dergelijke toekenning gedefinieerd voor gebruiker ‘root’ op
host ‘%’


Antwoord 1, autoriteit 100%

Gebruik de instructies voor het opnieuw instellen van het root-wachtwoord– maar in plaats van het root-wachtwoord opnieuw in te stellen, gaan we krachtig een record INSERT in de tabel mysql.user

Gebruik dit in het init-bestand

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

Antwoord 2, autoriteit 93%

Als je hetzelfde probleem hebt in MySql 5.7.+ :

Access denied for user 'root'@'localhost'

het is omdat MySql 5.7 standaard mogelijk om verbinding te maken met socket, wat betekent dat je gewoon aansluiten met sudo mysql. Als u sql uit te voeren:

SELECT user,authentication_string,plugin,host FROM mysql.user;

dan zul je het zien:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Om ervoor te zorgen verbinding met root en wachtwoord, dan is het actualiseren van de waarden in de tabel met de opdracht:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

Voer vervolgens de opdracht select opnieuw en je zult zien dat het is veranderd:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

En dat is het. U kunt dit proces uitvoeren na het uitvoeren en voltooien van de opdracht sudo mysql_secure_installation.

Gebruik voor mariadb

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

om het wachtwoord in te stellen.
Meer op https://mariadb.com/kb/en/set-password/


Antwoord 3, autoriteit 81%

Het hield niet van mijn gebruikersprivilege, dus ik SUDO het.
(in bash << sudo gebruiker en wachtwoord instellen)
(dit geeft de gebruikersnaam van root en stelt het wachtwoord in op niets)
(Op Mac)

sudo mysql -uroot -p

Antwoord 4, autoriteit 53%

Probeer de volgende commando’s

~$ sudo /etc/init.d/mysql stop
~$ sudo mysqld_safe --skip-grant-tables &
~$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> use mysql;
mysql> update user set password=PASSWORD("root") where User='root';
mysql> flush privileges;
mysql> quit
~$ sudo /etc/init.d/mysql stop
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+  Done                    mysqld_safe --skip-grant-tables
~$ sudo /etc/init.d/mysql start
~$ mysql -u root -p
* MySQL Community Server 5.6.35 is started
~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

Antwoord 5, autoriteit 34%

voor de mensen die onderstaande fout tegenkomen in mysql 5.7+ versie –

Access denied for user 'root'@'localhost' (using password: YES)
  1. Nieuwe terminal openen

  2. sudo /etc/init.d/mysql stop

    MySQL Community Server 5.7.8-rc is gestopt

  3. sudo mysqld_safe --skip-grant-tables &
    dit slaat alle privileges op toekenningsniveau over en start de mysql in de veilige modus
    Soms liep het proces vast vanwege

grep: schrijffout: gebroken pijp
180102 11:32:28 mysqld_safe Loggen naar ‘/var/log/mysql/error.log’.

Druk gewoon op Ctrl+Z of Ctrl+C om het proces te onderbreken en af te sluiten

  1. mysql -u root

Welkom bij de MySQL-monitor. Commando’s eindigen met ; of \g.
Uw MySQL-verbindings-ID is 2
Serverversie: 5.7.8-rc MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle en/of zijn gelieerde ondernemingen. Alle rechten voorbehouden.

Oracle is een gedeponeerd handelsmerk van Oracle Corporation en/of zijn
geassocieerden. Andere namen kunnen handelsmerken zijn van hun respectievelijke
eigenaren.

Typ ‘help;’ of ‘\h’ voor hulp. Typ ‘\c’ om de huidige invoeropdracht te wissen.

  1. mysql> use mysql;

Tabelinformatie lezen voor het invullen van tabel- en kolomnamen
U kunt deze functie uitschakelen om sneller op te starten met -A

Database gewijzigd

  1. mysql> update user set authentication_string=password('password') where user='root';
    Query OK, 4 rijen aangetast, 1 waarschuwing (0,03 sec)
    Overeenkomende rijen: 4 Gewijzigd: 4 Waarschuwingen: 1

  2. mysql> flush privileges;
    Query OK, 0 rijen beïnvloed (0,00 sec)

  3. mysql> quit
    Dag

  4. sudo /etc/init.d/mysql stop

..180102 11:37:12 mysqld_safe mysqld van pid-bestand /var/run/mysqld/mysqld.pid beëindigd
.
* MySQL Community Server 5.7.8-rc is gestopt
[email protected]:~$ sudo /etc/init.d/mysql start
..
* MySQL Community Server 5.7.8-rc is gestart

  1. mysql -u root -p

    Voer wachtwoord in:

    Welkom bij de MySQL-monitor. Commando’s eindigen met ; of \g.
    Uw MySQL-verbindings-ID is 2
    Serverversie: 5.7.8-rc MySQL Community Server (GPL)

na mysql 5.7+ versie is het kolomwachtwoord vervangen door naam authenticatie_string uit de mysql.user tabel.

Ik hoop dat deze stappen iedereen zullen helpen, bedankt.


Antwoord 6, Autoriteit 29%

Ik gebruik Ubuntu 18 en installeerde MySQL (wachtwoord: root) met de volgende opdrachten.

sudo apt install mysql-server
sudo mysql_secure_installation

Toen ik probeerde in te loggen met de normale Ubuntu-gebruiker, gooide het me dit probleem.

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Maar ik kon inloggen op MySQL via de Super-gebruiker. Met behulp van de volgende opdrachten was ik in staat om in te loggen via een normale gebruiker.

sudo mysql    
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
exit;

Dan moet u inloggen op MySQL met het normale account.


Antwoord 7, Autoriteit 18%

Als u deze foutmelding krijgt in Workbench, maar u kunt inloggen vanaf Terminal, volgt u deze stappen.

Log eerst in met uw huidige wachtwoord:

sudo mysql -u root -p

Wijzig vervolgens uw wachtwoord omdat het met een lage weerstandswachtwoord geen fout geeft.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-strong-password';
FLUSH PRIVILEGES;

Verlaat vervolgens eenvoudig en opnieuw inloggen met uw nieuwe wachtwoord:

quit
sudo mysql -u root -p

Nadat u eenmaal hebt ingelogd Typ de opdracht:

use mysql;

Het moet een bericht weergeven zoals ‘database gewijzigd’ en typ dan:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

Na dat type:

UPDATE mysql.user set authentication_string=PASSWORD('new-strong-password') where user='root';

Typ vervolgens:

FLUSH PRIVILEGES;

Vervolgens afsluiten:

quit

Probeer nu in te loggen met uw nieuwe wachtwoord in uw werkbank. Ik hoop dat het zal werken. Bedankt.


Antwoord 8, Autoriteit 13%

Een eenvoudige manier om het root-wachtwoord in te stellen op Linux-systemen:

sudo dpkg-reconfigure mysql-server-5.5

Kies enkele andere redenen voor toegang geweigerd:

https://dev.mySQL.com/doc/ REFMAN / 5.7 / NL / PROBLEMEN-ABRINING.HTML


Antwoord 9, Autoriteit 6%

Ik heb geconfronteerd met dit probleem tijdens het installeren van TestLink op de Ubuntu Server, ik volgde deze stappen

mysql -u root
use mysql;
update user set password=PASSWORD("root") where User='root';
flush privileges;
quit

Stop nu het exemplaar en start opnieuw. I.E

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

Antwoord 10, Autoriteit 3%

Nou, de gemakkelijkste manier om het root-wachtwoord opnieuw in te stellen is:

  • herstart mysqld –skip-grant-tables optie. Dit stelt iedereen in staat om
    verbinding maken zonder wachtwoord en met alle privileges. Omdat dit is
    onveilig, wilt u misschien –skip-grant-tables in combinatie gebruiken
    met –skip-networking om te voorkomen dat externe clients verbinding maken.

  • Maak verbinding met de mysqld-server met deze opdracht:

  • shell> mysql Geef de volgende instructies op in de mysql-client.
    Vervang het wachtwoord door het wachtwoord dat u wilt gebruiken.

  • mysql> UPDATE mysql.user SET Password=PASSWORD(‘MyNewPass’)
    -> WHERE Gebruiker=’root’; mysql> SPOEL VOORRECHTEN;

  • Stop de server en herstart hem normaal (zonder de –skip-grant-tables en –skip-networking opties).

Bron Mysql-documentatie en persoonlijke ervaring:

http://dev.mysql.com/doc/ refman/5.6/en/resetting-permissions.html


Antwoord 11, autoriteit 3%

in mysql 5.7 is het wachtwoordveld vervangen door authentic_string, dus je zou in plaats daarvan zoiets doen

update user set authentication_string=PASSWORD("root") where User='root';

Zie deze link MySQL-gebruiker DB heeft geen wachtwoordkolommen – MySQL installeren op OSX


Antwoord 12, autoriteit 2%

Ik heb hetzelfde probleem opgelost door Workbench als beheerder uit te voeren.

…Ik denk dat het komt door beperkingen op bedrijfscomputers, in mijn geval…


Antwoord 13, autoriteit 2%

Het MySQL-standaardwachtwoord voor root wordt toegewezen afhankelijk van de manier waarop u MySQL hebt geïnstalleerd.

Als u het hebt geïnstalleerd vanuit de MySQL Yum-repository, MySQL SUSE-repository of RPM-pakketten die rechtstreeks zijn gedownload van Oracle, kunt u het wachtwoord verkrijgen met de volgende opdracht:

sudo grep 'temporary password' /var/log/mysqld.log

Antwoord 14, autoriteit 2%

In mijn geval vond ik deze fout na een nieuwe installatie van mysql op Mac OS Big Sur.

Wat ik deed om het op te lossen was:
Ik klik op het Apple-logo, ga naar systeemvoorkeuren en klik vervolgens op mysql.

Er is een knop voor het initialiseren van de database in het geopende instellingenvenster, daar klik ik op, en als ik dan opnieuw probeer te openen, is het opgelost.


Antwoord 15

Probeer de volgende stappen om dit probleem op te lossen:

  1. Open terminal / opdrachtprompt en navigeer naar de bin-map van de MySQL-installatiemap. Voer vervolgens het commando mysqld --consoleuit.
  2. Als je kunt zien dat de regel 171010 14:58:22 [Note] --secure-file-privis ingesteld op NULL. Bewerkingen met betrekking tot het importeren en exporteren van gegevens worden uitgeschakeld na het uitvoeren van de bovenstaande opdracht vanaf de opdrachtprompt.
  3. Vervolgens moet je controleren of de mysqldwordt geblokkeerd door de Windows Firewall of een ander programma.
  4. Als het wordt geblokkeerd door Windows Firewall, moet u het deblokkeren en de instellingen opslaan.
  5. Volg de onderstaande stappen om de toepassing mysqldof mysqlte deblokkeren:
    1. Ga naar de opdrachtprompt en typ wf.mscom de firewall-instellingen te openen.
    2. Klik op Een app of functie toestaan via Windows Firewall.
    3. Controleer de mysqldof mysqldARTICTIES ZIJN BESCHIKBAAR IN DE LIJST en vink het selectievakje in voor het domein, publiek en privé en sla de instellingen op.
  6. Ga terug naar de bakmap en probeer de opdracht weer vanaf stap 1.
  7. Het zou goed moeten werken en geen fouten vertonen.

Het moet mogelijk zijn om de MySQL-console zonder problemen nu te draaien!


Antwoord 16

Ik heb hetzelfde probleem opgelost met behulp van volgende SQL en herstart MySQL-server:

update mysql.user set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y',Create_tablespace_priv='Y'
where user='root';

Antwoord 17

Ik heb gewerkt aan toegang geweigerd voor gebruiker ‘root’ @ ‘localhost’ (met behulp van wachtwoord: ja) gedurende enkele uren, ik heb een volgende oplossing gevonden,

The answer to this problem was that in the my.cnf located within
/etc/mysql/my.cnf
the line was either 
bind-address = 127.0.0.1 
            (or)
bind-address = localhost
            (or)
bind-address = 0.0.0.0
I should prefer that 127.0.0.1
I should also prefer 0.0.0.0, it is more flexible 
because which will allow all connections

Antwoord 18

Ik denk niet dat je moet ontsnappen aan de --init-fileparameter:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini" --init-file=C:\\mysql-init.txt

Zou moeten zijn:

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini" --init-file=C:\mysql-init.txt


Antwoord 19

voor het bovenstaande probleem moet uw wachtwoord in het systeem overeenkomen met het wachtwoord dat u in het programma hebt doorgegeven, want wanneer u het programma uitvoert, wordt het systeemwachtwoord gecontroleerd omdat u root als gebruiker hebt gegeven, dus u een foutmelding geeft en tegelijkertijd keer dat het record niet uit de database wordt verwijderd.

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
class Delete
{
    public static void main(String []k)
    {
        String url="jdbc:mysql://localhost:3306/student";
        String user="root";
        String pass="jacob234";
        try
        {
            Connection myConnection=DriverManager.getConnection(url,user,pass);
            Statement myStatement=myConnection.createStatement();
            String deleteQuery="delete from students where id=2";
            myStatement.executeUpdate(deleteQuery);
            System.out.println("delete completed");
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}

Bewaar uw systeemwachtwoord als jacob234 en voer vervolgens de code uit.


Antwoord 20

Bij mij was hetzelfde probleem, maar het werd veroorzaakt, omdat ik de mysql-server op 32 (bit) gebruikte en de workbench op 64 (bit) versie draaide. de server en de workbench moeten dezelfde versie hebben.

xpress


Antwoord 21

Ik werd geconfronteerd met hetzelfde probleem als ik probeer te verbinden MySQL database met behulp van Laravel toepassing.
Ik zou willen aanbevelen kijk dan op de wachtwoord voor de gebruiker. MySQL wachtwoord mag geen speciale tekens, zoals # , & amp hebben; , etc …


Antwoord 22

In mijn geval:

  • I set plugin authenticatie op “” (leeg) en ik kan mysql server niet worden uitgevoerd:

OPLOSSING:

  1. nano /etc/mysql/my.cnf
  2. bewerken

[mysqld]

skip-subsidie-tabellen

  1. dienst mysql restart
  2. mysql -u wortel
  3. gebruik mysql
  4. UPDATE mysql.user SET plugin = ‘mysql_native_password’ waar de gebruiker = ‘root’
  5. flush privileges

Antwoord 23

oorzaak zou kunnen missen mysqld bestand in / var / run / mysqld

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables
sudo service mysql start

als bestand bestaat, verlaat u niet maak vervolgens bestand

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

check nu bent u in staat om in te loggen mysql -uroot -p123
anders te doen

sudo mysql -u root
use mysql;
show tables;
describe user;
update user set authentication_string=password('1111') where user='root';
FLUSH PRIVILEGES;
exit;
mysql -uroot -p123

koppeling – mysqld_safe Directory ‘ / var / run / mysqld’ voor UNIX socket file niet bestaat

Other episodes