My very simple TMUX helper script.
GitHub: https://github.com/64board/Bash/blob/main/tux.sh
My digital hodgepodge
If you run MySQL on Ubuntu Server 22.04, you already know the problem:
Ubuntu is very helpful about updates — sometimes too helpful.
An unattended MySQL upgrade can:
Restart the service
Break replication
Introduce subtle behavior changes
Ruin a carefully controlled production setup
This post shows how to stop MySQL from auto-updating and how to prove in advance that no update will sneak in.
No hand-waving. Real commands. Verifiable results.
Ubuntu uses a background service called unattended-upgrades to silently install updates. That includes MySQL unless you explicitly stop it.
You have three levels of control. Most servers should use Level 1 or 2.
apt-mark hold (Recommended)This is the simplest and safest approach.
sudo apt-mark hold mysql-server mysql-client mysql-common
What this does:
APT will refuse to upgrade these packages
Even if someone runs apt upgrade
Even if unattended-upgrades runs overnight
Verify the hold:
apt-mark showhold
Expected output:
mysql-server
mysql-client
mysql-common
To undo later:
sudo apt-mark unhold mysql-server mysql-client mysql-common
If you want security updates for the OS but not for MySQL, blacklist it from unattended upgrades.
Edit the config:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Find:
Unattended-Upgrade::Package-Blacklist {
};
Add:
Unattended-Upgrade::Package-Blacklist {
"mysql-server";
"mysql-client";
"mysql-common";
};
Restart the service:
sudo systemctl restart unattended-upgrades
This keeps the system secure while freezing MySQL.
This is a blunt instrument.
sudo systemctl disable --now unattended-upgrades
Or:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Set:
APT::Periodic::Unattended-Upgrade "0";
Only do this if you commit to manual patching.
This is the part most guides skip. Don’t trust configuration — verify behavior.
apt list --upgradable | grep -i mysql
Correct result: no output
If you see MySQL packages here, they are not frozen.
sudo apt -s upgrade | grep -i mysql
The -s flag means simulate only.
Nothing will be installed.
Correct result: no MySQL packages listed.
This tests the exact logic Ubuntu uses overnight.
sudo unattended-upgrades --dry-run --debug | grep -i mysql
If MySQL is held or blacklisted, it will be skipped.
apt-mark showhold
If MySQL isn’t listed, it’s not protected.
If you’re using apt pinning:
apt-cache policy mysql-server
You should see a pin priority preventing upgrades.
Run these three commands:
apt list --upgradable | grep -i mysql apt -s upgrade | grep -i mysql unattended-upgrades --dry-run --debug | grep -i mysql
If all three return empty, MySQL will not update. Period.
Production server? Use apt-mark hold
Security-conscious server? Use unattended-upgrade blacklist
Never rely on assumptions — always simulate
Ubuntu does exactly what you tell it to do.
The problem is most admins never tell it not to touch MySQL.
I failed again reaching my 1800 miles goal, 150 miles monthly. August was my weakest month.
Let's see on 2026.
I have written so many SQL queries during my life as a software developer that I lost count.
SQL-Queries is a GitHub repository that I'm going to use for publishing those queries.
This is a work in progress.
I uploaded some Java code that I wrote earlier this year that creates a .XLSX Excel file from PDF file.
GitHub code: https://github.com/64board/account_summary_u
VBA code to create a XLSX file from a CSV file. It also shows how to auto fit all columns, apply an auto filter to all columns and freeze the first row.
GitHub code: https://github.com/64board/ExcelVBA/blob/master/CreateXLSX.bas
Another interesting idea is to control running code when the workbook is opened using a flag file.
GitHub code: https://github.com/64board/ExcelVBA/blob/master/ThisWorkbook.cls