MySQL的多实例介绍及配置是怎样的

  介绍

这篇文章将为大家详细讲解有关MySQL的多实例介绍及配置是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1。什么是MySQL多实例

,,,,简单来说,MySQL多实例就是在一台服务器上同时开启多个不同服务端口,同时运行多个MySQL服务进程,这些服务进程通过不同的套接字监听不同的服务器端口来提供服务。这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序(也可以相同)和数据文件。在提供服务时,多实例MySQL在逻辑上看起来是各自独立的,它根据配置文件的对应设定值,获得服务器相应数量的硬件资源。

,,,,多实例的好处在于它能有效利用服务器的资源,节约服务器资源,弊端会存在资源的相互抢占的问题。当某个数据库实例并发很高或有SQL慢查询时,整个实例会消耗大量的系统CPU、磁盘I/O等资源,导致服务器上的其他数据库实例提供服务的质量一起下降。不同实例获取的资源是相对独立的,无法像虚拟化一样完全隔离。

<强> 2。配置MySQL多实例

,,,, MySQL的多实例配置可以是单一文件,单一启动程序的部署方案,但是不推荐,风险太高了。这里部署的是多配置文件,多启动的部署方案。在前面,我们已经搭建了MySQL的服务,也就是存在了一个默认的实例,端口为3306。在这里,我们多增加一个实例,端口为3307。

 MySQL的多实例介绍及配置是怎样的

,,,,(1)创建多实例的数据文件目录,目录自己确定就行

mkdir  -p /数据/3307/数据

,,,,(2)创建MySQL多实例的配置文件,vim,/数据/3307/my . cnf中所做内容如下

[客户]   端口=,3307   套接字=,/数据/3307/mysql.sock      (mysql)   no-auto-rehash      (mysqld)   用户=mysql   端口=,3307   套接字=,/数据/3307/mysql.sock   basedir=,/usr/地方/mysql   datadir=,/数据/3307/数据   open_files_limit=1024   只读   back_log=600   max_connections=800   max_connect_errors=3000   # table_cache=614   外部锁=FALSE   max_allowed_packet=8米   sort_buffer_size=1米   join_buffer_size=1米   thread_cache_size=100   thread_concurrency=2   query_cache_size=2 m   query_cache_limit=1米   query_cache_min_res_unit=2 k   # default_table_type=InnoDB   thread_stack=192 k   # transaction_isolation=读取提交   tmp_table_size=2 m   max_heap_table_size=2 m   long_query_time=1,   pid文件=,/数据/3307/mysql.pid   relay-log=,/数据/3307/relay-bin   relay-log-info-file =/数据/3307/relay-log.info   binlog_cache_size=1米   max_binlog_cache_size=1米   max_binlog_size=2 m   key_buffer_size=16米   read_rnd_buffer_size=1米   bulk_insert_buffer_size=1米   lower_case_table_names=1   skip-name-resolve   slave-skip-errors=1032、1062   replicate-ignore-db=mysql      服务器id=, 3,,,,,,,, #不同实例的服务器id不一样的,3306端口的server_id我设置为52了,这里不能是52岁      # innodb_additional_mem_pool_size=4 m   通过innodb_buffer_pool_size=32米   innodb_data_file_path,=, ibdata1:128M: autoextend   innodb_file_io_threads=4   # innodb_threads_concurrency=8   innodb_flush_log_at_trx_commit=2   innodb_log_buffer_size=2 m   innodb_log_file_size=4 m   innodb_log_files_in_group=, 3,   innodb_max_dirty_pages_pct=90   innodb_lock_wait_timeout=120   innodb_file_per_table=0   (,mysqldump)   快速   max_allowed_packet=2 m      (mysql_safe)   日志错误=/数据/3307/mysql_pcm3307.err   pid文件=/数据/3307/mysqld.pid

,,,,(3)创建MySQL多实例的启动文件,vim/数据/3307/MySQL,内容如下

# !/bin/bash      #初始化   端口=3307   mysql_user=皉oot"   mysql_pwd=皃cm123456"   CmdPath=?usr/地方/mysql/bin"   mysql_sock=?数据/${}港/mysql.sock"      # startup 函数   function_start_mysql () {   if [!大敌;-e “mysql_sock"美元;,);   printf “Starting  Mysql…\ n"/bin/sh $ {CmdPath}/mysqld_safe ——defaults-file=/数据/${港口}/my.cnf  2祝辞,1,在/dev/null ,,,,, #启动命令   其他的   printf “Mysql  is 运行…\ n"   退出   fi   }      # stop 函数   function_stop_mysql () {   if [!大敌;-e “mysql_sock"美元;,);   printf “Mysql  is 停止…\ n"   exit    其他的   printf “Stoping  Mysql…\ n"   $ {CmdPath}/mysqladmin  -u  $ {mysql_user}, - p $ {mysql_pwd}, -S /数据/${港口}/mysql.sock  shutdown ,,, #停止命令   fi   }      # restart 函数   function_restart_mysql () {   printf “Restart  Mysql…\ n"   function_stop_mysql   sleep  2   function_start_mysql   }      case  1美元,   开始)   function_start_mysql   ;;   停止)   function_stop_mysql   ;;   重启)   function_restart_mysql   ;;   *)   printf “用法:/数据/${港口}/mysql.sh {启动|停止|重启}\ n"   esac

MySQL的多实例介绍及配置是怎样的