MySQL实现单机多实例安装并配置主从复制
2014-10-31 16:08
976 查看
mysql单机多实例安装并配置主从复制
单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我。下面就说说步骤。
我已经安装好了MySQL,不过这个是单实例的,要更改也可以,但是担心会出现问题,于是我将下面的东西删掉:
1 #rm -f /etc/init.dmysql
2 $rm -f /home/mysql/data
建立这么几个目录:
$mkdir -p /home/mysql/mydata/data1/binlog /home/mysql/mydata/data1/relay_log /home/mysql/mydata/data1/socket
$mkdir -p /home/mysql/mydata/data2/binlog /home/mysql/mydata/data2/relay_log /home/mysql/mydata/data2/socket
接下来就可以将$MYSQL_HOME/suppuort-files/my-default.cnf复制到/etc下:
#cp suppuort-files/my-default.cnf /etc/my.cnf
修改这个文件,增加下面的内容:
[mysqld_multi]
mysqld = /usr/mysql/bin/mysqld_safe
mysqladmin = /usr/mysql/bin/mysqladmin
log = /home/mysql/mydata/log/mysqld_multi.log
socket = /home/mysql/mydata/data1/socket/mysqld.sock
port = 3306
pid-file = /home/mysql/mydata/data1/mysqld.pid
datadir = /home/mysql/mydata/data1
[mysqld2]
socket = /home/mysql/mydata/data2/socket/mysqld.sock
port = 3307
pid-file = /home/mysql/mydata/data2/mysqld.pid
datadir = /home/mysql/mydata/data2
复制代码
这样配置,就可以保证3306监听的是主库,而3307监听的是从库。
下面就可以初始化数据库了,依旧使用$MYSQL_HOME/script/mysql_install_db:
./mysql_install_db --basedir=/usr/mysql --datadir=/home/mysql/mydata/data1
./mysql_install_db --basedir=/usr/mysql --datadir=/home/mysql/mydata/data2
执行好以后这两个目录里会有很多文件自动生成:
然后执行:
#cp $MYSQL_HOME/support-files/mysqld_multi.server /etc/init.d/mysql
到这一步,所有的前期工作就已经做完了,下面就可以启动数据库了,两个库一起启动的命令是:
#service mysql start 1,2
这样就算好了。下面写如何配置主从复制。
首先登录3306:
$mysql -uroot -h127.0.0.1 -P3306
建立一个复制用户:
mysql>grant replication slave, replication client on *.* to repl@'localhost' identified by 'repl';
mysql>flush privileges;
登录从库:
$mysql -uroot -h127.0.0.1 -P3307
mysql>change master to master_host='localhost', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
在主库上执行:
mysql>show master status\G
mysql>show processlist;
主库应该是这样子的。在从库上执行:
mysql>show slave status\G
应该是有这么一串,show processlist;
这样就配置好了。下面可以验证一下,在主库上建立一张表:
use test;
create table test
(
id int
);
复制代码
这时从库应该有对应的一张表也被复制了过来:
主库上插入数据:insert into test select 1;
从库上会自动更新:
这样就配置好了一对主动数据库,其他的优化参数可以参考《高性能MySQL》,这本书真的很不错,可以说是MySQL除了官方文档之外的唯一经典。
顺便说一下,主从这个配置安装什么的,官方MySQL和Percona Server我都试过,没有区别。
(文章来源:http://www.jinriwujin.com/)
单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我。下面就说说步骤。
我已经安装好了MySQL,不过这个是单实例的,要更改也可以,但是担心会出现问题,于是我将下面的东西删掉:
1 #rm -f /etc/init.dmysql
2 $rm -f /home/mysql/data
建立这么几个目录:
$mkdir -p /home/mysql/mydata/data1/binlog /home/mysql/mydata/data1/relay_log /home/mysql/mydata/data1/socket
$mkdir -p /home/mysql/mydata/data2/binlog /home/mysql/mydata/data2/relay_log /home/mysql/mydata/data2/socket
接下来就可以将$MYSQL_HOME/suppuort-files/my-default.cnf复制到/etc下:
#cp suppuort-files/my-default.cnf /etc/my.cnf
修改这个文件,增加下面的内容:
[mysqld_multi]
mysqld = /usr/mysql/bin/mysqld_safe
mysqladmin = /usr/mysql/bin/mysqladmin
log = /home/mysql/mydata/log/mysqld_multi.log
socket = /home/mysql/mydata/data1/socket/mysqld.sock
port = 3306
pid-file = /home/mysql/mydata/data1/mysqld.pid
datadir = /home/mysql/mydata/data1
[mysqld2]
socket = /home/mysql/mydata/data2/socket/mysqld.sock
port = 3307
pid-file = /home/mysql/mydata/data2/mysqld.pid
datadir = /home/mysql/mydata/data2
复制代码
这样配置,就可以保证3306监听的是主库,而3307监听的是从库。
下面就可以初始化数据库了,依旧使用$MYSQL_HOME/script/mysql_install_db:
./mysql_install_db --basedir=/usr/mysql --datadir=/home/mysql/mydata/data1
./mysql_install_db --basedir=/usr/mysql --datadir=/home/mysql/mydata/data2
执行好以后这两个目录里会有很多文件自动生成:
然后执行:
#cp $MYSQL_HOME/support-files/mysqld_multi.server /etc/init.d/mysql
到这一步,所有的前期工作就已经做完了,下面就可以启动数据库了,两个库一起启动的命令是:
#service mysql start 1,2
这样就算好了。下面写如何配置主从复制。
首先登录3306:
$mysql -uroot -h127.0.0.1 -P3306
建立一个复制用户:
mysql>grant replication slave, replication client on *.* to repl@'localhost' identified by 'repl';
mysql>flush privileges;
登录从库:
$mysql -uroot -h127.0.0.1 -P3307
mysql>change master to master_host='localhost', MASTER_PORT=3306, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
在主库上执行:
mysql>show master status\G
mysql>show processlist;
主库应该是这样子的。在从库上执行:
mysql>show slave status\G
应该是有这么一串,show processlist;
这样就配置好了。下面可以验证一下,在主库上建立一张表:
use test;
create table test
(
id int
);
复制代码
这时从库应该有对应的一张表也被复制了过来:
主库上插入数据:insert into test select 1;
从库上会自动更新:
这样就配置好了一对主动数据库,其他的优化参数可以参考《高性能MySQL》,这本书真的很不错,可以说是MySQL除了官方文档之外的唯一经典。
顺便说一下,主从这个配置安装什么的,官方MySQL和Percona Server我都试过,没有区别。
(文章来源:http://www.jinriwujin.com/)
相关文章推荐
- MySQL单机多实例安装并配置主从复制
- MySQL单机多实例安装并配置主从复制
- 【转载】MySQL单机多实例安装并配置主从复制
- MySQL单机多实例安装并配置主从复制
- Ubuntu下编译安装Mysql双实例并配置主从复制
- mysql多实例的安装以及主从复制配置
- windows系统单机安装mysql两实例并配置为主从关系
- mysql多实例的安装以及主从复制配置
- 使用spring实现读写分离(mysql主从复制)一:mysql多实例安装
- centos7下mysql5.6.30配置单机多实例主从半同步复制
- MySQL主从复制--MySQL5.5异步、半同步配置以及复制过滤实现
- Linux CentOS 6.5安装与配置Mysql 主从复制(图)
- MySQL主从复制配置-windows单机环境
- 在linux同一台主机下面搭建两个mysql 实例并实现主从复制 (一)
- window2003安装双mysql实例做主从复制
- Amazon EC2安装mysql多实例并配置主从复制
- mysql主从复制的原理及配置实现
- mysql主从复制安装配置
- mysql主从复制的原理及配置实现
- MySQL主从复制配置与实现