Q.I'm using MySQL 5 under Red Hat Enterprise Linux 5. How do I change default mysql server port (tcp port 3306) under Linux or UNIX operating systems?
A. MySQL server and client uses a file called my.cnf. You need to open /etc/my.cnf (Global mysqld configuration file) to specify new port.
MySQL Change Default Port
Open /etc/my.cnf file:
# vi /etc/my.cnf
Set new port 5123:
port=5123
Here is is my sample /etc/my.cnf file:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=5123
old_passwords=1
bind = 10.10.29.66
key_buffer = 500M
table_cache = 4000
sort_buffer_size = 3M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
max_connections = 400
query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 100M
max_allowed_packet = 1M
thread_cache_size = 8
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 4
local-infile=0
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqldump]
quick
max_allowed_packet = 16MSave and close the file. Restart mysqld:
# service mysqld restart
Please note that once port changed, you need to update all your php, perl, python scripts including iptables scripts.
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -



{ 7 comments… read them below or add one }
It would’ve been better if it had been a post on how to setup a different version of MySQL running on a different port.
For example, I have MySQL 5.0.51b on mu Ubuntu box in the default location by sudo apt-get mysql.
I now want to install MySQL 6 for testing purposes – yet at the same time for all users of my machine running on say, 3307.
This way I could give the option to users to use both the stable and a dev version.
Hi,
I wish to set it to listen on port 80, or 443 but it wont start? Nothing is listening on those ports now. What could be wrong? I have heard it can have to do with services settings? Any ideas?
Best regards – Jon
Did you restarted mysql service?
Well,
It will not start with the settings I have now
port = 443.
Any advice?
/jon
443 port is also used by HTTPS (secure web server). So try other port.
@Jon
To use this port you need root privileges.
try:
sudo /etc/init.d/mysql restart
I have port = 3306 under [client] and [mysqld]
what’s the difference? which should I change?