OS X'te MySQL kök kullanıcı parolasını ayarlama


235

MySQL'i Mac OS X'e yeni yükledim. Bir sonraki adım kök kullanıcı şifresini ayarlamaktı, bu yüzden bir sonraki yaptım:

  1. Unix komut satırına erişmek için terminal uygulamasını başlatın.
  2. Unix istemi altında şu komutları yürüttüm:

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

Ancak, komutu yürüttüğümde

$ ./mysql -u root, işte cevap:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, 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>

mysqlHerhangi bir şifre olmadan komut satırına girebilirim !

Bu neden?

Yanıtlar:


320

FLUSH PRIVILEGESMySQL terminaline giriş yaptığınızda komutu deneyin . Bu işe yaramazsa, MySQL terminalindeyken aşağıdaki komut kümesini deneyin

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

İstediğiniz şifreyi kullanarak NEWPASSWORD'i değiştirin. Her şey hazır olmalı!

Güncelleme : MySQL 5.7 itibariyle passwordalanın adı değiştirildi authentication_string. Parolayı değiştirirken, parolayı değiştirmek için aşağıdaki sorguyu kullanın. Diğer tüm komutlar aynı kalır:

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

Güncelleme : 8.0.15'te (belki de zaten bu sürümden önce), aşağıdaki yorumlarda belirtildiği gibi PASSWORD () işlevi çalışmaz. Kullanmanız gerekenler:

UPDATE mysql.user SET authentication_string='password' WHERE User='root';


24
MySQL 5.7 ve sonrasında sütun adı değişti. Bunun UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';yerine kullanmanız gerekecek .
Carlos P

Söylediğin için teşekkürler. Cevabımı buna göre yansıtacak şekilde düzenleyeceğim.
Scott

8
Ayrıca PASSWORD () işlevi kullanımdan kaldırılmış gibi görünüyor ve sadece 'password'eşitliğin sağ tarafına
koymalısınız

6
Yine de giriş yapamıyorsanız, bu nasıl yardımcı olur?
Jake N

11
bu adımları uyguladıktan sonra. Yeni ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
şifremle

197

Kök için ayarladığınız şifreyi hatırlamıyorsanız ve sıfırlamanız gerekiyorsa şu adımları izleyin:

  1. MySQL sunucusunu durdurun, bu yükleme başına değişir
  2. Sunucuyu ayrıcalık atlama ile güvenli modda çalıştırın

sudo mysqld_safe --skip-grant-tables;

  1. Veritabanına bağlanan yeni bir pencerede yeni bir parola belirleyin ve izinleri temizleyin ve çıkın:

mysql -u root

MySQL 5.7'den daha eski MySQL için:

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

MySQL 5.7+ kullanımı için:

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

Yenile ve çık:

FLUSH PRIVILEGES;

\q

  1. Güvenli mod sunucusunu durdurun ve normal sunucunuzu yeniden başlatın. Yeni şifre şimdi çalışmalıdır. Benim için bir cazibe gibi çalıştı :)

4
Mükemmeldi teşekkür ederim! Mac OSx Mavericks'te (2014) sudo / Library / StartupItems / MySQLCOM / MySQLCOM stop | start | restart
Chris Adams

2
passwordauthentication_stringşimdi olmalı .
zx1986

MySQL 5.7'den sonra UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';, tıpkı @Scott'un dediği gibi olmalı.
zx1986

Teşekkürler ekleyeceğiz
radtek

1
MacOSX üzerinde mySQL "Tercih 'Pane' seçeneği ile yüklendiğinde (Apple Menüsü -> Sistem Tercihleri ...)., I ı ilk Yukarıda tam adım 1'e tercih bölümünü kullanarak durdurma mySQL ihtiyaç duyulduğu anlaşılmıştır kullanma sudo killvermedi Mac OSx olarak çalışma otomatik olarak anında yeni bir mSQL yeniden başlatmasını istiyorum ben tercih bölümünü kullanarak mysql durdu keresinde elle çalıştırabilir.mysqld_safe --skip-grant-tables
toddcscar

