The mysql-apt-config blue menu loops forever over SSH
The problem
Installing the mysql-apt-config .deb opens an interactive blue (ncurses/debconf) menu to pick the MySQL version. Over SSH it keeps bouncing from one screen to the next and back, and you can never get it to actually apply your choice and exit.
What you'll see
- A blue full-screen menu: 'MySQL Server & Cluster', 'MySQL Tools & Connectors', 'Ok'
- Selecting a line opens a sub-menu; the sub-menu returns you to the same main menu
- Pressing Ok appears to do nothing / re-shows the menu
- You never reach a shell prompt again
The way most sites tell you — and why it fails
✗ What the copied tutorials say
Every guide says 'download mysql-apt-config, run dpkg -i, and choose your version in the menu.' That menu is the whole problem on a headless/SSH box.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.39-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.39-1_all.deb # opens the looping menu Why it fails: The version is chosen on a SECOND screen reached by pressing Enter on the first line (not Ok). Guides never say this, so people press Ok (which exits with the default) or get stuck cycling between the two screens. The package is also pointless -- all it does is drop a repo file and a key you can write yourself in two lines.
The correct way — we tested this
✓ Do this instead
Skip the .deb and its menu entirely. Add the repository by hand -- no interactive prompt ever appears.
echo 'deb [trusted=yes] http://repo.mysql.com/apt/ubuntu/ noble mysql-8.4-lts mysql-tools' | sudo tee /etc/apt/sources.list.d/mysql.list
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt install -y mysql-community-server Why this works
The repo is just one apt source line plus trust. Writing it directly removes the debconf menu completely, and DEBIAN_FRONTEND=noninteractive guarantees no other package prompts can stall the install. ([trusted=yes] also sidesteps MySQL's currently-expired signing key.) If you are truly stuck inside the menu right now: close the entire SSH/PuTTY window to kill the hung process, reconnect, and use the manual lines above.