mysql 多实例配置(含多文件、单文件配置)

1、mysql多实例

多实例
第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便;
第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理

1、1单文件配置

单文件由mysqld_multi工具来管理,比较麻烦

1.多实例配置

创建目录

数据配置文件存放于此

mkdir  /data/mysql3307
mkdir  /data/mysql3307

改属主属组

chown mysql:mysql -R /data/mysql3308
chown mysql:mysql -R /data/mysql3307

初始化
mysql_install_db 5.6初始化
mysqld --initialize 5.7 8.0 初始化,需要看错入日志查密码
mysqld --initialize-insecure 5.7 8.0 初始化,空密码

mysqld --initialize  --user=mysql --datadir=/data/mysql3307
mysqld --initialize  --user=mysql --datadir=/data/mysql3308
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql3308
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql3308

配置文件

vim /etc/my.cnf
[mysqld3307]
  socket = /tmp/mysql3307.sock
  port = 3307
  pid-file = /data/mysql3307/mysql.pid
  datadir = /data/mysql3307/
  basedir = /usr/local/mysql-5.7.26-linux-glibc2.12-x86_64
  user = mysql
  server-id=3307
[mysqld3308]
 socket = /tmp/mysql3308.sock
 port = 3308
 pid-file = /data/mysql3308/mysql.pid
 datadir = /data/mysql3308/
 basedir = /usr/local/mysql-5.7.26-linux-glibc2.12-x86_64
 user = mysql
 server-id=3308
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /data/mysql/mysqld_multi.log
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/
port = 3306
socket = /tmp/mysql.sock
event_scheduler = 0
tmpdir = /data/mysql/

启动

mysqld_multi report #查看状态
mysqld_multi start 3307
mysqld_multi start 3308
ps -ef  |grep 3307

1.2多实例配置

每个实例都有自己的配置文件

创建目录

mkdir  /data/mysql3307
mkdir  /data/mysql3307
chown mysql:mysql -R /data/mysql3308
chown mysql:mysql -R /data/mysql3307

初始化
mysql_install_db 5.6初始化
mysqld --initialize 5.7 8.0 初始化,需要看错入日志查密码
mysqld --initialize-insecure 5.7 8.0 初始化,空密码

mysqld --initialize  --user=mysql --datadir=/data/mysql3307
mysqld --initialize  --user=mysql --datadir=/data/mysql3308
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql3308
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql3308

配置文件(3307、3308 都要有)

vim /data/mysql3307/my.cnf
#my.cnf
[client]
port            = 3307
socket          = /tmp/mysql3307.sock

[mysql]
prompt="\\u@\\h [\\d]>" 
#pager="less -i -n -S"
#tee=/opt/mysql/query.log
no-auto-rehash

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /data/mysql/mysqld_multi.log

[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql3307 
port = 3307
socket = /tmp/mysql3307.sock
event_scheduler = 0

tmpdir = /data/mysql/
#timeout
interactive_timeout = 300
wait_timeout = 300

#character set
character-set-server = utf8

open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
#lower_case_table_names =1
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = /data/mysql3307/slow.log
log-error = /data/mysql/error.log
log_warnings = 2
pid-file = mysql.pid
long_query_time = 1
#log-slow-admin-statements = 1
#log-queries-not-using-indexes = 1
log-slow-slave-statements = 1

#binlog
#binlog_format = STATEMENT
binlog_format = row
server-id = 1003306
log-bin = /data/mysql3307/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 256M
max_binlog_cache_size = 1M
sync_binlog = 0
expire_logs_days = 10
#procedure 
log_bin_trust_function_creators=1

#
gtid-mode = 0

#relay log
skip_slave_start = 1
max_relay_log_size = 128M
relay_log_purge = 1
relay_log_recovery = 1
relay-log=relay-bin
relay-log-index=relay-bin.index
log_slave_updates
#slave-skip-errors=1032,1053,1062
#skip-grant-tables

#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 200
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 256K
query_cache_min_res_unit = 512
thread_stack = 192K
tmp_table_size = 96M
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M

#myisam
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

#innodb
innodb_buffer_pool_size = 1024M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:100M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 100M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_status_file = 1
innodb_io_capacity = 2000
transaction_isolation = REPEATABLE-READ
innodb_flush_method = O_DIRECT

启动

mysqld --defaults-file=/data/mysql3307/my.cnf &

连接

mysql -uroot -p -S /tmp/mysql3307.sock

做不对,你打我!!!

おすすめ

転載: blog.csdn.net/qq_46495338/article/details/121553492