I'm trying to setup up MySQL on mac os 10.6 using Homebrew by brew install mysql 5.1.52
.
Everything goes well and I am also successful with the mysql_install_db
.
However when I try to connect to the server using:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
I get:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
I've tried to access mysqladmin or mysql using -u root -proot
as well,
but it doesn't work with or without password.
This is a brand new installation on a brand new machine and as far as I know the new installation must be accessible without a root password. I also tried:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation
but I also get
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Here is an update for MySQL 5.7
Try by giving Grant permission Command of mysql
I think one can end up in this position with older versions of mysql already installed. I had the same problem and none of the above solutions worked for me. I fixed it thus:
Used brew's
remove
&cleanup
commands, unloaded thelaunchctl
script, then deleted the mysql directory in/usr/local/var
, deleted my existing/etc/my.cnf
(leave that one up to you, should it apply) and launchctl plistUpdated the string for the plist. Note also your alternate security script directory will be based on which version of MySQL you are installing.
Step-by-step:
I then started from scratch:
brew install mysql
ran the commands brew suggested: (see note: below)
Start mysql with
mysql.server start
command, to be able to log on itUsed the alternate security script:
Followed the
launchctl
section from the brew package script output such as,Boom.
Hope that helps someone!
Note: the
--force
bit onbrew cleanup
will also cleanup outdated kegs, think it's a new-ish homebrew feature.Note the second: a commenter says step 2 is not required. I don't want to test it, so YMMV!
Here are detailed instructions combining getting rid of all MySQL from your Mac then installing it The Brew Way as Sedorner wrote above:
Remove MySQL completely per The Tech Lab
ps -ax | grep mysql
kill
any MySQL processessudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
/etc/hostconfig
and remove the lineMYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
mysql
, it shouldn't workBrew install MySQL per user Sedorner from this StackOverflow answer
brew doctor
and fix any errorsbrew remove mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=
whoami--basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
mysql.server start
launchctl
so it automatically launches at startupmysql
should now work and be running all the time as expectedGodspeed.
Okay I had the same issue and solved it. For some reason the mysql_secure_installation script doesn't work out of the box when using Homebrew to install mysql, so I did it manually. On the CLI enter:
That should get you into mysql. Now do the following (taken from mysql_secure_installation):
Now exit and get back into mysql with:
mysql -u root -p
The "Base-Path" for Mysql is stored in
/etc/my.cnf
which is not updated when you do brew upgrade. Just open it and change the basedir valueFor example, change this:
to point to the new version:
Restart mysql with: