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

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

    承上文http://www.cnblogs.com/wingsless/p/4002806.html,我已经安装好了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我都试过,没有区别。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译安装 MySQL主从复制需要以下步骤: 1. 下载源代码:访问 MySQL 官方网站(https://dev.mysql.com/downloads/mysql/)下载所需的 MySQL 版本的源代码包。 2. 解压源代码包:使用命令行或解压工具将源代码包解压到指定目录。 3. 安装编译依赖:根据操作系统的不同,安装 MySQL 编译所需的依赖库(如cmake、gcc等)。 4. 配置编译选项:进入解压后的源代码目录,执行以下命令配置编译选项: ``` cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_TCP_PORT=3306 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_BOOST=/path/to/boost ``` 这里需要根据实际情况调整参数,例如指定安装目录、数据目录、端口号等。 5. 编译并安装:执行以下命令进行编译并安装 MySQL: ``` make && make install ``` 6. 初始化数据库:执行以下命令初始化数据库: ``` cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 7. 启动 MySQL:执行以下命令启动 MySQL 服务: ``` bin/mysqld_safe --user=mysql & ``` 8. 配置主从复制:编辑 MySQL 配置文件 my.cnf,在主服务器和从服务器上分别添加以下配置: ``` [mysqld] server-id=1 # 主服务器设置为1,从服务器设置为不同的值 log-bin=mysql-bin # 启用二进制日志 binlog-format=ROW # 使用行级复制 log-slave-updates # 记录从服务器上执行的更改 relay-log=relay-bin # 中继日志文件名 relay-log-index=relay-bin.index # 中继日志索引文件名 [mysqldump] master-data=1 # 在备份时记录主服务器的二进制日志位置 [mysql] slave-skip-errors=all # 忽略从服务器上的错误,保证复制不中断 ``` 9. 启动主从复制:在从服务器上执行以下命令连接到主服务器,并启动复制: ``` CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='复制用户', MASTER_PASSWORD='复制用户密码', MASTER_PORT=3306, MASTER_LOG_FILE='主服务器上的二进制日志文件名', MASTER_LOG_POS=日志位置; START SLAVE; ``` 10. 验证主从复制:使用命令 `SHOW SLAVE STATUS\G` 检查从服务器的状态,确保复制已经启动并正常工作。 以上是编译安装 MySQL主从复制的基本步骤,具体配置和操作可能因环境和需求而异,请根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值