zoukankan      html  css  js  c++  java
  • 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 statusG

          

          mysql>show processlist;

          

          主库应该是这样子的。在从库上执行:

         mysql>show slave statusG

         

        应该是有这么一串,show processlist;

        

          这样就配置好了。下面可以验证一下,在主库上建立一张表:

          

    use test;
    create table test
    (
      id int
    );

         这时从库应该有对应的一张表也被复制了过来:

         

         主库上插入数据:insert into test select 1;

         从库上会自动更新:

         

         这样就配置好了一对主动数据库,其他的优化参数可以参考《高性能MySQL》,这本书真的很不错,可以说是MySQL除了官方文档之外的唯一经典。

         顺便说一下,主从这个配置安装什么的,官方MySQL和Percona Server我都试过,没有区别。

  • 相关阅读:
    加入页面切换动画, 避免冷启动
    Spark Shuffle模块——Suffle Read过程分析
    java使用线程请求訪问每次间隔10分钟连续5次,之后停止请求
    二叉排序树(BST)构造与应用
    L贪心基础
    leetcode笔记:Ugly Number II
    Android API Guides---Layouts
    红外目标图像中阈值切割方法的比較与研究
    IOS开发证书变成“此证书的签发者无效”解决方法
    Web前端开发规范收集
  • 原文地址:https://www.cnblogs.com/quxiuke/p/6123448.html
Copyright © 2011-2022 走看看