MySQL: Change Default Port Under Linux / UNIX

by on August 26, 2008 · 7 comments· last updated at August 26, 2008

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



You should follow me on twitter here or grab rss feed to keep track of new changes.

Featured Articles:

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

Reply

2 Jon May 28, 2009 at 1:43 pm

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

Reply

3 Vivek Gite May 28, 2009 at 1:49 pm

Did you restarted mysql service?

Reply

4 Jon May 28, 2009 at 1:53 pm

Well,

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

Any advice?

/jon

Reply

5 TryME February 21, 2011 at 1:47 pm

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

Reply

6 alduxx September 4, 2009 at 11:14 am

@Jon

To use this port you need root privileges.
try:

sudo /etc/init.d/mysql restart

Reply

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?

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <kbd> <blockquote> <pre> <a href="" title="">

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

Previous Faq:

Next Faq: