MySQL-gebruikersdatabase heeft geen wachtwoordkolommen – MySQL installeren op OSX

Ik probeer het MySql-rootwachtwoord te wijzigen.

Wat ik heb gedaan staat hieronder.

  1. Installeer MySql-5.7.6 ~ .dmg (Community Server) en werkbank.
  2. Schakel de server uit in OSX-systeemvoorkeuren.
  3. Toegang tot MySql met console. Het commando was mysqld_safe --skip-grant
  4. Voer update user set password=password('1111') where user='root';en kreeg een foutmelding –> ERROR 1054 (42S22): Unknown column 'password' in 'field list'.

Ter info, ik heb use mysql;gebruikt.
Dus ik heb de query op de gebruikerstabel geselecteerd en de gevonden wachtwoordkolom bestaat eigenlijk niet.

Het is heel raar. Is het mogelijk dat de originele gebruikerstabel geen wachtwoordkolom heeft?

Hoe kan ik een wachtwoord wijzigen dat niet bestaat?

Bedankt voor je antwoord 😀


Antwoord 1, autoriteit 100%

In MySQL 5.7 is het wachtwoordveld in het tabelveld mysql.user verwijderd, nu is de veldnaam ‘authentication_string’.

Kies eerst de database:

mysql>use mysql;

En laat dan de tabellen zien:

mysql>show tables;

U zult de gebruikerstabel vinden, laten we nu de velden bekijken:

mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(16)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv     | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher             | blob                              | NO   |     | NULL                  |       |
| x509_issuer            | blob                              | NO   |     | NULL                  |       |
| x509_subject           | blob                              | NO   |     | NULL                  |       |
| max_questions          | int(11) unsigned                  | NO   |     | 0                     |       |
| max_updates            | int(11) unsigned                  | NO   |     | 0                     |       |
| max_connections        | int(11) unsigned                  | NO   |     | 0                     |       |
| max_user_connections   | int(11) unsigned                  | NO   |     | 0                     |       |
| plugin                 | char(64)                          | NO   |     | mysql_native_password |       |
| authentication_string  | text                              | YES  |     | NULL                  |       |
| password_expired       | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
| account_locked         | enum('N','Y')                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)

Verrassing! Er is geen veld met de naam ‘password’, het wachtwoord veld wordt de naam ‘authentication_string’. Dus, dit gewoon doen:

update user set authentication_string=password('1111') where user='root';

Nu, alles zal ok zijn.

In vergelijking met MySQL 5.6, de veranderingen zijn vrij uitgebreid: Wat is nieuw in MySQL 5.7


Antwoord 2, Autoriteit 5%

Deze fout treedt op als je het wachtwoord niet hebt ingesteld tijdens de installatie, in dit geval de mysql met unix-socket plug-in.

Maar als u de plug-in-link verwijdert uit de instellingen (tabel mysql.user) zal er een ander probleem optreden. Dit lost het probleem niet op en creëert een ander probleem. Om de verwijderde link te herstellen en het wachtwoord (“PWD”) in te stellen:

1) Uitvoeren met --skip-grant-tableszoals hierboven vermeld.

Als het niet werkt, voeg dan de string skip-grant-tablestoe in sectie [mysqld]van /etc/mysql/mysql.conf.d/mysqld.cnf. Dan doen
sudo service mysql restart.

2) Voer mysql -u root -puit en (wijzig “PWD”):

update mysql.user 
    set authentication_string=PASSWORD("PWD"), plugin="mysql_native_password" 
    where User='root' and Host='localhost';    
flush privileges;
quit

vervolgens sudo service mysql restart. Controleer: mysql -u root -p.

Voor restartverwijder die string uit het bestand mysqld.cnf, als je het daar instelt.


Antwoord 3, autoriteit 4%

Een valkuil waar ik in ben gevallen, is dat er nu geen wachtwoordveldis, het is zo hernoemd:

