Access denied for user root - mysql on MAC OS

后端 未结 10 1672
面向向阳花
面向向阳花 2020-12-23 22:32

I know how do skip this problem on ubuntu, but how can i do it on MAC OS?

How can i set password for mysql on MAC?

1) Doesn\'t work

mysqladm         


        
相关标签:
10条回答
  • 2020-12-23 22:55

    I used to try all solutions but nothing worked. Finally and suddenly I found the solution! I use 10.5.8-MariaDB Homebrew.

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

    For some reasons authentication_string is invalid and it's what we need to fix

    Then just run the command below:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '';
    
    0 讨论(0)
  • 2020-12-23 23:02

    I had a very hard time in fixing this issue on MAC Sierra, 10.12.6, MySql version 5.7.17

    Following steps worked for me:

    Open a Terminal window, use the command below to stop mysql if it's already running.

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

    Start MySQL with this command:

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

    Open a new terminal window/tab:

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

    This will open "mysql" prompt. Execute following command in mysql prompt one by one:

    use mysql;
    
    UPDATE user SET authentication_string = PASSWORD('my_new_password'), password_expired = 'N' WHERE User = 'root';
    
    FLUSH PRIVILEGES;
    
    EXIT
    

    Now Stop MySql server first then start it using below commands

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

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

    Hope this solves your issue.

    0 讨论(0)
  • 2020-12-23 23:04

    You can do the following on Mac (El Capitan)

    1. Open a Terminal window, use the command below to stop mysql if it's already running.

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

      You can also check System Preferences > MySQL to see if it is running

    2. Start MySQL with this command:

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

    3. Open a new terminal window/tab:

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

      This should open "mysql" prompt. Execute the following command:

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

      Troubleshooting tips:

      A) The command for MySql versions before 5.7 was:

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

      B) If you see ERROR 1046 (3D000): No database selected, then run this command first:

      use mysql;

      C) If you see unknown "Password" field error, then run this command:

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

    4. Stop MySql server

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

    5. Restart MySQL, either through System Preferences > MySql or using a command.

    0 讨论(0)
  • 2020-12-23 23:05
    sudo mysql -uroot
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    flush privileges;
    Ctrl+D
    mysql -uroot -pnew_password  # will work now
    

    Notice the sudo on the first line.

    0 讨论(0)
  • 2020-12-23 23:11

    I discovered that in Mac Mojave, at least if you do the install straight from downloading MySQL Community Package rather than through brew, apparently you still need to insert the password you choose for 'root' through the System Preferences screen after stopping, restarting with safe mode (--skip-grant-tables), and flushing privileges. Then you can log in as root in phpMyAdmin. This was after trying at least 20 different sets of advice/instruction for fixing this, including the ones listed above on this page. Hope it helps someone!

    0 讨论(0)
  • 2020-12-23 23:14

    The solution of

    UPDATE user SET authentication_string=PASSWORD("my_password") WHERE User='root';
    

    wasn’t working for me, but I did

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
    

    And was able to proceed. I’m using Ver 8.0.12.

    0 讨论(0)
提交回复
热议问题