单机服务器已经安装好二进制mysql5.6.20,然后开启mysql多实例
useradd mysql -s /sbin/nologin -M
mkdir /data/{3307,3308}/{data,log,binlog} -p
cd /data/3307
chown -R mysql.mysql ./{binlog,data,log}
cd /usr/local/mysql/scripts/
注意:初始化mysql时一定要把一开始的/etc/my.cnf文件移走或者是修改名称,然后在初始化多实例mysql。
./mysql_install_db --datadir=/data/3307/data --basedir=/usr/local/mysql --user=mysql --explicit_defaults_for_timestamp
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf &
ps -ef|grep mysql
mysqladmin -uroot password 'Zykj@558fug996' -S /data/3307/log/mysql.sock
mysql的配置文件:
[root@localhost log]# cat /data/3307/my.cnf
[client]
#password = your_password
port = 3307
socket = /data/3307/log/mysql.sock
[mysqld]
port = 3307
socket = /data/3307/log/mysql.sock
datadir = /data/3307/data/
long_query_time = 1
slow_query_log=1
slow-query-log-file = /data/3307/log/mysql-slow.log
log-error = /data/3307/log/error.log
pid-file = /data/3307/log/mysql3307.pid
character_set_server = utf8
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
query_cache_size = 0
tmp_table_size = 128M
secure_file_priv = /tmp
explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin= /data/3307/binlog/mysql-bin
binlog_format=row
server-id = 37307
expire_logs_days = 2
log_bin_trust_function_creators=1
default_storage_engine = InnoDB
innodb_data_home_dir = /data/3307/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/3307/data
innodb_buffer_pool_size = 3072M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
#prompt='\\u@\\h : \\d:\\D>'
no-auto-rehash
#prompt="\\u@\\h [\\d]>"
[myisamchk]
key_buffer_size = 16M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
开启mysql实例3308
cd /data/3308
chown -R mysql.mysql ./{binlog,data,log}
./mysql_install_db --datadir=/data/3307/data --basedir=/usr/local/mysql --user=mysql --explicit_defaults_for_timestamp
/usr/local/mysql5.6/bin/mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqladmin -uroot password 'Zykj@558fug996' -S /data/3307/log/mysql.sock
单机多实例mysql的启动脚本:
[root@localhost log]# cat /data/3307/mysql.sh
#!/bin/sh
################################################
################################################
#init
port=3307
mysql_user="root"
mysql_pwd="Zykj@558fug996"
CmdPath="/usr/local/mysql/bin"
mysql_sock="/data/$port/log/mysql.sock"
#startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
#stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/log/mysql.sock shutdown & > /dev/null
fi
}
#restart function
function_restart_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
else
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/log/mysql.sock shutdown & > /dev/null
fi
sleep 1
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql.sh {start|stop|restart}\n"
esac