To change the default port on which MySQL/MariaDB runs and update the firewall rules accordingly, you need to perform a series of steps that involve modifying the configuration file, restarting the service, and adjusting the firewall settings. In this answer, we will provide a detailed and comprehensive explanation of the process to help you understand and execute the necessary changes.
1. Begin by accessing the configuration file for MySQL/MariaDB. The location of this file may vary depending on your Linux distribution, but it is commonly found at "/etc/mysql/mysql.conf.d/mysqld.cnf" or "/etc/my.cnf". Use a text editor such as nano or vi to open the file with administrative privileges.
2. Once you have the configuration file open, search for the line that specifies the default port on which MySQL/MariaDB listens for incoming connections. By default, this line is usually "port = 3306". Change the port number to your desired value, ensuring that it is not already in use by another service. For example, you can set the port to 5432 using "port = 5432".
3. Save the changes to the configuration file and exit the text editor.
4. Next, you need to restart the MySQL/MariaDB service to apply the new port configuration. The command to restart the service may vary depending on your Linux distribution. Common commands include "systemctl restart mysql" or "service mysql restart". Execute the appropriate command with administrative privileges to restart the service.
5. After restarting the service, you need to update the firewall rules to allow incoming connections on the newly configured port. The specific commands for updating firewall rules depend on the firewall management tool you are using. Here, we will outline the steps for two commonly used tools: iptables and firewalld.
– If you are using iptables, execute the following command to allow incoming connections on the new port:
iptables -A INPUT -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
– If you are using firewalld, execute the following commands to allow incoming connections on the new port:
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
These commands add a rule to the firewall configuration, allowing TCP traffic on the specified port.
6. With the firewall rules updated, you have successfully changed the default port on which MySQL/MariaDB runs and ensured that the firewall allows incoming connections to the new port.
Remember to consider the implications of changing the default port. While it can enhance security by making it harder for attackers to find the service, it may also require additional configuration changes in applications and scripts that interact with MySQL/MariaDB.
To change the default port on which MySQL/MariaDB runs and update the firewall rules accordingly, you need to modify the configuration file, restart the service, and adjust the firewall settings. By following the steps outlined above, you can successfully accomplish this task.
Other recent questions and answers regarding Advanced sysadmin in Linux:
- Apart from the mentioned commands, what other options and functionalities does the journalctl command offer? How can you access the manual page for journalctl?
- What is the role of the systemd journal in storing logs in Linux systems?
- What are the advantages and disadvantages of using the journalctl command to access logs compared to traditional plain text log files?
- What is the significance of the "-fu" flag in the "journalctl -fu [unit]" command? How does it help in real-time log monitoring?
- What is the purpose of the "journalctl -u [unit]" command in Linux system administration? How does it differ from the default "journalctl" command?
- Why is it important to run the cleanup commands with sudo privileges?
- What command can you use to restrict the cleanup of logs based on their size using the systemd journalctl tool?
- How can you specify the time measure when using the "–vacuum-time" option with the journalctl command?
- What command can you use to delete logs older than a certain time period using the systemd journalctl tool?
- How can you check the size of the systemd journal on a Linux system?
View more questions and answers in Advanced sysadmin in Linux

