My 7-year-old MacBook got bricked. So I needed to recover some MySQL files from a Time Machine backup and load them onto a new computer.
And so I’ve been digging around finding out where all my homebrew and MySQL files are. While running mulitple instances of everything!
Here’s a fairly unstructured brain-dump of all that I’ve learned (or re-learned) along the way.
- homebrew versions of MySQL and MariaDB
- DBNgin (a MacOS App for managing installed databases)
- Querious and Sequel Ace database management tools
Requires: better than average command-line knowledge
Where is homebrew installed?
The current default install goes to
It seems that they may be moving the default install to
/opt/homebrew on MacOS ARM/Apple Silicon processors. More…
If you run
/some/homebrew/path/bin/brew then all operations will happen within that homebrew instance and not affect others.
Where are homebrew-installed MySQL/MariaDB binaries/executables?
Homebrew keeps package binaries in
So if you want to use a specific version of the mysql client you can do, for example:
Note that there is a notion of a “current” version that is symlinked into
You can change the symlinked current version using
brew link (make sure you use the right brew instance!)
Where are homebrew-installed MySQL/MariaDB data files?
The standard location for the database data files is
Every version of MySQL/MariaDB installed in a particular brew instance appears to share the same location. Which is odd. This MUST be configurable from somewhere, but I didn’t get to finding out where it was.
/some/homebrew/path/etc would be the obvious place. And there is a file there, but it doesn’t have much config in.
You’ll have to dig in to this to find out yourself. I would assume MySQL has some default location it’s reading from.
Starting and stopping MySQL/MariaDB using homebrew
Worth a quick note that you can start and stop homebrew-installed MySQL/MariaDB as a service using:
/some/homebrew/path/bin/brew services start <servicename>
/some/homebrew/path/bin/brew services start email@example.com
What even IS DBngin?
DBngin is a free MacOS app that lets you install/start/stop different databases. I figured all this out while I was moving to a new Mac and so thought I’d give it a go.
It’s limited in that it doesn’t include MariaDB yet. One of my big issues was – I think – incompatibilities between MariaDB and MySQL when reading data files.
Where are DBngin MySQL binaries?
DBngin puts binaries in
Where does DBngin put data files?
DBngin puts data files in
/Users/<you>/Library/Application Support/com.tinyapp.DBngin/engines/mysql/<some ID>
I discovered while doing this migration that if there are not files called
com.tinyapp.DBngin.mysqld-<some ID>.plist in this directory then the whole directory will be wiped clean when you use DBngin to start up the database.
So if you empty this directory and copy a bunch of existing data files into it then you’ll immediately have them all deleted.
is all I got!