85

MySQL'i kurduktan sonra, "root" şifresini oluşturmanız gerekir. Bir root şifresi oluşturmazsanız, o zaman, root şifresi yoktur ve giriş yapmak için bir şifreye ihtiyacınız yoktur.

Yani, söyleniyor, bir kök parola oluşturmanız gerekir.

Terminali kullanarak aşağıdakileri girin:

Kurulum: Kök kullanıcı şifresini ayarlayın:

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

Bir hata yaptıysanız veya kök parolayı değiştirmeniz gerekiyorsa aşağıdakileri kullanın:

Kök şifresini değiştirin:

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

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

5
MySQL 5.7 update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';kullananlar içinset password=...
pdm

66

MySQL web sitesinde verilen talimatlar yukarıda belirtilenlerden çok açık

  1. $ sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> SIVA AYRICALIKLARI;
  5. mysql> ALTER USER 'root' @ 'localhost' 'MyNewPass' TARAFINDAN TANIMLANMIŞ;
  6. mysql> exitveya Ctrl + z
  7. $ sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. Yeni şifreyi girin, örneğin MyNewPass

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


2
mac os 10.12.6 sürümünde, ERROR
diEcho

Belgeleri nerede bulacağınıza dikkat çektiğiniz için teşekkür ederiz. Ayrıca, sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist ve sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss komutlarını kullanabileceğiniz mac'ta biraz kafa karıştırıcı. mysql durdurmak ve başlatmak için .mysql.mysqld.plist. Sudo /usr/local/mysql/support-files/mysql.server durağı kullanmak daha iyi bir yaklaşım gibi görünüyor.
Daniel

59
  1. Mysqld sunucusunu durdurun.

    • Mac OSX: System Preferences > MySQL>Stop MySQL Server
    • Linux (Terminalden): sudo systemctl stop mysqld.service
  2. Sunucuyu ayrıcalıklı atlama ile güvenli modda başlatın

    • Terminalden: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. Bir de yeni bir terminal penceresi:

    • sudo /usr/local/mysql/bin/mysql -u root
  4. Bu, mysql komut satırını açacaktır. Buradan girin:

    • UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';

    • FLUSH PRIVILEGES;

    • quit

  5. MySQL sunucusunu yeniden durdurun ve normal modda yeniden başlatın.

    • Mac OSX (Terminalden): sudo /usr/local/mysql/support-files/mysql.server restart
    • Linux Terminali: sudo systemctl restart mysqld

1
High Sierra'da 5.7.23 çalıştırmak için bu mükemmel çalışıyor. Teşekkürler.
Daniel

MySQL 8.0.11'de, 4. adımdaki set fonksiyonu kaldırıldı. Buraya bak, bu işe yaradı. stackoverflow.com/a/52579886/621951
Günay Gültekin

22

Bazı nedenlerden dolayı yeni Mysql 5.7 için Mysql'in kabuk komutlarına bağlı olmayan komutları:

  1. Yüklemeden sonra Mac'i yeniden başlatın.

  2. MySQL'i başlatın:

    Sistem Tercihleri> Mysql> Başlat düğmesi

  3. Terminaldeki Mysql kurulum klasörüne gidin:

    $ cd /usr/local/mysql/bin/

  4. Mysql'e erişim:

    $ ./mysql -u root -p

ve kurulum için verilen ilk şifreyi girin.

  1. Mysql terminali değiştirme şifresinde:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';


16

Terminalde, mysql -u root -pReturn tuşuna yazıp vurun. Dikkat etmeniz gereken geçerli mysql şifresini girin. Ve şifreyi ayarlayın SET PASSWORD = PASSWORD('new_password');

Bu belgelere bakın burada daha fazla ayrıntı için.


10

