MySQL单机多实例安装并配置主从复制

    单机多实例听说能够最大程度提升硬件使用,谁知道呢,可是之前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,恰好单机多实例能够解救我。下面就说说步骤。html

    承上文http://www.cnblogs.com/wingsless/p/4002806.html,我已经安装好了MySQL,不过这个是单实例的,要更改也能够,可是担忧会出现问题,因而我将下面的东西删掉:mysql

    1 #rm -f /etc/init.dmysqlsql

    2 $rm -f /home/mysql/data数据库

    创建这么几个目录:less

    $mkdir -p /home/mysql/mydata/data1/binlog /home/mysql/mydata/data1/relay_log /home/mysql/mydata/data1/socketsocket

    $mkdir -p /home/mysql/mydata/data2/binlog /home/mysql/mydata/data2/relay_log /home/mysql/mydata/data2/socketide

    接下来就能够将$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我都试过,没有区别。

相关文章
相关标签/搜索