Difference between revisions of "MySQL"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
Line 95: Line 95:
On systems with '''mySQL''' in the repositories:
On systems with '''mySQL''' in the repositories:
* <code>sudo apt install mysql-client</code>
* <code>sudo apt install mysql-client</code>
 
Either way, the command to access your database is:
* <code>mysql -h '''DatabaseServer''' -u '''USERNAME''' -p</code> <code></code>
[[Category:ServerBuilding]]
[[Category:ServerBuilding]]
[[Category:WebServers]]
[[Category:WebServers]]
[[Category:DBServers]]
[[Category:DBServers]]

Revision as of 00:30, 28 January 2022

Proven on:
Logo Debian.png
11 (bullseye)

As always...

Start with:

  • sudo apt update
  • sudo apt upgrade

MySQL on Debian

Debian does not have MySQL in its repositories... :(

We can solve this!

Check the MySQL download page for current version...

If you're happy with 8.0.28, go ahead, download & install.

(Do note: apt update may throw errors if you don't use the latest version.)

  • wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
  • sudo apt install ./mysql-apt-config_0.8.22-1_all.deb

It may ask about distro version. On LMDE 4 or SparkyLinux 5, Select "debian buster" (It won't ask on Debian...)

Select "Ok"

Select "Ok"

Select "Ok"

Some versions will also ask about Configuring mysql-community-server

  • Pick a good root password...
  • I tend to select Use Legacy Authentication Method because Use Strong Password Encryption is annoying as hell. (Your choice here...)

Update & Upgrade everything now...

  • sudo apt update
  • sudo apt upgrade

Now you can go ahead & pretend they haven't dropped MySQL from the Debian repos...

  • sudo apt install mysql-server mysql-client

Now Do A Backup!

Configure MySQL

  • sudo mysql_secure_installation
    • Would you like to setup VALIDATE PASSWORD component?
      • I select No (because I'd rather manage my own password policies, thanks...)
    • root password
      • Please set the password for root here.
        • Pick a good root password...
    • or... (depends on install...)
      • Using existing password for root.
        • Say No (Which actually means yes... The question being asked is "Change the password for root?")
    • Remove anonymous users?
      • Duh... Yes
    • Disallow root login remotely?
      • Your choice, but I tend to say No.
    • Remove test database and access to it?
      • Duh... Yes again.
    • Reload privilege tables now?
      • Yes
  • (Extra Instructions if you've never configured MySQL before)

Now Do A Backup!

Set up at least one user in mysql

  • sudo mysql -u root -p
CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
EXIT;

(Hint: This'd be a good time to create yourself as that user with your non-admin password of choice...)

Now Do A Backup!

Notes about accessing the database remotely

If this is a Database server, you'll be doing the user setup again but replacing localhost with MachineName (where MachineName is the name of any remote machines that need access to your databases).

On the remote machine(s), it'll be handy to install mysql-client (at minimum, for testing...).

On Debian:

  • sudo apt install default-mysql-client

(which gets you the MariaDB version, but it works just fine.

On systems with mySQL in the repositories:

  • sudo apt install mysql-client

Either way, the command to access your database is:

  • mysql -h DatabaseServer -u USERNAME -p