Install MySQL on macOS Catalina. Download and install the latest MySQL generally available release DMG for macOS. MySQL 8 is the latest version. But older versions are available if you need to support older applications. When the install completes it will provide you with a temporary password. Copy this password before closing the installer.
MySQL is the most popular open source database management system. It allows you to quickly download and install and run a powerful database system on almost any platform available including Linux, Windows, and Mac OS X etc. In this tutorial, I am going to explain how to download and install MySQL on Mac OS X in a few easy steps.
Background
- Questions: 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 mysqlinstalldb.
- In addition to the core installation, the Package Installer also includes Chapter 3, Installing a MySQL Launch Daemon and Chapter 4, Installing and Using the MySQL Preference Pane, both of which simplify the management of your installation.
Mac OS X doesn't ship with its own copy of MySQL
, nor does Sequel Pro
. You will have to install a copy on your local machine, or connect to the MySQL server on a machine somewhere on the Internet.
Most webservers and website packages will include a MySQL installation as part of the services they provide, and usually provide external connection details to allow you to connect to them in an external program like Sequel Pro. (See Web Hosting Providers for a list of hosting options).
Important! IncoPOS for macOS can now download, install and configure MySQL server for you when it is started for the first time. You can download it from here.
Download MySQL
The first step is to download MySQL
server on your Mac.
Go to the MySQL web site and select the version that matches your version of Mac OS. Select the DMG archive
version which I recommend. Open the installer and follow the installation steps.
Warning! Because Oracle has changed the MySQL installer and the default parameters of the MySQL server in newer versions the following steps may no longer work. These steps were tested with MySQL server version 5.7.18 for macos10.12 in 2017 and I hoped this still worked fine with latest version. If not, feel free to leave a comment and I will update this post ASAP.
Please download and install version 5.5.48 to make sure that all the steps will work correctly. If for some reason the installer is no longer available on the MySQL web site you can download it from here.
Pay attention to the password in notification center. If you do not save the proper password
for admin
, open notification center and scroll a little bit, you will find something like this:
MySQL Configuration
- Choose Apple () menu > System Preferences > MySQL, select MySQL and start MySQL server and move to the next step. If you use MySQL frequently, make sure to leave the checkbox 'Automatically Start MySQL Server on Startup' so you won't have to do that again and again.
Open terminal and type:
Type this piece of codes in the file you opened, then save and quit.
Use this piece of code and the password appeared in notification center to log in.
If you successfully log in using
Terminal
, you can use this piece of code to reset/change your password.
- This is it! Now you have
MySQL
installed and secured on your Mac.
If you notice mistakes and errors in this post, don't hesitate to leave a comment and I would be super happy to correct them right away!
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:
I get:
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:
but I also get
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:
I then started from scratch:
- installed mysql with
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 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!
Had the same problem. Seems like there is something wrong with the set up instructions or the initial tables that are being created. This is how I got mysqld running on my machine.
If the mysqld server is already running on your Mac, stop it first with:
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
Start the mysqld server with the following command which lets anyone log in with full permissions.
mysqld_safe --skip-grant-tables
Then run mysql -u root
which should now let you log in successfully without a password. The following command should reset all the root passwords.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Download Mysql On Mac
Now if you kill the running copy of mysqld_safe and start it up again without the skip-grant-tables option, you should be able to log in with mysql -u root -p
and the new password you just set.
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
- stop and
kill
any MySQL processes sudo 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
- edit
/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*
- try to run
mysql
, it shouldn't work
Brew 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
- run the commands Brew suggests, add MySQL to
launchctl
so it automatically launches at startup
mysql
should now work and be running all the time as expected
Godspeed.
I had the same problem just now. If you brew info mysql
and follow the steps it looks like the root password should be new-password
if I remember correctly. I was seeing the same thing you are seeing. This article helped me the most.
It turned out I didn't have any accounts created for me. When I logged in after running mysqld_safe
and did select * from user;
no rows were returned. I opened the MySQLWorkbench with the mysqld_safe
running and added a root
account with all the privs I expected. This are working well for me now.
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
If brew installed MySQL 5.7, the process is a bit different than for previous versions.
In order to reset the root password, proceed as follows:
A temporary password will be printed to the console and it can only be used for updating the root password:
brew info mysql
mysql.service start
or mysql -u root
I'm looking for a solution for some time but I can not solve my problem. I tried several solutions in stackoverflow.com but no this helping me.
Stop mysql completely.
mysql.server stop
<– may need editing based on your versionps -ef | grep mysql
<– lists processes with mysql in their namekill [PID]
<– kill the processes by PID
Remove files. Instructions above are good. I'll add:
sudo find /. -name '*mysql*'
- Using your judgement,
rm -rf
these files. Note that many programs have drivers for mysql which you do not want to remove. For example, don't delete stuff in a PHP install's directory. Do remove stuff in its own mysql directory.
Hopefully you have homebrew. If not, download it.
I like to run brew as root, but I don't think you have to.
sudo brew update
sudo brew install cmake
<– dependency for mysql, usefulsudo brew install openssl
<– dependency for mysql, usefulsudo brew info mysql
<– skim through this… it gives you some idea of what's coming nextsudo brew install mysql --with-embedded; say done
<– Installs mysql with the embedded server. Tells you when it finishes (my install took 10 minutes)
mysqld_safe --skip-grant-tables
Then run mysql -u root
which should now let you log in successfully without a password. The following command should reset all the root passwords.
UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;
Download Mysql On Mac
Now if you kill the running copy of mysqld_safe and start it up again without the skip-grant-tables option, you should be able to log in with mysql -u root -p
and the new password you just set.
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
- stop and
kill
any MySQL processes sudo 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
- edit
/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*
- try to run
mysql
, it shouldn't work
Brew 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
- run the commands Brew suggests, add MySQL to
launchctl
so it automatically launches at startup
mysql
should now work and be running all the time as expected
Godspeed.
I had the same problem just now. If you brew info mysql
and follow the steps it looks like the root password should be new-password
if I remember correctly. I was seeing the same thing you are seeing. This article helped me the most.
It turned out I didn't have any accounts created for me. When I logged in after running mysqld_safe
and did select * from user;
no rows were returned. I opened the MySQLWorkbench with the mysqld_safe
running and added a root
account with all the privs I expected. This are working well for me now.
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
If brew installed MySQL 5.7, the process is a bit different than for previous versions.
In order to reset the root password, proceed as follows:
A temporary password will be printed to the console and it can only be used for updating the root password:
brew info mysql
mysql.service start
or mysql -u root
I'm looking for a solution for some time but I can not solve my problem. I tried several solutions in stackoverflow.com but no this helping me.
Stop mysql completely.
mysql.server stop
<– may need editing based on your versionps -ef | grep mysql
<– lists processes with mysql in their namekill [PID]
<– kill the processes by PID
Remove files. Instructions above are good. I'll add:
sudo find /. -name '*mysql*'
- Using your judgement,
rm -rf
these files. Note that many programs have drivers for mysql which you do not want to remove. For example, don't delete stuff in a PHP install's directory. Do remove stuff in its own mysql directory.
Hopefully you have homebrew. If not, download it.
I like to run brew as root, but I don't think you have to.
sudo brew update
sudo brew install cmake
<– dependency for mysql, usefulsudo brew install openssl
<– dependency for mysql, usefulsudo brew info mysql
<– skim through this… it gives you some idea of what's coming nextsudo brew install mysql --with-embedded; say done
<– Installs mysql with the embedded server. Tells you when it finishes (my install took 10 minutes)
sudo chown -R mysql /usr/local/var/mysql/
<– mysql wouldn't work for me until I ran this commandsudo mysql.server start
<– once again, the exact syntax may vary- Create users in mysql (http://dev.mysql.com/doc/refman/5.7/en/create-user.html). Remember to add a password for the root user.
None of the above answers (or any of the dozens of answers I saw elsewhere) worked for me when using brew with the most recent version of mysql and yosemite. I ended up installing a different mysql version via brew.
Specifying an older version by saying (for example)
Worked for me. Hope this helps someone. This was a frustrating problem that I felt like I was stuck on forever.
TL;DR
MySQL server might not be running after installation with Brew. Try brew services start mysql
or just mysql.server start
if you don't want MySQL to run as a background service.
Full Story:
I just installed MySQL (stable) 5.7.17 on a new MacBook Pro running Sierra and also got an error when running mysql_secure_installation
:
Install Mysql On Mac
Say what?
According to the installation info from Brew, mysql_secure_installation
should prompt me to… secure the installation. I figured the MySQL server might not be running and rightly so. Running brew services start mysql
and then mysql_secure_installation
worked like a charm.
I had the same issue after I tried to restart mysql.
I use the following two aliases in my .profile for convenience Best free typing software download.
After stoping mysql and then trying to restart I experienced the issue you were having. I looked into the launchctl load and it was reporting a 'nothing found to load' error.
How To Download And Install Mysql On Macos
After a quick search I found this.
So I updated me mysql-start
alias as follows
This solved my issue which may be useful for you.
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 value
For example, change this:
Mysql For Mac
to point to the new version:
Download And Install Mysql On Mac Download
Restart mysql with:
Download And Install Mysql On Mac Os
Tags: mysql, sql