How to use the MAMP Mysql command line client in a terminal
Coming from a Linux background, one of the things I didn’t like about MAMP was the way it hid away the mysql command line interface. Once you are comfortable using it, the CLI is a powerful and quick method of interacting with a mysql server. I just wanted to share a quick and easy way to access the MAMP mysql command line client on Mac OSX.
Firstly you can run the Mac OSX terminal easily by just typing:
ctrl + space bar (to access spotlight)
Then start typing ‘Terminal’ before you have even finished the little Apple gnomes will have guessed you want to open the Terminal (which of course you do). Start the Terminal by hitting enter when spotlight highlights the Terminal app.
Now that you are in a Terminal you are able to do all sorts of excellent things to your Mac. For now though, we’ll stick to running the mysql client. The client is located in /Applications/MAMP/Library/bin so to run it execute this command:
/Applications/MAMP/Library/bin/mysql -uroot -p
The -uroot tells the client you want to log in as user ‘root’ if you have other users you could equally log in as those. The -p tells the client to ask for a password, you can pass the password to the client so it won’t ask, but this will leave your password dangling in places like your bash history file. If you don’t care about that – then by all means change the -p to -psecret where your password replaces ’secret’.
If you leave the -p as it is, you’ll be prompted for your password, which you can see on the MAMP ’start page’ in case you have forgotten. If you have done it right you should now see a command line prompt like this:
mysql>This is where the magic happens. I won’t go in to too much detail because there are roughly 2 million mysql books in existence, testament to the fact there is a lot to cover, far more than I could get through in a single blog post. However, to give you a few commands to try out, here are a handful of useful mysql commands.
USE database_nameWhere database_name is the name of the database you are interested in inspecting/changing. This sets the client context to given database. You can pass a database name as an argument to the client, to pre-set the context. For example:
/Applications/MAMP/Library/bin/mysql -uroot -p my_db
Will implicitly set the client to use ‘my_db’ when it starts, so that you do not have to type the USE command.
SHOW TABLES;
This command will print a list of tables in the current database. This is useful if you are trying to figure out what tables exist in a new database, or to find out if there is some sort of logging table (e.g. the Google Checkout logging table in Magento) that might be useful.
To get an idea for how big a table is (in terms of row count) you can run a quick:
SELECT COUNT(*) FROM table_name;
This will report how many rows are in the table named table_name. This can be useful if you are about to select * from the table, because it might save you spamming your terminal full of query output.
One last handy little trick is the formatting for query output. By default it will come out in row format which, for queries with lots of result rows or lots of selected columns, can be hard to read. By replacing the semi-colon ; at the end of a query with a \G you can cause the output to be made vertical in the format field:value.
For example:
SELECT * FROM table_name\G
Will show all the rows from table_name in a more easily readable vertical format.
Well, that concludes the little 10 minute introduction to running and using the mysql command line client for MAMP in Mac OSX. You can find out much much more about the wonders of mysql by reading the mysql manual.
You might also be interested in:
- Whoops: Magento supports PHP 5.2.0 or newer
- How to install MAMP on your Leopard Mac
- How to use Apache Virtual Hosts over a local network with MAMP
- How to set up Apache Virtual hosting on MAMP for Magento
- Fixing Magento Login Problem after a Fresh Installation
Tagged as cli, leopard, Mac, mac osx, Magento, MAMP, Mysql, terminal + Categorized as MAMP, Mac, Magento, Mysql









Wow, short and sweet and very helpful. Nice run-through! Thanks!!
Yay! You made my day buddy! Was looking everywhere trying to make it work. It will be a challenge working on terminal given my background with GUI applications to do the same.
I like your blog, simple, nice to the point….
Cheers!
Kiran
Outstanding tutorial, saved me loads of time and effort after many, many dead ends. thanks!
I was getting nowhere with various overpriced books until I followed this tutorial. God bless!
Alternatively you can create a link so all you will have to do is call mysql like this:
mysql -uroot -p
By entering these commands into terminal then you wont have to type the long command anymore.
//Fix mysql command line link for mamp
sudo ln -s /Applications/MAMP/Library/bin/mysql /usr/local/bin/mysql
sudo ln -s /Applications/MAMP/Library/bin/mysqldump /usr/local/bin/mysqldump
sudo ln -s /Applications/MAMP/Library/bin/mysqladmin /usr/local/bin/mysqladmin
very helpful, thanks a lot!
Wow, looks like this will be very useful. Just going to start an “Intro to SQL” course using mySQL at eclasses.org, and wasn’t sure how to get SQL commands working in MAMP. Thanks very much in advance.
Definitely took me out of a jam. I had a huge database to Import that was too big for phpMyAdmin, so I just went in to MySQL using Terminal as described and used the source statement to import the database. It took about 30 seconds.
Thanks.
wow thanks!! I knew how to do this on windows, but didn’t know how to do this on my mac. saved me a lot of time!
thanks again for this post
Sweet!!… thanks..
And also thanks to Scott for the tip for the short command.
Very helpful, I ran into the same issue as Michael, having a database too large to import with phpMyAdmin. After getting a handle on the CLI, phpMyAdmin is a pain to use, so I’m glad to have come across this workaround for MAMP.
As for getting to the mySQL command line as lazily as possible, I went this route:
cd ~
vi .bash_profile
Use the vi editor to add this to your profile:
# mysql command line access for mamp
alias db=”/Applications/MAMP/Library/bin/mysql -uroot -p”
Save your change, quit vi editor, and reload your profile (. ~/.bash_profile). Now you can just type “db” and you’ll be prompted for your MAMP root password.
Awesome. Just what I needed. Was using myPHPadmin and trying to import a database that was larger than 32mb. Much thanks!