linux一台主机部署多版本mysql_Linux系统下单台服务器进行mysql多实例的安装部署和管理...

现在一些企业多数mysql都是单台部署,并没有配置多个实例。而有些企业为了节约服务器成本和有效利用服务器资源,也往往会单mysql的多实例。节约成本的同时,当某个实例服务并发很高或者有慢查询时,会消耗服务器更多的CPU、内存、磁盘IO等资源,这时就会导致服务器上的其它实例提供访问的质量下降,出现服务器资源互相抢占的现象,所以什么时候部署这个单机多实例还是分开部署,需要根据自己现有的实际条件和业务来定。

单机mysql多实例有两种方式可以实现,两种方式各有利弊:

第一种:使用多个配置文件(多个my.cnf)启动不同的进程来实现多实例,这种方式的优势逻辑简单(每个mysql实例单独管理),配置简单,缺点是管理起来不太方便。

第二种:通过官方自带的mysqld_multi使用一个my.cnf配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理。

由于本人单位使用的是第二种方式,一个linux物理机器安装了多个mysql实例。为了和单位同步和后续备份测试,这里采用后者进行安装。换枪不换药,其他方式可以自行网上搜索。环境介绍:mysql 版本:5.5

操作系统:CentOS 6.4

mysql实例数:4个

实例占用端口分别为:3306、3307、3308、3309

其中目录结构如下:

[[email protected] ~]# tree /data

/data

|-- mysql_3306

|-- mysql_3307

|-- mysql_3308

`-- mysql_3309

注意这里每个实例目录都要加上mysql权限,否则以后数据库安装会失败。我操作的是赋值上级目录data所有者更改,具体命令为:chown  -R mysql.mysql  /data

mysql安装编译的这里就不多做重复介绍,可以参考《linux(centos)环境下如何编译安装mysql 5.6》安装前期进行操作。其中mysql编译参数我这里采用的是如下:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql

编译安装(make && make install )完以后,那就是安装数据库了。安装之前,我们设置下my.cnf文件如下:

[[email protected] ~]# cat /etc/my.cnf

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld_safe

mysqladmin = /usr/local/mysql/bin/mysqladmin

user = multi_admin

password = my_password

[mysqld1]

max_connections=10000

skip-name-resolve

user = mysql

innodb_file_per_table=1

max_allowed_packet=1024M

max_connect_errors=10000

character-set-server=utf8

socket = /data/mysql_3306/mysql_3306.sock

port = 3306

pid-file = /data/mysql_3306/mysql.pid

datadir = /data/mysql_3306

log-bin=mysql-bin

binlog_format=mixed

slow_query_log

long_query_time = 1

[mysqld2]

max_connections=10000

skip-name-resolve

user = mysql

innodb_file_per_table=1

max_allowed_packet=128M

max_connect_errors=10000

character-set-server=utf8

innodb_force_recovery=0

socket = /data/mysql_3307/mysql_3307.sock

port = 3307

pid-file = /data/mysql_3307/mysql.pid

datadir = /data/mysql_3307

log-bin=mysql-bin

binlog_format=mixed

slow_query_log

long_query_time = 1

[mysqld3]

max_connections=10000

skip-name-resolve

user = mysql

innodb_file_per_table=1

max_allowed_packet=32M

innodb_buffer_pool_size=402653184

character-set-server=utf8

socket = /data/mysql_3308/mysql_3308.sock

port = 3308

pid-file = /data/mysql_3308/mysql.pid

datadir = /data/mysql_3308

group_concat_max_len = 51200

log-bin=mysql-bin

binlog_format=mixed

slow_query_log

long_query_time = 1

[mysqld4]

max_connections=10000

skip-name-resolve

user = mysql

innodb_file_per_table=1

max_allowed_packet=32M

character-set-server=utf8

socket = /data/mysql_3309/mysql_3309.sock

port = 3309

pid-file = /data/mysql_3309/mysql.pid

datadir = /data/mysql_3309

下边我们单独进入mysql安装编译目录,进行mysql数据库导入操作:

./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3306 --user=mysql

./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3307 --user=mysql

./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3308 --user=mysql

./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql_3309 --user=mysql

导入完以后,我们就可以通过命令单独修改设置下密码了,新安装好的数据库的密码都是空的。设置密码命令:

/usr/local/mysql/bin/mysqladmin -uroot password 'test3306!' -S /data/mysql_3306/mysql_3306.sock

/usr/local/mysql/bin/mysqladmin -uroot password 'test3307!' -S /data/mysql_3307/mysql_3307.sock

/usr/local/mysql/bin/mysqladmin -uroot password 'test3308!' -S /data/mysql_3308/mysql_3308.sock

/usr/local/mysql/bin/mysqladmin -uroot password 'test3309!' -S /data/mysql_3309/mysql_3309.sock

添加到开机启动:

vim  /etc/rc.d/rc.local

mysqld_multi --defaults-file=/etc/my.cnf start

管理命令小结:

1,单一进行mysql关闭操作的命令如下:

比如我们要关闭mysql3306:

mysqladmin -uroot -p -S /data/mysql_3306/mysql_3306.sock shutdown 然后输入root的密码就可以了。

2,启动mysql的命令,比如mysql3306:

mysqld_multi start  1

如果是多个实例,那么可以执行mysqld_multi start  1-4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值