Mysql多实例

1,多配置文件部署方案

2,单一配置文件部署方案

推荐使用多配置文件部署方案,因为单一配置文件配置方案耦合度太高容易产生故障。

多配制文件配置方案;

1,创建多实例的配置文件:

#mkdir /data/{3306.3307}/data �Cp
#cd /data/3306

my.cnf和上文提到的基本类似,只是修改了路径:

vim my.cnf
[client]
port            = 3306
socket          = /data/3306/mysql.sock
 
[mysql]
no-auto-rehash
 
[mysqld]
user   = mysql
port   = 3306
socket = /data/3306/mysql.sock
basedir = /application/mysql
datadir = /data/3306/data
open_files_limit    = 1024
back_log = 600
max_connections = 800
max_connect_errors = 3000
table_cache = 614
external-locking = FALSE
max_allowed_packet =8M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 100
thread_concurrency = 2
query_cache_size = 2M
query_cache_limit = 1M
query_cache_min_res_unit = 2k
#default_table_type = InnoDB
thread_stack = 192K
#transaction_isolation = READ-COMMITTED
tmp_table_size = 2M
max_heap_table_size = 2M
long_query_time = 1
#log_long_format
#log-error = /data/3306/error.log
#log-slow-queries = /data/3306/slow.log
pid-file = /data/3306/mysql.pid
log-bin = /data/3306/mysql-bin
relay-log = /data/3306/relay-bin
relay-log-info-file =/data/3306/relay-log.info
binlog_cache_size = 1M
max_binlog_cache_size = 1M
max_binlog_size = 2M
expire_logs_days = 7
key_buffer_size = 16M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
bulk_insert_buffer_size = 1M
#myisam_sort_buffer_size = 1M
#myisam_max_sort_file_size = 10G
#myisam_max_extra_sort_file_size = 10G
#myisam_repair_threads = 1
#myisam_recover
 
lower_case_table_names = 1
skip-name-resolve
slave-skip-errors = 1032,1062
replicate-ignore-db=mysql
 
server-id = 1
 
innodb_additional_mem_pool_size = 4M
innodb_buffer_pool_size = 32M
innodb_data_file_path =ibdata1:128M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 4M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
[mysqldump]
quick
max_allowed_packet = 2M
 
[mysqld_safe]
log-error=/data/3306/mysql_3306.err
pid-file=/data/3306/mysqld.pid

 

#vim /data/3306/mysql
#!/bin/sh
#init
port=3306
mysql_user="root"
mysql_pwd=""
CmdPath="/application/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
#startup function
function_start_mysql()
{
    if[ ! -e "$mysql_sock" ];then
     printf "Starting MySQL...\n"
     /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf2>&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}/mysql.sock shutdown
   fi
}
 
#restart function
function_restart_mysql()
{
   printf "Restarting MySQL...\n"
   function_stop_mysql
   sleep 2
   function_start_mysql
}
 
case $1 in
start)
   function_start_mysql
;;
stop)
   function_stop_mysql
;;
restart)
   function_restart_mysql
;;
*)
   printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

 

授权mysql用户和组管理多实例目录/data

#chown �CR mysql.mysql /data

授权mysql多实例服务所有启动文件可执行:

#find /data �Ctype f �Cname mysql |xargs chmod700

2,初始化mysql多实例数据库文件:

#/application/mysql/scripts/mysql_install_db  --user=mysql --datadir=/data/3306/data    --basedir=/application/mysql
#/application/mysql/scripts/mysql_install_db  --user=mysql --datadir=/data/3307/data    --basedir=/application/mysql

3,启动数据库:

#/data/{3306,3307}/mysql start

4,多实例数据库管理:

登录数据库:

#mysql �Curoot �Cpabc-123 �CS/data/3306/mysql.sock
#mysql �Curoot �Cpabc-123 �CS/data/3307/mysql.sock

重启数据库

#mysqladmin �Curoot �Cp’abc-123’ �CS/data/3306/mysql.sock shutdown
#mysqladmin �Curoot �Cp’abc-123’ �CS/data/3307/mysql.sock shutdown
#/data/{3306,3307}/mysql start

远程登录

#mysql -uroot �Cp’abc-123’ �Ch 10.0.0.2 �CP 3307

5,强制关闭数据库的方法

#killall mysqld
#pkill mysqld
#killall -9 mysqld

强制关闭数据库非常危险,可能造成无法启动问题。


你可能感兴趣的:(mysql)