MySQL: Change Default Port Under Linux / UNIX

by on August 26, 2008 · 10 comments· LAST UPDATED August 26, 2008

in , ,

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:
Here is is my sample /etc/my.cnf file:

bind =
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
max_allowed_packet = 16M

Save 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.

Tweet itFacebook itG+ itDownload PDF versionFound an error/typo on this page?

{ 10 comments… read them below or add one }

1 Anjanesh August 29, 2008 at 4:48 pm

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.


2 Jon May 28, 2009 at 1:43 pm


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


3 nixCraft May 28, 2009 at 1:49 pm

Did you restarted mysql service?


4 Jon May 28, 2009 at 1:53 pm


It will not start with the settings I have now
port = 443.

Any advice?



5 TryME February 21, 2011 at 1:47 pm

443 port is also used by HTTPS (secure web server). So try other port.


6 alduxx September 4, 2009 at 11:14 am


To use this port you need root privileges.

sudo /etc/init.d/mysql restart


7 brrrr November 5, 2011 at 9:39 pm

I have port = 3306 under [client] and [mysqld]

what’s the difference? which should I change?


8 xinzhong July 27, 2013 at 5:01 pm

Hi I have a problem for MySQL.

I have MySQL (5.6, 64bit) installed in windows 7, also have mysql installed in virtualbox Ubuntu (v12). Without Windows MySQL installed, I can access Ubuntu MySQL locally or remotely by MySQL workbench. After Windows MySQl installed ( not started), I cannot connect to Ubuntu MySQL locally and remotely, even with different port numbers ( 3306 for windows and 5123 for Ubuntu).

Any helps will be appreciated.



9 Ian December 9, 2013 at 11:55 pm

Change [mysqld]


10 himmat February 22, 2014 at 6:11 am

i was working on wamp server so the port for mysql 3306 is occupied by Wamp…i want nort to uninstall this…how can i resolve this.


Leave a Comment

Tagged as: , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: