Access denied for user root - mysql on MAC OS
macos, mysql
Solution
You can do the following on Mac (El Capitan)
- 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
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 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`
D) If you see - ERROR 1064 (42000): You have an error in your SQL syntax; It is because password function was removed in version 8.0.11. Use bare string:
`UPDATE USER SET AUTHENTICATION_STRING='NewPassword' WHERE user='root';`
Stop MySql server
`sudo /usr/local/mysql/support-files/mysql.server stop`
Restart MySQL, either through System Preferences > MySql or using a command.
Problem
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 ``` mysqladmin -u root password NEWPASSWORD ``` 2)Doesn't work ``` mysqld --skip-grant-tables --skip-networking & ``` 3) This works: mysql root password forgotten