这篇文章将为大家详细讲解有关MySQL的多实例介绍及配置是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
<强> 1。什么是MySQL多实例强>
,,,,简单来说,MySQL多实例就是在一台服务器上同时开启多个不同服务端口,同时运行多个MySQL服务进程,这些服务进程通过不同的套接字监听不同的服务器端口来提供服务。这些MySQL多实例共用一套MySQL安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序(也可以相同)和数据文件。在提供服务时,多实例MySQL在逻辑上看起来是各自独立的,它根据配置文件的对应设定值,获得服务器相应数量的硬件资源。
,,,,多实例的好处在于它能有效利用服务器的资源,节约服务器资源,弊端会存在资源的相互抢占的问题。当某个数据库实例并发很高或有SQL慢查询时,整个实例会消耗大量的系统CPU、磁盘I/O等资源,导致服务器上的其他数据库实例提供服务的质量一起下降。不同实例获取的资源是相对独立的,无法像虚拟化一样完全隔离。
<强> 2。配置MySQL多实例强>
,,,, MySQL的多实例配置可以是单一文件,单一启动程序的部署方案,但是不推荐,风险太高了。这里部署的是多配置文件,多启动的部署方案。在前面,我们已经搭建了MySQL的服务,也就是存在了一个默认的实例,端口为3306。在这里,我们多增加一个实例,端口为3307。
,,,,(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" esacMySQL的多实例介绍及配置是怎样的