Getting out of the Rabbit Hole of MySQL, Vagrant and the Cyrillic Jumble

July 25, 2017

Setting up a functioning MySQL database on your computer can be a bit of a struggle, although it doesn’t have to be – as I learned the hard way. As a digital humanist, I wanted to do everything “properly:” according to the best practices of my institutional environment. At the same time, things got a little frustrating, when very basic things just wouldn’t work. It is in those moments, as I’m weeding through Stackoverflow and spending hour after hour hung up on some problem, that I also start feeling increasingly anxious about about falling behind on writing and publishing, aka “traditional scholarship.”

While figuring out the schema for my database was a really interesting and complex intellectual exercise, the problem I was struggling with for a while was much more banal: running MySQL on a Vagrant virtual machine. A virtual machine is an environment you set up on your computer that acts like a second operating system that you can access, close, delete or renew any time without doing harm to your actual operating system. Vagrant also makes it really easy to install MySQL, which on a regular Mac OS can be tricky.

Vagrant and I got along splendidly – until I started pasting Cyrillic data into my MySQL database. It would randomly jumble letters around, while the cursor would get stuck in the middle of the line – like this:

screen-shot-2017-07-20-at-11-09-42-am

There seems to be no logic to when this happens. After some trial and error, I established that it’s not caused by Terminal itself nor MySQL. I also established that you can play around with the locale and provisioning as much as you like – nothing helps. Stackoverflow and the Russian internet had no answer either.

Finally, I frustratedly texted my sister, a programmer, who didn’t quite get why I was troubling myself: “Why didn’t you just use Homebrew to install MySQL locally?” It literally took me 15 minutes to get MySQL running this way.

Bottom line (also, reminder to myself): getting to the bottom of a problem and avoiding it altogether needs to be constantly evaluated as a tradeoff. As digital humanists we can’t afford to forget about this as part of our best practice routines – especially if on top of programming, we need to pursue other kinds of scholarship. For me, it proved important to have some sort of a life line that can help find the way out of a rabbit hole or rather remind me to not spend too much time in it – possibly someone who isn’t involved in dh traditions and practices.