Database design · SQL programming · Long Island, New York

MySQL Database Consulting & Programming

We design, install, program and maintain MySQL databases for businesses on Long Island and beyond—from the first table to the custom application that makes your data useful.

We're MySQL consultants and SQL programmers. We work with MySQL on Linux, Windows and cloud servers, and build the software and reports that let people use the information stored there.

Installation & configuration

Set up MySQL on Linux, Windows or cloud infrastructure, with attention to access, reliability and maintainability.

Database design

Plan tables, keys, relationships and indexes, using sound normalization principles and practical performance considerations.

SQL & custom software

Write queries, reporting tools and business applications that turn stored records into useful information.

Administration & recovery

Maintain database servers, plan backups, restore data and troubleshoot application or database problems.

More than a database installation

A useful database is part of a working system. We can connect it to custom PHP , Node.js or JavaScript applications, develop reports and automate routine tasks. We also work with Microsoft Access and SQL Server .

MySQL has long been one of our preferred database platforms because it is mature, flexible, widely supported and available without a proprietary database license for many common uses.

A note on remote MySQL connections

The original page offered this quick fix for remote MySQL login problems:

CREATE USER 'anyuser'@'localhost' IDENTIFIED BY 'anypass';
CREATE USER 'anyuser'@'%' IDENTIFIED BY 'anypass';

GRANT ALL ON *.* TO 'anyuser'@'localhost';
GRANT ALL ON *.* TO 'anyuser'@'%';

This can get a connection working, but it is far too permissive for production: '%' allows connections from any client host (subject to network controls), and ALL ON *.* grants broad privileges across every database. The password shown is also only a weak illustrative placeholder.

The better way: Create a dedicated account, restrict the client host, and grant only the permissions the application actually needs. Use a strong password, firewall rules, and TLS as appropriate.

For example, a narrowly scoped account might be created with SQL like this (replace the example host and password):

CREATE USER 'appuser'@'192.0.2.10'
  IDENTIFIED BY 'replace-with-a-strong-secret';

GRANT SELECT, INSERT, UPDATE, DELETE
  ON appdb.* TO 'appuser'@'192.0.2.10';

This example assumes the database appdb already exists and the application needs these four privileges. A real deployment also requires appropriate server binding, firewall and connection settings; don't expose port 3306 publicly just to make a connection work.

MySQL resources

See the official MySQL downloads and MySQL developer documentation for current software and technical reference material.

Need help with a MySQL project?

Whether you're starting a database, fixing an existing system or connecting it to custom software, tell us what you're trying to accomplish.

Discuss your project