I have three node Percona XtraDB cluster 5.7 ( one node as arbitrator ). I needed to stop the server for some maintenance and it is just not stopping. I have trying all the following commands
systemctl stop mysql
systemctl stop mysqld
systemctl stop firstname.lastname@example.org
systemctl stop mysql@bootstrap
Interesting it has been some time now that I am working with this cluster and it has never happened before. The same commands have worked in the past without any issues. Also it is not working on any data node in the cluster. I try to stop the server and it just gives me back the prompt and there is nothing in the log also as if nothing happened.
systemctl stop mysql should do the trick. There is a 10s waiting period within PXC before the actual shutdown begins.
You could also try
mysqladmin shutdown on each node. The galera arbitrator should stop automatically after stopping the other proper MySQL nodes. If not, you can just
kill PID on that one to shut it down.
Yes if the stop command is successful it show up a message that stop sequence is going to start but in this case it just does not log anything in the log file.
Can I also try to use kill -TERM $mysql_pid ? as this seems to be the way to stop the mysql server from the /usr/bin/mysql-systemd. I wont want to do it if your advice “mysqladmin shutdown” works but just want to keep my options ready before I go into maintenance window.
Also if the startup script fails with normal way ( systemctl start mysql ) how I should start the server ? . ? also if it is first node to start as bootstrap.
mysqladmin shutdown ==
kill -TERM The tool does the same thing, simply sends a signal to the process. This is also what the systemctl script does.
If the systemctl script fails to start, then you have some other issue with your installation that isn’t allowing systemd to monitor/control MySQL. This was my initial suspicion when you said that stopping didn’t work. It sounds like your setup is b0rked since the systemctl scripts cannot manage the MySQL process.
What’s in your MySQL error log when you do ‘stop mysql’?
It shows nothing… i just get my prompt back. I have checked both data and log folders and no other log files created.
Then that’s some sort of failure with your systemd setup. Systemd should be reading the PID file of MySQL and sending the proper kill signal to terminate MySQL.
mysqldmin -u root -p shutdown , did the job for me. It stopped the node as it should and then I was able to start the node using “systemctcl start mysql”.
Really thanks for the help.