brew install mysql on macOS

homebrew, macos, mysql, mysql-error-1045

Solution

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 the `launchctl` 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 plist

Updated 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:

brew remove mysql

brew cleanup

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

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo rm -rf /usr/local/var/mysql

I then started from scratch:

- installed mysql with `brew install mysql`

ran the commands brew suggested: (see note: below)

unset TMPDIR

mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Start mysql with `mysql.server start` command, to be able to log on it

Used the alternate security script:

/usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation

Followed the `launchctl` section from the brew package script output such as,

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

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

Note: the `--force` bit on `brew 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!

Problem

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) ```

Original source

Related problems