设为首页 加入收藏

TOP

MySQL搭建系列之多实例(四)
2015-07-24 11:08:27 来源: 作者: 【 】 浏览:5
Tags:MySQL 搭建 系列 实例
,否则会失败。

# /usr/local/mysql/bin/mysqladmin--defaults-file=/usr/local/mysqla/my.cnf shutdown

# /usr/local/mysql/bin/mysqladmin--defaults-file=/usr/local/mysqlb/my.cnf shutdown

5. 修改为服务管理方式

二进制包没有采用缺省参数文件,所以修改为服务管理方式稍微有点复杂,需要修改服务启动文件中的basedir、datadir参数,如下:

??拷贝服务文件

# cp /usr/local/mysql/support-files/mysql.server/etc/rc.d/init.d/mysqla

# cp /usr/local/mysql/support-files/mysql.server/etc/rc.d/init.d/mysqlb

??添加服务

# chkconfig --add mysqla

# chkconfig --add mysqlb

??修改服务启动文件

编辑两个服务启动文件,修改basedir、datadir参为合适的路径,如下:

# vi /etc/rc.d/init.d/mysqla

basedir=/usr/local/mysqla

datadir=/data/lib/mysqla

# vi /etc/rc.d/init.d/mysqlb

basedir=/usr/local/mysqlb

datadir=/data/lib/mysqlb

备注:通过显式设置basedir,以使每个MySQL实例拥有独立的参数文件。

??启动服务

# service mysqla start

Starting MySQL.. [ OK ]

# service mysqlb start

Starting MySQL.. [ OK ]

# service mysqlb status

MySQL running (30326) [ OK ]

# service mysqla status

MySQL running (29755) [ OK ]

修改为服务管理方式后,启动、关闭服务方便了,但在本地登录数据库,还需指定socket文件,因为缺省的/tmp/mysql.sock并不存在,如:

# mysql --socket=/data/lib/mysqla/mysql.sock

# mysql --socket=/data/lib/mysqlb/mysql.sock

三. 采用RPM包安装MySQL实现多实例

RPM包的文件布局是固定的,无法修改,因此一台服务器通常只能安装一个MySQL实例。但我们知道,无论何种方式,MySQL实例都是通过调用mysqld_safe命令来启动的,而mysqld_safe命令可通过--defaults-file参数来显式指定一个参数文件,因此同样可在一台服务器安装、运行多个MySQL实例,只不过要对服务启动文件做一些调整,下面就来尝试一下这个方法。

1. 安装MySQL

??安装server及client包

# rpm -ivh MySQL-server-5.5.17-1.rhel5.x86_64.rpm

# rpm -ivh MySQL-client-5.5.17-1.rhel5.x86_64.rpm

??启动服务

# service mysql start

Starting MySQL.. [ OK ]

??查看basedir和datadir参数值

# mysql

mysql> show variables like 'basedir';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| basedir |/usr |

+---------------+-------+

1 row in set (0.00 sec)

mysql> show variables like 'datadir';

+---------------+-----------------+

| Variable_name | Value |

+---------------+-----------------+

| datadir |/var/lib/mysql/ |

+---------------+-----------------+

1 row in set (0.01 sec)

从中可以看出basedir缺省为/usr,datadir缺省为/var/lib/mysql。

2. 创建系统数据库

缺省情况下,RPM包已创建了系统数据库,位于/var/lib/mysql目录下,拷贝这个目录到/data/lib目录下,并分别命名为mysqla、mysqlb,以此来创建两个实例的系统数据库。

# service mysql stop

Shutting down MySQL. [ OK ]

# cp -r /var/lib/mysql/ /data/lib/mysqla

# cp -r /var/lib/mysql/ /data/lib/mysqlb

当然,也可通过mysql_install_db工具来创建,它位于/usr/bin目录下,如下:

# /usr/bin/mysql_install_db --user=mysql--datadir=/data/lib/mysqla

# /usr/bin/mysql_install_db --user=mysql--datadir=/data/lib/mysqlb

3. 配置参数文件

配置两个参数文件,分别命名为mya.cnf、myb.cnf,存放到/etc/目录下;端口号分别为3306、3307,datadir路径分别为/data/lib/mysqla、/data/lib/mysqlb。

4. 启动实例

同二进制包多实例一样,此时启动、关闭实例时只能通过--defaults-file指定参数文件,如下:

# /usr/bin/mysqld_safe --defaults-file=/etc/mya.cnf &

# /usr/bin/mysqld_safe --defaults-file=/etc/myb.cnf &

# /usr/bin/mysqladmin --defaults-file=/etc/mya.cnf shutdown

# /usr/bin/mysqladmin --defaults-file=/etc/myb.cnf shutdown

5. 修改服务管理方式

为了方便,还是要将其修改为服务管理方式,执行如下修改操作。

??创建服务启动文件

根据服务启动文件mysql,创建两个对应服务启动文件mysqla、mysqlb

# cd /etc/rc.d/init.d/

# cp mysql mysqla

# cp mysql mysqlb

??添加服务

# chkconfig --add mysqla

# chkconfig --add mysqlb

??删除原来的服务启动文件及服务(避免误启动)

# chkconfig --del mysql

# rm /etc/rc.d/init.d/mysql

??修改服务启动文件

编辑服务启动文件,进行如下调整,主要有以下几个地方:

# vi /etc/rc.d/init.d/mysqla

l 1:添加一个变量,设置为参数文件

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇解决MySQL出现大量unauthenticate.. 下一篇shell实现,将mysql每个存储过程..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 Python 进行数据 (2025-12-25 15:49:09)
·如何学习Python数据 (2025-12-25 15:49:07)
·利用Python进行数据 (2025-12-25 15:49:04)
·Java 学习线路图是怎 (2025-12-25 15:19:15)
·关于 Java 学习,有 (2025-12-25 15:19:12)