๐ฏ Objective
Learn how to identify, diagnose, and fix common MariaDB issues such as service failures, connection problems, authentication errors, and database access issues.
๐ What is MariaDB Troubleshooting?
MariaDB troubleshooting means finding out why the MariaDB database server is not working properly and fixing the issue.
Common problems include:
๐ Common MariaDB Troubleshooting Commands
1. Check MariaDB service status
sudo systemctl status mariadbOn some systems:
sudo systemctl status mysqlPurpose:
2. Start MariaDB service
sudo systemctl start mariadb3. Stop MariaDB service
sudo systemctl stop mariadb4. Restart MariaDB service
sudo systemctl restart mariadbPurpose:
5. Enable MariaDB at boot
sudo systemctl enable mariadb6. Check if MariaDB process is running
ps -ef | grep mariaOr:
ps -ef | grep mysqlPurpose:
7. Check listening port
sudo ss -tulnp | grep 3306Or:
sudo netstat -tulnp | grep 3306Purpose:
8. Login to MariaDB
mysql -u root -pPurpose:
9. Test database connection manually
mysql -u root -p -h localhostOr with port:
mysql -u root -p -h 127.0.0.1 -P 3306Purpose:
10. Check MariaDB logs
sudo journalctl -u mariadbOr:
sudo tail -f /var/log/mariadb/mariadb.logSometimes:
sudo tail -f /var/log/mysql/error.logPurpose:
11. Check configuration file
sudo cat /etc/my.cnfOr:
sudo cat /etc/mysql/my.cnfPurpose:
12. Check disk space
df -hPurpose:
13. Check database directory permissions
sudo ls -ld /var/lib/mysqlPurpose:
14. Repair databases
mysqlcheck -u root -p --auto-repair --all-databasesPurpose:
โ Common MariaDB Problems and Fixes
1. MariaDB service failed to start
Check:
sudo systemctl status mariadb
sudo journalctl -u mariadbPossible causes:
2. Access denied for user
Example error:
ERROR 1045 (28000): Access denied for user 'root'@'localhost'Fix:
Example:
sudo mysqlThen:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
FLUSH PRIVILEGES;3. Can't connect through socket
Example error:
Can't connect to local MariaDB server through socketPossible causes:
Check:
sudo systemctl status mariadb
sudo find / -name "*.sock" 2>/dev/null4. Port 3306 already in use
Check:
sudo ss -tulnp | grep 3306Fix:
5. Database is read-only or not writable
Check:
df -h
sudo ls -ld /var/lib/mysqlPossible causes:
Fix ownership if needed:
sudo chown -R mysql:mysql /var/lib/mysql๐งช Useful SQL Commands for Troubleshooting
Show databases
SHOW DATABASES;Show users
SELECT User, Host FROM mysql.user;Check current user
SELECT USER(), CURRENT_USER();Show grants
SHOW GRANTS FOR 'root'@'localhost';Show MariaDB version
SELECT VERSION();๐ Basic Troubleshooting Workflow
Step 1: Check service
sudo systemctl status mariadbStep 2: Check logs
sudo journalctl -u mariadbStep 3: Test login
mysql -u root -pStep 4: Check port
sudo ss -tulnp | grep 3306Step 5: Check config
sudo cat /etc/my.cnfStep 6: Check disk and permissions
df -h
sudo ls -ld /var/lib/mysql๐ Example Troubleshooting Scenario
Problem:
MariaDB is not starting.
Diagnose:
sudo systemctl status mariadb
sudo journalctl -u mariadbFound issue:
Port 3306 already in use.
Verify:
sudo ss -tulnp | grep 3306Fix:
Then restart:
sudo systemctl restart mariadb