This post will walk you through the process of showing and updating a MySQL database via terminal.
We’ll use a WordPress installation because it has an established database schema. The principles apply to any database.
You log into your database like this:
# mysql -u [database-user] -p
[enter your password]
Once logged in, view the tables you have access to:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | wordpress | +--------------------+ 2 rows in set (0.01 sec)
Set the database you want to work in like this:
mysql> use wordpress; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
You have been asked to update the admin users email inside the database. A quick Google search shows us that all WordPress users are stored inside the wp_users table.
We verify all the tables in the database:
mysql> show tables; +-----------------------+ | Tables_in_wordpress | +-----------------------+ | wp_commentmeta | | wp_comments | | wp_links | | wp_options | | wp_postmeta | | wp_posts | | wp_term_relationships | | wp_term_taxonomy | | wp_termmeta | | wp_terms | | wp_usermeta | | wp_users | | wp_yoast_seo_links | | wp_yoast_seo_meta | +-----------------------+ 14 rows in set (0.00 sec)
Now we check to see what is inside wp_users table:
mysql> select * from wp_users;
This provides an output like this:
+----+---------------------+------------------------------------+---------------------+--------------+----------+---------------------+---------------------+-------------+---------------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+---------------------+------------------------------------+---------------------+--------------+----------+---------------------+---------------------+-------------+---------------------+ | 1 | wordpress-admin | adfadsfasdfasdfasdfasdfasasdfa . | wordpress-admin | admin@email.com | | 2018-11-17 06:53:57 | | 0 | wordpress-admin | +----+---------------------+------------------------------------+---------------------+--------------+----------+---------------------+---------------------+-------------+---------------------+ 1 row in set (0.00 sec)
So we want to update wordpress-admin users email from admin@email.com to master@email.com.
mysql> UPDATE wp_users SET user_email = 'master@email.com' WHERE user_login = 'wordpress-admin'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
Just like that you’ve updated your MySQL table via terminal. For reference, here is a great cheat sheet: http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm
Sharing is caring!