update user set password=PASSWORD("YOURPASSWORDHERE") where user='root';

Moet nu zijn:

update user set authentication_string=password('YOURPASSWORDHERE') where user='root';


Antwoord 4, autoriteit 3%

Gebruik de opdracht ALTER USERin plaats van een rij USERbij te werken. Houd er rekening mee dat er meer dan één ‘root’-gebruiker kan zijn, omdat gebruikersentiteiten ook worden gekwalificeerd door de machine waarmee ze verbinding maken

https://dev.mysql.com/doc/refman/5.7/en /alter-user.html

Bijvoorbeeld.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password' 
ALTER USER 'root'@'*' IDENTIFIED BY 'new-password' 

Antwoord 5

Het werkte alleen bij mij toen ik “spoelde” na de hier genoemde commando’s. Hier is de volledige lijst met commando’s die ik heb gebruikt:

Eerdere antwoorden werken mogelijk niet voor latere mysql-versies. Probeer deze stappen als eerdere antwoorden niet voor u werkten:

1- Klik op het wamp-pictogram > mysql > mysql-console

2- schrijf de volgende commando’s een voor een

use mysql;
update user set authentication_string=password('your_password') where user='root';
FLUSH PRIVILEGES;
quit

Antwoord 6

Bedankt voor je hulp. Probeer dit voor het geval mensen nog steeds problemen hebben.

Voor MySQL versie 5.6 en lager

Bent u uw Mac OS X ‘ROOT’-wachtwoord   vergeten en moet u het opnieuw instellen?  Volg deze 4 eenvoudige stappen:

  1.  Stop de mysqld-server.  Normaal gesproken kan dit worden gedaan via ‘Systeemvoorkeuren’ > MySQL > ‘Stop MySQL-server’
  2.  Start de server in de veilige modus met privilege bypass
         Vanaf een terminal:
         sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3.  In een nieuw terminalvenster:

         sudo /usr/local/mysql/bin/mysql -u root
         UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root';
         FLUSH PRIVILEGES;
         \q
  4.  Stop de mysqld-server opnieuw en start deze opnieuw op in de normale modus.

Voor MySQL versie 5.7 en hoger

  1.  Stop de mysqld-server.  Normaal gesproken kan dit worden gedaan via 'System Prefrences' > MySQL > 'Stop MySQL Server'
  2.  Start de server in veilige modus met privilege bypass
         Vanaf een terminal:
         sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3.  In een nieuw terminalvenster:
         
         sudo /usr/local/mysql/bin/mysql -u root
         UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
         FLUSH PRIVILEGES;
         \q
         
  4.  Stop de mysqld-server opnieuw en start deze opnieuw op in de normale modus.

Antwoord 7

Voor dit probleem heb ik een eenvoudige en onbeschofte methode gebruikt, de naam van het veld hernoemen naar wachtwoord, de reden hiervoor is dat ik de mac navicat premium-software gebruik in de visuele bewerkingsfout: Onbekende kolom ‘wachtwoord’ in ‘veldlijst’ ‘, de software zelf maakt gebruik van een wachtwoord zodat ik het niet makkelijk kan bedienen.
Daarom root ik in de database-opdrachtregel, voer uit

Use mysql;

En pas dan de veldnaam aan:

ALTER TABLE user CHANGE authentication_string password text;

Uiteindelijk normaal.


Antwoord 8

Root Oorzaak: root heeft geen wachtwoord, en je python connect-statement zou dat moeten weerspiegelen.

Om fout 1698 op te lossen, wijzigt u uw python connect-wachtwoord in ”.

opmerking: het handmatig bijwerken van het wachtwoord van de gebruiker lost het probleem niet op
krijg nog steeds fout 1698


Antwoord 9

onthoud dat het wachtwoord verder moet worden ingesteld, zelfs na het herstarten van mysql zoals hieronder

SET PASSWORD = PASSWORD('root');

Other episodes