linux mysql 实例_linux下Mysql多实例实现

什么是MySQL多实例

MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:;

Mysql多实例实现的3种方式

mysql 多实例常规来讲,有三种方案可以实现,这三种方案各有利弊,如下:

1、基于多配置文件

通过使用多个配置文件来启动不同的进程,以此来实现多实例。

配置文件:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

[client]

port=3307socket=/data/3307/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

user=mysql

port=3307socket=/data/3307/mysql.sock

basedir=/application/mysql

datadir=/data/3307/data

open_files_limit=1024back_log=600max_connections=800max_connect_errors=3000table_cache=614external-locking =FALSE

max_allowed_packet=8M

sort_buffer_size=1M

join_buffer_size=1M

thread_cache_size=100thread_concurrency=2query_cache_size=2M

[root@web0013307]# cat my.cnf

[client]

port=3307socket=/data/3307/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

user=mysql

port=3307socket=/data/3307/mysql.sock

basedir=/application/mysql

datadir=/data/3307/data

open_files_limit=1024back_log=600max_connections=800max_connect_errors=3000table_cache=614external-locking =FALSE

max_allowed_packet=8M

sort_buffer_size=1M

join_buffer_size=1M

thread_cache_size=100thread_concurrency=2query_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=7key_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,1062replicate-ignore-db=mysql

server-id = 7innodb_additional_mem_pool_size=4M

innodb_buffer_pool_size=32M

innodb_data_file_path=ibdata1:128M:autoextend

innodb_file_io_threads=4innodb_thread_concurrency=8innodb_flush_log_at_trx_commit=2innodb_log_buffer_size=2M

innodb_log_file_size=4M

innodb_log_files_in_group=3innodb_max_dirty_pages_pct=90innodb_lock_wait_timeout=120innodb_file_per_table=0[mysqldump]

quick

max_allowed_packet=2M

[mysqld_safe]

log-error=/data/3307/mysql_oldboy3307.err

pid-file=/data/3307/mysqld.pid

View

优点:逻辑简单,配置简单

缺点:管理起来不方便

mysql启动停止脚本。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/bin/sh

#init

port=3307mysql_user="root"mysql_pwd="111111"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"function_start_mysql()

{if [ ! -e "$mysql_sock"];then

printf"Starting MySql...\n"

/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null &

elseprintf"Mysql is running...\n"exit

fi

}

#stop function

function_stop_mysql()

{if [ ! -e "$mysql_sock"];then

printf"MySql is stopped...\n"exitelseprintf"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

sleep2function_start_mysql

}case $1 instart)

function_start_mysql

;;

stop)

function_stop_mysql

;;

restart)

function_restart_mysql

;;*)

printf"Usage /data/${port}/mysql {start|stop|restart}\n";;

esac

View Code

2、基于mysqld_multi

通过官方自带的 mysqld_multi 工具,使用单独配置文件来实现多实例

优点: 便于集中管理管理

缺点: 不方便针对每个实例配置进行定制

3、基于IM

使用 MySQL 实例管理器(MYSQLMANAGER),这个方法好像比较好不过也有点复杂

优点:便于集中管理

缺点:耦合度高。IM一挂,实例全挂

不方便针对每个实例配置进行定制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统下,可以通过多个实例来运行多个MySQL服务器,每个实例可以拥有独立的配置文件、数据目录和日志文件等。这样可以方便地管理多个不同的MySQL实例,提高系统的可靠性和稳定性。下面简单介绍一下在LinuxMySQL实例安装的过程。 1. 安装MySQL 首先需要安装MySQL,可以通过命令行或者图形界面进行安装。以Ubuntu系统为例,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install mysql-server ``` 2. 创建新的MySQL实例目录 在Linux系统下,每个MySQL实例需要有独立的数据目录和日志文件等。可以使用以下命令创建一个新的MySQL实例目录: ``` sudo mkdir /var/lib/mysql2 ``` 3. 复制MySQL配置文件 每个MySQL实例需要有独立的配置文件,可以通过复制默认配置文件来创建新的配置文件。以Ubuntu系统为例,可以使用以下命令复制默认配置文件: ``` sudo cp /etc/mysql/my.cnf /etc/mysql/my2.cnf ``` 4. 修改新的配置文件 修改新的配置文件,使其指向新的数据目录和日志文件等。以Ubuntu系统为例,可以使用以下命令编辑新的配置文件: ``` sudo vi /etc/mysql/my2.cnf ``` 在文件中修改以下内容: ``` [client] port = 3307 socket = /var/run/mysqld/mysqld2.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3307 basedir = /usr datadir = /var/lib/mysql2 tmpdir = /tmp log_error = /var/log/mysql/error2.log ``` 其中,需要修改的内容主要是端口号、数据目录、日志文件等。 5. 初始化新的MySQL实例 使用以下命令初始化新的MySQL实例: ``` sudo mysqld --defaults-file=/etc/mysql/my2.cnf --initialize-insecure --user=mysql ``` 其中,--defaults-file参数指定使用新的配置文件,--initialize-insecure参数表示不设置root密码,--user参数表示启动MySQL进程的用户。 6. 启动新的MySQL实例 使用以下命令启动新的MySQL实例: ``` sudo systemctl start mysql@2.service ``` 其中,2表示新的MySQL实例的编号。 至此,多实例MySQL服务器已经成功安装。可以通过以下命令查看多个MySQL实例的状态: ``` sudo systemctl status mysql@*.service ``` 其中,*表示所有的MySQL实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值