MySQL kök parolasını unuttuysanız, hatırlayamıyorsanız veya girmek istemiyorsanız… .. kutunun kök kullanıcı parolasını bildiğiniz sürece mysql veritabanı parolasını Linux veya OS X'teki komut satırından sıfırlayabilirsiniz. Bulunduğunuz yer:

(1) MySQL'i durdurun

sudo /usr/local/mysql/support-files/mysql.server stop

(2) Güvenli modda başlatın:

sudo mysqld_safe --skip-grant-tables

(3) İşlem bitene kadar bu devam eden bir komut olacak, bu yüzden başka bir kabuk / terminal penceresi açacak , şifre olmadan oturum açacaksınız :

mysql -u root

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

Yukarıdaki GÜNCELLEŞTİR komutunda 'parolayı' kendi yeni parolanızla değiştirin, tırnak işaretlerini koruduğunuzdan emin olun

(4) Kaydet ve oldukça

FLUSH PRIVILEGES;

\q

(5) MySQL'i başlatın

sudo /usr/local/mysql/support-files/mysql.server start

5

OS X Yosemite'i yüklediğimde, Mysql ile sorunum var. Birçok yöntem denedim ama hiçbiri işe yaramadı. Aslında oldukça kolay bir yol buldum. Bunu deneyin.

  1. Su imtiyazlarından ilk giriş terminali.

sudo su

  1. MySQL'i durdur

sudo /usr/local/mysql/support-files/mysql.server stop

  1. güvenli modda başla:

sudo mysqld_safe --skip-grant-tables

  1. başka bir terminal açın, su ayrıcalıkları olarak giriş yapın, şifre olmadan mysql giriş yapın

mysql -u root

  1. Şifreyi değiştir

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

  1. floş ayrıcalıkları

FLUSH PRIVILEGES;

  1. Şimdi bitti

Çok teşekkür ederim. Biraz bununla mücadele ediyordum. Bu mysql son sürümlerinde yeni bir şey mi?
jpbourbon



3

Bunun işe yarayacağını düşünüyorum:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'

