2013-08-20 79 views
4

我知道如何在Ubuntu上跳過這個問題,但是我怎樣才能在MAC OS上做到這一點?訪問被拒絕用戶root - mysql在MAC上操作系統

如何在MAC上設置mysql密碼?

1)不工作

mysqladmin -u root password NEWPASSWORD 

2)不工作

mysqld --skip-grant-tables --skip-networking & 

3)這工作:

mysql root password forgotten

+0

有一個你不知道已經設置的密碼,或者你只需​​要設置一個初始密碼? –

+0

我現在不需要這個。 MySQL現在停止工作,任何卸載都不會修復它。 – Wordica

+0

刪除周圍的所有數據文件。 – akostadinov

回答

14

你可以做以下的Mac(El Capitan)

  1. 打開一個終端窗口,如果它已經在運行,停止mysql。如果正在運行

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

您還可以檢查該系統首選項> MySQL的「看

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

  • 開始= 」2「>
  • 啓動MySQL

    打開新的終端窗口/標籤。

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

    這應該打開「mysql」提示符。執行以下命令:

    $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root';

    如果你看到ERROR 1046 (3D000): No database selected,運行此命令第一:use mysql;

    如果你看到未知 「密碼」 字段中的錯誤,然後運行這個命令:

    UPDATE USER SET AUTHENTICATION_STRING=password('NewPassword') WHERE user='root'; $mysql> FLUSH PRIVILEGES; $mysql> EXIT

  • Stop MySql server

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

  • 通過系統偏好設置> MySql或使用命令重新啓動MySQL。

  • +0

    MySQL 5.7,密碼字段被重命名爲'authentication_string'。應該用下面的命令代替: $ mysql> UPDATE user SET authentication_string = PASSWORD(「my_password」)WHERE User ='root'; – Starchand

    +0

    看起來像這樣不再有效,我得到'ERROR 1046(3D000):沒有選擇數據庫' – Sudara

    +0

    完美工作。我想知道爲什麼在開始時安裝和啓動數據庫非常複雜。它是否設計出一些新用戶? – MobileDev

    1

    對於MySQL 5.7我不得不使用:

    UPDATE SET用戶= authentication_string PASSWORD( 'YourNewPassword'), password_expired = 'N' WHERE用戶= '根';

    +1

    這在Sierra 10.12.6上使用MySQL 5.7執行,但仍然不允許在使用「mysql -u root -p admin」重新啓動數據庫後登錄。 讓我感到驚訝的是,有多少時間被浪費在嘗試做一些應該很簡單的事情上。 – rakehell

    2

    你可以做的iMac或Mac(高塞拉利昂)

    打開一個終端窗口中輸入以下,並停止MySQL,如果它已經運行。您還可以檢查此係統首選項> MySQL>查看它是否正在運行。

    啓動MySQL與此命令用於跳過主表

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

    打開一個新的終端窗口/標籤..

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

    這應該打開 「的MySQL」 的提示。執行以下命令:

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

    重新啓動MySQL,可以通過系統首選項> MySql或使用命令。

    +0

    從MySQL 5.7中,mysql.user表中的密碼字段被稱爲「authentication_string」,因此查詢變成了'UPDATE mysql.user SET authentication_string = PASSWORD('NewPassword')WHERE user ='root';' – roibeart

    相關問題