Limited Time Offer!
For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!
This problem happens when MySQL or MariaDB, which comes with XAMPP, is unable to start because another instance of MySQL is already operating on your system. To resolve this, perform the troubleshooting procedures listed below.
Step 1: Identify the Running MySQL Service
The first step is to confirm if another instance of MySQL or MariaDB is running on your system.
For Windows:
Check running services:
- Press
Windows + R
, typeservices.msc
, and hit Enter. - Scroll down and look for MySQL or MariaDB. If you find it running, right-click on it and select Stop.
Check Task Manager:
- Press
Ctrl + Shift + Esc
to open Task Manager. - Look under the Processes tab for any MySQL or MariaDB processes. Select the process and click End Task.
For macOS or Linux:
Check running services:
- Open a terminal and run the following command:
sudo service mysql status
- If MySQL is running, stop it using:
sudo service mysql stop
Kill MySQL Process:
- To check if a MySQL process is running, use:
ps aux | grep mysql
- If you find any MySQL processes running, kill them with:
sudo kill -9 <PID>
Step 2: Change the MySQL Port in XAMPP
If you are running another MySQL service on port 3306
, you can change the default port in XAMPP to avoid conflicts.
- Stop the MySQL Service in XAMPP:
- Open the XAMPP Control Panel and stop MySQL if it is running.
- Change the MySQL Port in XAMPP:
- Go to the folder where XAMPP is installed, typically:
- Windows:
C:\xampp\
- Linux/macOS:
/opt/lampp/
- Windows:
- Open the file
my.ini
located in themysql/bin/
directory. - Look for the following line:
port=3306
- Change the port number (e.g.,
3307
or3308
). - Save and close the file.
- Go to the folder where XAMPP is installed, typically:
- Update the XAMPP Control Panel (Windows only):
- In the XAMPP Control Panel, click on Config next to MySQL, then select my.ini.
- Ensure the port number matches the one you just set.
Step 3: Reconfigure Other Applications Using MySQL
If you have applications connected to MySQL, like PHPMyAdmin or other services, you’ll need to update their configuration files to point to the new port.
- PHPMyAdmin Configuration:
- Navigate to the
phpMyAdmin
folder inside the XAMPP installation directory. - Open the
config.inc.php
file. - Locate the following line:
- Navigate to the
$cfg['Servers'][$i]['port'] = '3306';
- Change
3306
to the new port number you set (e.g.,3307
). - Save the file.
2. Reconfigure Other Applications:
- Any other applications connecting to MySQL will need to be updated with the new port.
Step 4: Restart XAMPP
Restart XAMPP:
- Go back to the XAMPP Control Panel and try starting MySQL again.
Verify the MySQL Status:
- Open your browser and go to
http://localhost/phpmyadmin
. Check if MySQL is now running without issues.
Step 5: Check for Port Conflicts Using Command Line (Optional)
If the issue persists, it may be helpful to check for port conflicts.
For Windows:
- Open Command Prompt and run:
netstat -aon | findstr 3306
- This will show you if another service is using port
3306
. If it is, take note of the PID.
2. Open Task Manager and go to the Processes tab. Look for the process associated with that PID and terminate it if it’s a conflicting service.
For macOS/Linux:
- In the terminal, use:
sudo lsof -i :3306
This will list processes using port 3306
. If a conflict exists, you can kill the process with:
sudo kill -9 <PID>
Step 6: Reinstall MySQL (As a Last Resort)
If you’ve followed all the steps and the problem persists, you may need to reinstall MySQL in XAMPP.
- Backup your databases:
- Go to
C:\xampp\mysql\data
(or the equivalent path on your system) and back up your databases by copying this folder.
- Go to
- Uninstall MySQL in XAMPP:
- In the XAMPP Control Panel, stop MySQL and click Uninstall.
- Reinstall MySQL:
- Reinstall MySQL from the XAMPP installer or download a fresh copy of XAMPP.
- Restore your databases:
- After reinstalling, copy your backup data folder back to
C:\xampp\mysql\data
.
- After reinstalling, copy your backup data folder back to
Conclusion
The “Another MySQL daemon is already running” problem in XAMPP should be fixed by doing these steps. Although port conflicts are the most frequent reason, the problem may typically be resolved by reinstalling MySQL or changing the port.