There are circumstances when you might want to run multiple servers on the same machine. For example, you might want to test a new MySQL release while leaving your existing production setup undisturbed. Or you might be an Internet service provider that wants to provide independent MySQL installations for different customers.
If you want to run multiple servers, the easiest way is to compile the servers with different TCP/IP ports and socket files so they are not both listening to the same TCP/IP port or socket file.
Assume an existing server is configured for the default port number and
socket file. Then configure the new server with a
shell> ./configure --with-tcp-port=port_number \ --with-unix-socket=file_name \ --prefix=/usr/local/mysql-3.22.9
You can check the socket and port used by any currently-executing MySQL server with this command:
shell> mysqladmin -h hostname --port=port_number variables
If you have a MySQL server running on the port you used, you will get a list of some of the most important configurable variables in MySQL, including the socket name.
You should also edit the initialization script for your machine (probably
`mysql.server') to start and kill multiple
You don't have to recompile a new MySQL server just to start with
a different port and socket. You can change the port and socket to be used
by specifying them at runtime as options to
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
If you run the new server on the same database directory as another server
with logging enabled, you should also specify the name of the log files
Warning: Normally you should never have two servers that update data in the same database! If your OS doesn't support fault-free system locking, this may lead to unpleasant surprises!
If you want to use another database directory for the second server, you
can use the
When you want to connect to a MySQL server that is running with a different port than the port that is compiled into your client, you can use one of the following methods: