Shawn Mervin

MySQL

The database under Rental Pilot, and under most of what I have built since the LAMP years.

Visit mysql.comWhere the data lives

What it is

MySQL is an open-source relational database, first developed by MySQL AB and now owned by Oracle. It was the M in the LAMP stack of Linux, Apache, MySQL and PHP that ran much of the early web, and it remains one of the most widely deployed databases, behind WordPress and a long list of business systems.

It stores data in tables queried with SQL, and its InnoDB engine provides transactions, row-level locking and foreign keys. It runs on a single server or with replicas, and every major cloud offers it as a managed service. MariaDB is a community fork started by its original developers, and the two remain largely compatible.

How I use it

  • Rental Pilot's MySQL holds 3,900 rental agreements, 6,200 invoices, 43,000 fuel deliveries and 1.4 million rows of audit trail.
  • Each company runs in its own database, with permissions enforced by the API.
  • Production and a scrubbed sandbox share a server but never a database. The sandbox is refreshed from a production snapshot with customer emails scrubbed.
  • EBS snapshots of the server are scheduled by Data Lifecycle Manager.
  • Also behind the stucco company's job app, both company WordPress sites, and earlier systems at Brikers and Metal Mountain.

MySQL is the right tool for a transactional business system where the records must reconcile and the team knows it well. I use it for Rental Pilot because it has held the yard's agreements, invoices and payroll reliably since 2008, through a complete rebuild of the software on top.

Questions

How do you test changes without touching live customer data?

Rental Pilot has a sandbox database refreshed from a production snapshot, with customer emails scrubbed so nothing on the test side can mail a real customer. It shares the server but never a database.

Is each company's data kept separate?

Yes. Each Rental Pilot company runs in its own database, and permissions are enforced by the API.

Working with MySQL?

Tell me what you're building. Start a project or see the whole stack.

Got an operation that's outgrown its spreadsheets?

Tell me what your business does and where it's jamming up. If I'm not the right person for it, I'll say so and point you somewhere better.

What to send, and what happens next