(Kök değilse, büyük olasılıkla root'u kullanıcı adınızla değiştirmeniz gerektiğini unutmayın)


2

MySQL Sunucusunu Durdurma

sudo /usr/local/mysql/support-files/mysql.server stop

MySQL'in güvenli modda başlatılması

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

Kök parolasını değiştirme

/usr/local/mysql/bin/mysql -u root

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

Test yapmak

Çalıştırmak /usr/local/mysql/bin/mysql -u root

Şimdi MySQL kullanmaya başlamak için yeni şifreyi girin.


2

Benim için tam olarak bu işe yaradı:

  1. Başka hiçbir MySQL işleminin çalışmadığından emin olun. Bunu kontrol etmek için aşağıdakileri yapın:

     a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
  2. MySQL komutunu şu komutla başlatın:

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. Her kullanıcının şifresi, mysql.user tablosunda sırasıyla User ve authentication_string sütunları altında saklanır. Tabloyu şu şekilde güncelleyebiliriz:

    UPDATE mysql.user SET authentication_string='your_password' where User='root'

2

Mac OSX DMG yükleyicisinden yüklü 5.7.26 ile macOS 10.14+.

Diğer kullanıcılar tarafından gönderilen UPDATE komutunu kullanmaya çalışırken aşağıdaki hataya neden olur:

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

Yükleyici açık terminali tarafından size sunulan parolayı kopyalayın ve aşağıdakileri yapın:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';


2

MySQL 8.0.15 + 'a başvurmak için password () işlevi kullanılamaz. Aşağıdaki komutu kullanın.

Lütfen kullanın

UPDATE mysql.user SET authentication_string='password' WHERE User='root';

1

Şifrenizi unuttuysanız veya şifrenizi mysql olarak değiştirmek istiyorsanız:

  1. terminalinizi başlatın ve şunu girin:
sudo su
  1. Sisteminiz için geçiş kartı girin
  2. MySQL'inizi durdurun:
sudo /usr/local/mysql/support-files/mysql.server stop
  1. Bu pencereyi AÇIK bırakın, ikinci terminal penceresini çalıştırın ve buraya girin:
mysql -u root
  1. Ve mysql için şifrenizi değiştirin:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

burada "new_password" - yeni şifreniz. MySQL için eski geçişe ihtiyacınız yok.

  1. Yeni geçişinizi yıkayın, çıkın ve kontrol edin:
FLUSH PRIVILEGES;
  1. Tüm pencereleri kapatın ve yeni geçişinizi mysql için kontrol edin. İyi şanslar.

1

MySQL 8 için çok şey değişti. MySQL 8.0 "Root Parolasını Sıfırlama" belgesinin aşağıdaki modifikasyonunu Mac OS X ile çalışır buldum .

$HOME/mysql.root.txtKök parolasını güncellemek için SQL ile bir geçici dosya oluşturun :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

Bu, 'caching_sha2_password' Kimlik Doğrulama eklentisinin yüklenemediğindenmysql_native_password kaçınmak için kullanır , bu seçeneği atlarsam alırım.

Sunucuyu durdurun, --init-filekök parolasını ayarlama seçeneğiyle başlayın , ardından sunucuyu yeniden başlatın:

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start


1

Dizüstü bilgisayarımda çalışan bu geçici çözümü ekleyelim!

Osx Mojave ile Mac 10.14.5

Mysql 8.0.17 homebrew ile birlikte kuruldu.

  • MySQL yolunu bulmak için aşağıdaki komutu çalıştırın

    brew info mysql

  • Yol bilindikten sonra şunu çalıştırıyorum:

    /usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table

  • Başka bir terminalde:

    mysql -u root

  • Bu terminalin içinde root şifresini kullanarak şunu değiştirdim:

    update mysql.user set authentication_string='NewPassword' where user='root';

  • ve bitirmek için koşuyorum:

    FLUSH PRIVILEGES;

Ve şifre sıfırlandı.

Referanslar :


1

 Apple menüsünü tıklayıp Sistem Tercihleri'ni açarak Mac'te mysql'yi manuel olarak kapatabilirsiniz. “MySQL” tercih panelini seçin, ardından Mac'te MySQL Sunucusunu durdurmak için “MySQL Sunucusunu Durdur” düğmesine tıklayın.

MySQL'inizi durdurduktan sonra bu adımları izlemeniz gerekir.

  • MySQL'i atlama tabloları modunda başlatmanız gerekir

$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

  • Terminalinizin kendisinde, mevcut PRIVILEGES'I FLUSH yapmak için bu komutu girin

/ usr / local / mysql / bin / mysql mysql> SIVA AYRICALIKLARI;

  • Şimdi kullanıcı şifresini değiştirmeniz gerekiyor

mysql> ALTER USER 'root' @ 'localhost' 'newpassword' İLE TANIMLANMIŞ;

mysql> çıkış

Ardından  Apple menüsüne gidebilir ve Sistem Tercihleri'ni açabilirsiniz. “MySQL” tercih panelini seçin, ardından Mac'te MySQL Sunucusunu durdurmak için “MySQL Sunucusunu Durdur” düğmesine tıklayın.

Son olarak tekrar  Apple menüsüne gidebilir ve Sistem Tercihleri'ni açabilirsiniz. “MySQL” tercih panelini seçin, ardından Mac'te MySQL Sunucusunu başlatmak için “MySQL Sunucusunu Başlat” düğmesine tıklayın.

umarım yardımcı olur


1

Önceki yorumların hiçbiri Mac bilgisayarımdaki sorunu çözmüyor. Aşağıdaki komutları kullandım ve işe yaradı.

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root

0
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

Macbook'um her yeniden başladığında bunu bir şekilde yapmam gerekiyor. Bunu kişisel referans için yayınlamak, umarım başka birine de yardımcı olur.

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.