Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It seems from your question and your tags that you're preparing to deploy a MySQL server instance on a machine that's visible from the public internet. It seems you're planning to have your desktop and mobile apps establish connections, using the MySQL protocol and using well-known MySQL server access credentials (username / password) for the purpose of registering themselves.</p> <p><strong>Do Not Do This!</strong> Seriously. </p> <p>Instead, create a small web application on a web server than connects to your MySQL database. Arrange for your client apps to contact your web app with the information needed to register themselves. Then get the web app to carry out whatever MySQL operations are needed for registration.</p> <p>Put your MySQL server behind a firewall. If you have a data center or a hosting service, this is straightforward and most likely already done. If you're running your own machine (physical or virtual) set up MySQL so it's not visible from the public internet.</p> <p>Here's why:</p> <p>First, it's poor practice to make a database server visible from the public internet. It opens you up to all kinds of badguy tricks, like denial-of-service attacks and attempts to steal your users' data.</p> <p>Second, you'll have to burden your client applications with MySQL access protocol software. This is bloated compared to using HTTP to post a "register" request.</p> <p>Third, HTTP is super-lightweight compared to MySQL. Your clients send a simple request and wait for a simple response. Web servers running your app (apache, nginx, IIS, etc) are good at queueing the requests if there are a lot of them.</p> <p>Fourth, if you do this in a web app you can update the web app if you change your database or business rules. If you put the MySQL queries in your client apps things get much less flexible.</p> <p>Good luck. Be careful out there on the internet.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload