Skip to content

Commit 65dc32c

Browse files
committed
feat: enhance MySQL installation and cleanup process in scripts
1 parent 701c99c commit 65dc32c

File tree

2 files changed

+48
-12
lines changed

2 files changed

+48
-12
lines changed

setup/system/fix-mysql-frozen.sh

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,15 @@ case "$choice" in
3737
systemctl stop mysql 2>/dev/null || true
3838
systemctl stop mariadb 2>/dev/null || true
3939

40+
echo "➜ Fixing broken packages..."
41+
dpkg --configure -a 2>/dev/null || true
42+
apt-get install -f -y 2>/dev/null || true
43+
4044
echo "➜ Removing packages..."
41-
apt-get remove --purge -y mariadb-server mariadb-client mariadb-common \
45+
apt-get remove --purge -y mariadb-server* mariadb-client* mariadb-common* \
46+
mysql-server* mysql-client* mysql-common* 2>/dev/null || true
47+
48+
dpkg --purge mariadb-server mariadb-client mariadb-common \
4249
mysql-server mysql-client mysql-common 2>/dev/null || true
4350

4451
echo "➜ Cleaning up files..."
@@ -48,14 +55,15 @@ case "$choice" in
4855

4956
echo "➜ Removing auto-installed packages..."
5057
apt-get autoremove -y
58+
apt-get autoclean
5159

5260
echo ""
5361
echo "✅ Cleanup complete!"
5462
echo ""
5563
echo "📌 Next steps:"
5664
echo " 1. Run: apt-get update"
57-
echo " 2. Install MySQL: apt-get install -y mysql-server"
58-
echo " 3. Or run Zabbix installation again"
65+
echo " 2. Install MySQL: DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server"
66+
echo " 3. Or run Zabbix installation again: bash install.sh zabbix_server"
5967
;;
6068
2)
6169
echo ""

setup/system/zabbix.sh

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,50 @@ install_zabbix_server() {
114114
# Remove frozen file if exists
115115
rm -f /etc/mysql/FROZEN
116116

117-
# Purge old installations
118-
apt-get remove --purge -y mariadb-server mariadb-client mysql-server mysql-client 2>/dev/null || true
117+
# Fix broken packages first
118+
print_info "Fixing broken packages..."
119+
dpkg --configure -a 2>/dev/null || true
120+
apt-get install -f -y 2>/dev/null || true
121+
122+
# Purge old installations completely
123+
print_info "Purging old database packages..."
124+
apt-get remove --purge -y mariadb-server* mariadb-client* mariadb-common* \
125+
mysql-server* mysql-client* mysql-common* 2>/dev/null || true
126+
127+
# Clean up residual config
128+
dpkg --purge mariadb-server mariadb-client mariadb-common \
129+
mysql-server mysql-client mysql-common 2>/dev/null || true
130+
119131
apt-get autoremove -y
132+
apt-get autoclean
120133

121-
# Clean up config files
134+
# Clean up config files and data
135+
print_info "Cleaning up configuration and data..."
122136
rm -rf /etc/mysql
123137
rm -rf /var/lib/mysql
138+
rm -rf /var/log/mysql
139+
rm -rf /etc/mysql/FROZEN
124140

125-
print_success "Old database removed"
141+
print_success "Old database removed completely"
126142

127-
# Install MySQL
143+
# Update package lists
144+
apt-get update -qq
145+
146+
# Install MySQL fresh
128147
print_info "Installing MySQL server..."
129-
apt-get install -y mysql-server
130-
systemctl start mysql
131-
systemctl enable mysql
132-
print_success "MySQL installed and started"
148+
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
149+
150+
# Verify installation
151+
if dpkg -l | grep -q "^ii.*mysql-server"; then
152+
systemctl start mysql
153+
systemctl enable mysql
154+
print_success "MySQL installed and started"
155+
else
156+
print_error "MySQL installation failed, trying to fix..."
157+
apt-get install -f -y
158+
dpkg --configure -a
159+
systemctl start mysql 2>/dev/null || true
160+
fi
133161
;;
134162
3)
135163
print_error "Installation cancelled"

0 commit comments

Comments
 (0)