Mac'e yüklendikten sonra ALTER USER deyimini kullanarak MySQL kök parolasını sıfırlayın


184

Tüm Mac deneyiminde yeniyim. Son zamanlarda MySQL'i kurdum ve kurulumdan sonra şifreyi sıfırlamam gerekiyor gibi görünüyor. Başka bir şey yapmama izin vermiyor.

Şimdi zaten şifreyi her zamanki gibi sıfırladım:

update user set password = password('XXX') where user = root;

(BTW: tuhaf bir nedenden dolayı MySQL'in 'şifre' alanını 'authentication_string' olarak yeniden adlandırdığı için yaşlarımı aldım. Böyle değişiklikler konusunda oldukça üzüldüm.)

Maalesef şifreyi benim bilmediğim farklı bir şekilde değiştirmem gerekiyor gibi görünüyor. Belki buradaki birisi zaten bu problemle karşılaştı?

Yanıtlar:


509

Bu ise DEĞİL sizin ilk kez şifre oluşturarak, bu yöntemi deneyin:

mysql> UPDATE mysql.user SET Password=PASSWORD('your_new_password')
           WHERE User='root'; 

Aşağıdaki hatayı alırsanız, şifrenizi daha önce hiç belirlememiş olmanız ihtimali yüksektir:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

Şifrenizi ilk kez ayarlamak için :

mysql> SET PASSWORD = PASSWORD('your_new_password');
Query OK, 0 rows affected, 1 warning (0.01 sec)

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


10
Teşekkürler! MySQL çok kafa karıştırıcı hata mesajı olsa!
Ed.

1
Bu benim için çalıştı mysql-5.7.13-osx10.11-x86_64
GiriB

1
'Mysql> SET PASSWORD = PASSWORD (' your_new_password ');' den sonra şu hatayı alıyorum: 'HATA 29 (HY000): Dosya' ./mysql/user.MYD 'bulunamadı (Errcode: 2 - Böyle bir hata yok dosya veya dizin) '. Birisi bana yardım edebilir mi?
Ray Kim

4
Tam olarak MySQL'in önerdiğine göre, "ALTER USER" ifadesini değil, sadece "ŞİFRE AYARLA" ifadesini kullanmazsınız ...
Fabien Haddadi

1
İlk örnek, potansiyel olarak bu satırı gönderirken kullandığınızdan başka bir kullanıcı için bir şifre belirlemeye çalışır. İkincisi mysql'de oturum açmak için kullandığınız kullanıcının şifresini ayarlamaya çalışır. Böylece daha sonra çalışır.
Hafenkranich

130

Mysql kullanarak başladıysanız mysql -u root -p

Deneyin ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

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


1
Teşekkür ederim! Bu benim için çalıştı! MySQL-5.7.11-osx10.10-x86_64 kullanıyorum.
LeArNr

Bu işe yaradı; Teşekkürler! MySQL'in yaygın olarak kullanılan bir program olmasına rağmen, yüklemek ve hızlı bir şekilde çalıştırmak için tek elden dokümantasyon olmaması beni çok üzüyor.
Shatu

Teşekkürler ! Bana yardımcı oldu
Sparw

3
Çok hayal kırıklığı sonra, bunun bir varyantı nane 18 mysql 5.7.18 üzerinde çalıştı:ALTER USER 'root'@'localhost' indentified WITH mysql_native_password BY 'password';
Steve

Bir milyon teşekkür ederim. Benim için işe yarayan tek şey bu.
RandyMy

33

Mac'te de aynı problemim var

İlk olarak, sanal alan moduyla mysql'de oturum açın

mysql -u <user> -p --connect-expired-password

Sonra şifreyi ayarlayın

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

Query OK, 0 rows affected, 1 warning (0.01 sec)

Benim için çalışıyor ~

yoluyla: /dba/118852/your-paswssword-has-expired-after-restart-mysql-when-updated-mysql-5-7-8-rcde


1
Veritabanını bile kullanmadan önce bunu yapmanız gerektiğini akılda tutarak oldukça karmaşık görünüyor.
seba.wagner

uyarıda kullanmanı istiyorSET PASSWORD FOR 'root'@'localhost' = 'XXXX';
Arsen Zahray

22

MySQL 5.7.6 ve üstünü kullanıyorsanız:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 ve önceki sürümlerini kullanıyorsanız:

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

MySQL Belgeleri


1
MySQL 5.7.9 kullanıyorum ve garip şey SET PASSWORD = PASSWORD('my_pass')benim için çalıştı. Daha yeni sürümleri olan kişilerin bu ifadenin kendileri için de işe yaradığını belirten yorumları var. Buna rağmen, daha önce kimsenin bahsetmediği MySQL belgelerinde bu özel referansı bulduğunuz için cevabınızı iptal ettim.
Armfoot

MySQL 8 SET ŞİFRE attı ve hata. ALTER USER çalıştı.
Timar Ivo Batis

13

MySQL 5.7.x üzerinde, değiştirmek için yerel şifreye geçmeniz gerekir, örneğin:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

11

Bunları çalıştırın:

$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'

O zaman koş

./mysql -u root

Oturum açmalıdır. Şimdi FLUSH ayrıcalıklarını çalıştırın;

Ardından MySQL konsolundan çıkın ve giriş yapmayı deneyin. Bu işe yaramazsa, şunları çalıştırın:

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("XXXXXXX") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

Xxxxxx'i yeni şifrenizle değiştirin. Ardından tekrar giriş yapmayı deneyin.

Güncelleme. Bu http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html adresine bakın

Sorununuzu çözmeli.

Kahin iseniz bunu deneyin

ALTER USER username IDENTIFIED BY password

Hayır, üzgünüm bu da işe yaramıyor. En azından artık değil. 'Şifre' sütunu Oracle, btw tarafından yeniden adlandırıldı. Şimdi adı authentication_string. Ancak bu komutu yürütemiyorum, çünkü önce ALTER USER komutunu kullanarak parolayı değiştirmem gerekiyor. Bu inanılmaz bir sinir bozucudur, çünkü geleneksel olarak şifreyi güncellemezsiniz. ALTER, tablodaki girişleri değiştirmeden tablolar, işlevler ve şeyler için ayrılmalıdır. Güncelleme ifadesi budur. (rant için üzgünüm)
dengar81

@ Shivan Paw: İki uyarı bekliyordum: mysqladmin: [Uyarı] Komut satırı arabiriminde bir parola kullanmak güvensiz olabilir. Uyarı: Parola sunucuya düz metin olarak gönderileceğinden, parola güvenliğini sağlamak için ssl bağlantısını kullanın. - Şifrenin güncellendiğini düşünürüm. Gerçekten de yeni şifre ile giriş yapabilirim. Ancak, ALTER USER komutuyla şifreyi güncellemem gerektiğinden, hala herhangi bir sorgu çalıştıramıyorum :(.
dengar81

@ Shivan Paw: Ne dene? Zaten önerdiğin komutları kullanmayı denedim. ./Mysqladmin komutunu kullanarak parolayı sıfırlama (iki uyarı) ve ardından mysql.user üzerinde güncellemeyi çalıştırmaya devam etme ... İkinci komut "ALTER USER kullanarak parolanızı sıfırlamanız gerekir [...]"
dengar81

Benim için işe yarayan tek çözüm bu. mysql'in en son sürümünde süresi dolmuş bir parolanız varsa ALTER_USER veya SET_PASSWORD yapmanıza izin vermez.
Aaron Henderson

7

Belki de dene?

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

veya

SET PASSWORD FOR 'root'@'%' = PASSWORD('XXX');

Hangi erişimi kullandığınıza bağlı olarak.

(ve alan adlarınızı değiştirmeniz gerektiğinden emin değilsiniz ...)

https://dev.mysql.com/doc/refman/5.0/en/set-password.html


Üzgünüz, bu çalışmıyor: ERROR 1820 (HY000): Bu ifadeyi çalıştırmadan önce şifrenizi ALTER USER deyimini kullanarak sıfırlamanız gerekir.
15:43

7

ALTER USER 'root' @ 'localhost' 'new_password' İLE TANIMLANMIŞ;

Bu satırı kullanın ...


7

GÜNCELLE kullanıcı SET authentication_string = ŞİFRE ("MyPassWord") NEREDE Kullanıcı = 'kök'; HATA 1064 (42000): SQL sözdiziminizde bir hata var; satır 1'de '("MyPassWord") yakınında kullanılacak doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuza bakın WHERE Kullanıcı =' root '' satır 1'de

Çözüldü

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Aşağıdaki siteden referans

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


5

Açık olarak Ver 14.14 Distrib 5.7.19, for macos10.12 (x86_64), şu şekilde oturum açtım: mysql -uroot -pyüklediğinizde MySQL tarafından oluşturulan şifreyi yazdım . Sonra..

ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

Misal:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ab1234'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye $ mysql -uroot -p

Ve 'Ab1234' yazabilirsiniz


3

Mysql 5.7.24 root ilk giriş almak

1.Adım: Günlükten şifre alın

 grep root@localhost /var/log/mysqld.log
    Output
        2019-01-17T09:58:34.459520Z 1 [Note] A temporary password is generated for root@localhost: wHkJHUxeR4)w

Adım 2: MySQL'e onunla giriş yap

mysql -uroot -p'wHkJHUxeR4)w'

3.Adım: Yeni root şifresi koydunuz

SET PASSWORD = PASSWORD('xxxxx');

anladın ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

nasıl düzeltebilirim?

bunu çalıştır SET GLOBAL validate_password_policy=LOW;

Tekrar deneyin SET PASSWORD = PASSWORD('xxxxx');



2

İşte benim için böyle.

mysql> show databases ;

HATA 1820 (HY000): Bu ifadeyi çalıştırmadan önce şifrenizi ALTER USER deyimini kullanarak sıfırlamanız gerekir.

mysql> uninstall plugin validate_password;

HATA 1820 (HY000): Bu ifadeyi çalıştırmadan önce şifrenizi ALTER USER deyimini kullanarak sıfırlamanız gerekir.

mysql> alter user 'root'@'localhost' identified by 'root';

Sorgu tamam, 0 satır etkilendi (0,01 sn)

mysql> flush privileges;

Sorgu tamam, 0 satır etkilendi (0,03 sn)


1

Kullandığınızda SET PASSWORD = PASSWORD('your_new_password');bunun için çökebilir

(HATA 1819 (HY000): Parolanız mevcut politika gereksinimlerini karşılamıyor)

SET GLOBAL validate_password_policy=LOW;. slove için kullanabilirsiniz .


1

5.7 sürümünde. 'şifre' alanı silindi. 'authentication_string' değiştir

use mysql;
update user set authentication_string=password('123456') where user='root';
flush privileges;

0

Mac OS X 10.10.4'te (Yosemite) de aynı problemi aldım. ŞİFREYİ benim için ayarla. Sorgu tamam, 0 satır etkilendi, 1 uyarı (0.01 sn)

Mysql ortam yolu değişkeninizi .bash_profile içinde ayarlayın ve aşağıdaki satırı ekleyin
export PATH = $ PATH: / usr / local / mysql / bin, bundan sonra aşağıdaki komutu çalıştırın: source .bash_profile


0

Ben mysql tezgah ve mysql topluluk sunucusu yükledikten sonra sorun vardı. Sunucu kurulumu sırasında oluşturulan şifre var. Tezgahtaki mevcut yerel örneğe çift tıklandığında yeni şifreyi ayarlayabileceğim bir iletişim kutusu tetiklendi.


0

mysql> SET PASSWORD = PASSWORD('your_new_password'); Bu benim için işe yarıyor.


0

5.7.23 ve sonraki sürümleri hatırlayın - kullanıcı tablosunda kimlik doğrulama dizesi yerine sütun şifresi yoktur, bu nedenle aşağıda bir kullanıcı için şifre sıfırlanırken çalışır.

update user set authentication_string=password('root') where user='root';
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.