MySQL
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
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...
- Please set the password for root here.
- 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?")
- Using existing 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
- Would you like to setup VALIDATE PASSWORD component?
- (Extra Instructions if you've never configured MySQL before)
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...)
If this is a Database server, you'll be doing the same again but replacing localhost with MachineName (where MachineName is the name of any remote machines that need access to your databases).