MacOSX homebrew mysql root password

前端 未结 21 1569
自闭症患者
自闭症患者 2020-12-04 05:43

For some reason MySQL stopped giving access for root. Uninstalled and reinstalled with Homebrew. Fresh install, fresh tables but when I enter

mysql -u root -         


        
相关标签:
21条回答
  • 2020-12-04 06:17

    Running these lines in the terminal did the trick for me and several others who had the same problem. These instructions are listed in the terminal after brew installs mysql sucessfully.

    mkdir -p ~/Library/LaunchAgents
    
    cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
    
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    /usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'
    

    where YOURPASSWORD is the password for root.

    0 讨论(0)
  • 2020-12-04 06:20

    In case you have inadvertently set and forgot the root password, and you don't want to wipe all your databases and start over because you are lazy and forgot to have a back up solution in place, and you are using a fairly recent Homebrew install (Winter 2013), here are steps to reset your password for MySQL.

    Stop the currently running MySQL instance

    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    

    Now start mysql by hand skipping the grant tables and networking

    $(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking
    

    Note that if when you run echo $(brew --prefix mysql) and it does not respond as "/usr/local/opt/mysql" in bash, you will need to adjust the path accordingly.

    Once you have done this, you now should have a running, unprotected MySQL instance up.

    Log in and set the password

    mysql -u root
    

    At the prompt, enter the following MySQL command to set a new password for the effected user.

    mysql> update mysql.user set password=PASSWORD('new_password_here') WHERE user='root';
    

    If all went to plan it should say:

    Query OK, 1 row affected (0.02 sec)
    Rows matched: 4  Changed: 1  Warnings: 0
    

    Exit out of the MySQL prompt.

    mysql> exit
    Bye
    

    Stop server:

    mysqladmin -u root shutdown
    

    Now, lets put back the launch daemon so we have our MySQL at the ready again:

    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    

    Congratulations. You've just reset your mysql root password. Pour yourself a coffee and get a backup solution in place!

    0 讨论(0)
  • 2020-12-04 06:20

    I had the same problem a couple days ago. It happens when you install mysql via homebrew and run the initialization script (mysql_install_db) before starting the mysql daemon.

    To fix it, you can delete mysql data files, restart the service and then run the initialization script:

    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    rm -r /usr/local/var/mysql/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    unset TMPDIR
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    
    0 讨论(0)
  • 2020-12-04 06:20

    Since the question was asked/answered long time ago, those top answers do not work for me. Here's my solution, in 2020.

    Background: Fresh mysql/mariadb installed by homebrew.

    Problem: The password for root is not empty and unknown.

    The fix:

    1. mysql -u YOUR-SYSTEM-USERNAME -p
    2. The password is empty (press enter)
    3. ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW-ROOT-PASSWORD';
    4. FLUSH PRIVILEGES;

    The reason:

    1. Homebrew will create a user with root privileges named by the current MacOS username.
    2. it has no password
    3. Since it has all privileges, just reset the root password with that user.
    4. The initial password for root was randomly generated.
    0 讨论(0)
  • 2020-12-04 06:22

    So, in case someone has the same situation and configuration as I had and is also about to go mad - this worked for me.

    After a long story I had a brew-installed MariaDB which kept automatically restarting when I killed its process (this was brew's doing), which had a root password, which I did not know.

    $ brew services list

    This shows something like:

    mariadb started jdoe /path/to/homebrew.mxcl.mariadb.plist

    Stop the MySQL server with:

    $ brew services stop mariadb

    Then start it again without the root user (and not using brew):

    $ mariadbd --skip-grant-tables &

    Here, mysql_secure_installation did not work for me because of the --skip-grant-tables, and it would not work without the --skip-grant-tables because it needed the password (which I did not have).
    Trying $(brew --prefix mysql)/bin/mysqladmin -u root password hunter2 only returned strange errors and did nothing; $(brew --prefix mariadb)/bin/mysqladmin -u root password hunter2 also didn't work, gave different errors, and suggestions that did not work for me.

    But you can log into mysql now without credentials: $ mysql

    Here, the old method of updating the user table for root doesn't work because "Column 'Password' is not updatable".
    The new method uses alter user BUT only works after you have done flush privileges; so do that first.
    Then:
    MariaDB [(none)]> alter user 'root'@'localhost' identified by 'hunter2';
    (MariaDB [(none)]> is the MySQL prompt here)
    Then do flush privileges; again.
    Exit the MySQL client.

    Now as far as brew is concerned, MariaDB is still not running, and so use $ ps aux | grep -i mariadb to find the pid and $ kill -9 <pid> it.
    Then use $ brew services start mariadb to start it again.

    0 讨论(0)
  • 2020-12-04 06:25

    Check that you don't have a .my.cnf hiding in your homedir. That was my problem.

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