Skip to content

Instantly share code, notes, and snippets.

@ziadoz
Created June 8, 2020 16:45
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ziadoz/dc935a0167c68fc23b4f35ee8593125f to your computer and use it in GitHub Desktop.
Save ziadoz/dc935a0167c68fc23b4f35ee8593125f to your computer and use it in GitHub Desktop.
MySQL 8 Installation - Ubuntu 18.04 / 20.04 LTS
#!/usr/bin/env bash
password="root"
echo PURGE | sudo debconf-communicate mysql-community-server
sudo apt purge mysql-client mysql-server
sudo debconf-set-selections <<< "mysql-community-server mysql-community-server/root-pass password $password"
sudo debconf-set-selections <<< "mysql-community-server mysql-community-server/re-root-pass password $password"
sudo debconf-set-selections <<< "mysql-community-server mysql-server/default-auth-override select Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)"
sudo apt install -y dirmngr
sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 5072E1F5
echo "deb http://repo.mysql.com/apt/ubuntu $(lsb_release -sc) mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql80.list
sudo apt-get update
export DEBIAN_FRONTEND="noninteractive"
sudo apt-get install mysql-server
@ziadoz
Copy link
Author

ziadoz commented Jul 23, 2020

@jessuppi Glad you found this useful. Purging the debconf values isn't necessary, I just like to start from a clean slate when doing installations like this really.

@jessuppi
Copy link

Makes sense, @ziadoz. Better to make sure there's no conflicts. By the way, I had to add more sudos to make this work in our current script although I'm not sure why a similar variation previously worked without those on Ubuntu 18.04 + MySQL 5.7:

sudo echo "mysql-community-server mysql-community-server/root-pass password ${DB_PASSWORD_ROOT}" | sudo debconf-set-selections
sudo echo "mysql-community-server mysql-community-server/re-root-pass password ${DB_PASSWORD_ROOT}" | sudo debconf-set-selections
sudo echo "mysql-community-server mysql-server/default-auth-override select Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)" | sudo debconf-set-selections

...perhaps related to the new default authentication stuff in MySQL 8.0, I'm not sure.

@chorrell
Copy link

I would recommend using keyserver.ubuntu.com as the key server, e.g.,

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3A79BD29

From my experience with docker images, the pool.sks-keyservers.net server isn't very reliable. Also, the signing key is now 3A79BD29 since MySQL 8.0.28: https://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment