@@ -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