Mysql uses the mysqld_multi tool to launch multiple instances
First give the contents of the experimental environment / etc/my.cnf file.
Modify the content as follows:
Added the [mysqld_multi] tag and two more database tags [mysqld3307] and [mysqld3308]
Start the method after the configuration is completed, for example:
Mysqld_multi-defaults-file=/etc/my.cnf start 3307
The connection method is, for example:
Mysql-S / tmp/mysql3307.sock
The shutdown is:
Create a test user in the database
Mysql > show grants for root@localhost
+-- +
| | Grants for root@localhost |
+-- +
| | GRANT ALL PRIVILEGES ON *. * TO 'root'@'localhost' WITH GRANT OPTION |
| | GRANT PROXY ON'@''TO 'root'@'localhost' WITH GRANT OPTION |
+-- +
2 rows in set (0.00 sec)
Mysql > grant shutdown on *. * to 'test'@'localhost' identified by' test' with grant option
Query OK, 0 rows affected (0.00 sec)
Then use the root user to execute:
Mysqld_mulit-defaults-file=/etc/my.cnf stop 3307
View the error log:
/ usr/local/mysql/share/mysqld_multi.log
[root@localhost etc] # more / etc/my.cnf
# Example MySQL config file for large systems.
#
# This is for a large system with memory = 512m where the system runs mainly
# MySQL.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
# password = your_password
Port = 3306
Socket = / tmp/mysql.sock
# Here follows entries for some specific programs
[mysqld_multi]
Mysqld=/usr/local/mysql/bin/mysqld_safe
Mysqladmin=/usr/local/mysql/bin/mysqladmin
User=test
Password=test
# The MySQL server
[mysqld3306]
Port = 3306
Socket = / tmp/mysql3306.sock
Pid-file = / tmp/mysql3306.pid
Skip-external-locking
Key_buffer_size = 256m
Max_allowed_packet = 1m
Table_open_cache = 256
Sort_buffer_size = 1m
Read_buffer_size = 1m
Read_rnd_buffer_size = 4m
Myisam_sort_buffer_size = 64m
Thread_cache_size = 8
Query_cache_size= 16M
Thread_concurrency = 8
Basedir=/usr/local/mysql
Datadir=/var/mysql/data
Log-error = / usr/local/mysql/mysql_error.log
Default-storage-engine=MyISAM
User = mysql
[mysqld3307]
Port = 3307
Socket = / tmp/mysql3307.sock
Pid-file = / tmp/mysql3307.pid
Skip-external-locking
Key_buffer_size = 256m
Max_allowed_packet = 1m
Table_open_cache = 256
Sort_buffer_size = 1m
Read_buffer_size = 1m
Read_rnd_buffer_size = 4m
Myisam_sort_buffer_size = 64m
Thread_cache_size = 8
Query_cache_size= 16M
Thread_concurrency = 8
Basedir=/usr/local/mysql
Datadir=/var/mysql/data2
Log-error = / usr/local/mysql/mysql_error7.log
Default-storage-engine=MyISAM
User = mysql
[mysqld3308]
Port = 3308
Socket = / tmp/mysql3308.sock
Pid-file = / tmp/mysql3308.pid
Skip-external-locking
Key_buffer_size = 256m
Max_allowed_packet = 1m
Table_open_cache = 256
Sort_buffer_size = 1m
Read_buffer_size = 1m
Read_rnd_buffer_size = 4m
Myisam_sort_buffer_size = 64m
Thread_cache_size = 8
Query_cache_size= 16M
Thread_concurrency = 8
Basedir=/usr/local/mysql
Datadir=/var/mysql/data3
Log-error = / usr/local/mysql/mysql_error8.log
Default-storage-engine=MyISAM
User = mysql
# Don't listen on a TCP/IP port at all. This can be a security enhancement
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
# skip-networking
# Replication Master Server (default)
# binary logging is required for replication
Log-bin=mysql-bin
# binary logging format-mixed recommended
Binlog_format=mixed
# required unique id between 1 and 2 ^ 32-1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
Server-id = 1
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods:
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual)-
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=
# MASTER_USER=, MASTER_PASSWORD=
#
# where you replace, by quoted strings and
# by the master's port number (3306 by default)
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306
# MASTER_USER='joe', MASTER_PASSWORD='secret'
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables' values below will be ignored and
# overridden by the content of the master.info file, unless you shutdown
# the slave server, delete master.info and restart the slaver server.
# For that reason, you may want to leave the lines below untouched
# (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2 ^ 32-1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
# server-id = 2
#
# The replication master for this slave-required
# master-host =
#
# The username the slave will use for authentication when connecting
# to the master-required
# master-user =
#
# The password the slave will authenticate with when connecting to
# the master-required
# master-password =
#
# The port the master is listening on.
# optional-defaults to 3306
# master-port =
#
# binary logging-not required for slaves, but recommended
# log-bin=mysql-bin
# Uncomment the following if you are using InnoDB tables
# innodb_data_home_dir = / var/mysql/data
# innodb_data_file_path = ibdata1:10M:autoextend
# innodb_log_group_home_dir = / var/mysql/data
# You can set.. _ buffer_pool_size up to 50-80%
# of RAM but beware of setting memory usage too high
# innodb_buffer_pool_size = 256m
# innodb_additional_mem_pool_size = 20m
# Set.. _ log_file_size to 25% of buffer pool size
# innodb_log_file_size = 64m
# innodb_log_buffer_size = 8m
# innodb_flush_log_at_trx_commit = 1
# innodb_lock_wait_timeout = 50
[mysqldump]
Quick
Max_allowed_packet = 16m
[mysql]
No-auto-rehash
# Remove the next comment character if you are not familiar with SQL
# safe-updates
[myisamchk]
Key_buffer_size = 128m
Sort_buffer_size = 128m
Read_buffer = 2m
Write_buffer = 2m
[mysqlhotcopy]
Interactive-timeout