tl;dr: Seems the quickest way of doing this was to fire up a VM, install mysql-server
and mysql-client
and browse that way.
I have backups of things. This is important, because as the old adage goes: running without backups is data loss waiting to happen. I’m not sure if that’s the adage, but it’s something resembling what I say to people. I’m a real hit at parties.
I wanted to check the backups of the database powering this blog, as there was a post that could swear I remembered referring to (iterating over files in bash) but couldn’t find. I had a gzipped dump of the MySQL database, and wanted to check that.
zgrep bash mysql.sql.gz | less
was my first thought, but that gave me a huge amount of irrelevant stuff.
A few iterations later and I was at zgrep bash mysql.sql.gz | grep -i iterate | grep -i files | grep -v comments
and none the wiser. I had hoped there was some tool to perform arbitrary queries on dump files, rather than going through a proper database server, but that’s basically sqlite and to my limited searches, didn’t seem to exist for MySQL.
What I ended up doing was firing up a VM, installing mysql-server
and mysql-client
and dumping the dump into that server via zcat
:
zcat mysql.sql.gz | mysql -u 'root' -p database
And then querying the database: select post_title, post_date from wp_posts where post_title like '%bash%'
followed by select post_content from wp_posts where post_title like '%terate%';
And the post is back!
I ended up using this technique to browse yet another database backup for the ranty blog I mentioned in another post. Hurray for backups and easy virtualisation!