配置MySQL数据库多实例
                        
                            时间:2021-07-01 10:21:17
                            帮助过:47人阅读
							                        
                     
                    
                    
                    一、什么是mysql多实例
    简单的说就是在一台机器上开启多个不同的服务端口(例如:3306、3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务。
    这些mysql多实例共用一套mysql安装程序,使用不同(也可以相同)的my.cnf配置文件、启动程序、数据文件。在提供服务时,多实例mysql在逻辑上看来是各自独立的,多个实例是根据配置文件中配置的参数来获取服务器相关硬件资源。
二、mysql常见应用场景
    由于公司业务访问量不是很大,服务器的资源基本都是浪费的,这时候很适合使用多实例的应用,如果对SQL语句优化做的比较好,mysql多实例是一个很值得使用的技术,即使并发很大,合理分配系统资源,也不会有太大问题。
三、mysql多实例常见配置方案
3.1 安装mysql数据库
 具体安装方法,请参见 编译方式安装MySQL数据库 。
3.2 配置多实例
 3.2.1 创建多实例目录
[root@mysql-multi ~]# mkdir -p /data/{3306,3307}/data
[root@mysql-multi ~]# tree /data        
/data  
├── 3306        
│   └── data        
└── 3307
     └── data 3.2.2 将数据目录及临时目录授权mysql用户(在安装mysql之前已经创建mysql用户组和用户)
[root@mysql-multi ~]# chown -R mysql.mysql /data
[root@mysql-multi ~]# chmod -R 1777 /tmp
[root@mysql-multi ~]# ls -ld /data/{3306,3307}/data        
drwxr-xr-x. 2 mysql mysql 4096 1月  18 22:40 /data/3306/data        
drwxr-xr-x. 2 mysql mysql 4096 1月  18 22:40 /data/3307/data 3.2.3 创建配置文件my.cnf
| 3306端口 
 | 3307端口 
 | 
| [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 = 1skip-name-resolve
 slave-skip-errors = 1032,1062
 replicate-ignore-db=mysql
 server-id = 1 innodb_additional_mem_pool_size = 4Minnodb_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/err_mysql_3306.err
 pid-file=/data/3306/mysqld.pid
 | [client]port            = 3307
 socket          = /data/3307/mysql.sock
 
 
 [mysql]no-auto-rehash
 
 [mysqld]user    = mysql
 port    = 3307
 socket  = /data/3307/mysql.sock
 basedir = /application/mysql
 datadir = /data/3307/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/3307/error.log
 #log-slow-queries = /data/3307/slow.log
 pid-file = /data/3307/mysql.pid
 #log-bin = /data/3307/mysql-bin
 relay-log = /data/3307/relay-bin
 relay-log-info-file = /data/3307/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 = 1skip-name-resolve
 slave-skip-errors = 1032,1062
 replicate-ignore-db=mysql
 server-id = 3 innodb_additional_mem_pool_size = 4Minnodb_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/3307/err_mysql_3307.err
 pid-file=/data/3307/mysqld.pid
 | 
                
配置MySQL数据库多实例
标签:mysql 多实例 主从复制