如何运行MySQL的两个实例进行复制

时间:2015-06-19 10:22:52

标签: mysql

我想在同一台机器上使用数据库复制。所以我需要创建两个mysql实例。如果有人描述如何获取服务器ID,将会很有帮助。

1 个答案:

答案 0 :(得分:0)

  1. 创建单独的数据和日志目录
  2. 我们需要为datadir和log文件夹(如果使用)创建新目录。我们还需要为这些文件夹分配适当的权限:

    mkdir /var/lib/mysql2
    chown -R mysql.mysql /var/lib/mysql2/
    mkdir /var/log/mysql2
    chown -R mysql.mysql /var/log/mysql2
    
    1. 创建新的mysql配置文件
    2. 接下来我们需要一个单独的配置文件。我们可以先复制现有的并更改所需的值。这个例子是在一台debian机器上进行的,它保存了/etc/mysql/my.cnf下的mysql配置。我们只需复制此文件夹并从那里进行修改:

      cp -R /etc/mysql/ /etc/mysql2
      
      1. 创建新的mysql配置文件
      2. 接下来我们需要一个单独的配置文件。我们可以先复制现有的并更改所需的值。这个例子是在一台debian机器上进行的,它保存了/etc/mysql/my.cnf下的mysql配置。我们只需复制此文件夹并从那里进行修改:

        如果您使用redhat变体包,则配置文件位于

        /etc/my.cnf by default and you can just copy it directly:

        接下来,我们需要编辑新的配置文件,至少更新mysql端口(默认为3306),pid和socket与默认端口不同,并将数据和日志文件夹指向创建的之前。在我的debian机器上,这可以通过以下方式完成:

        cd /etc/mysql2/
        sed -i 's/3306/3307/g' my.cnf
        sed -i 's/mysqld.sock/mysqld2.sock/g' my.cnf
        sed -i 's/mysqld.pid/mysqld2.pid/g' my.cnf
        sed -i 's/var\/lib\/mysql/var\/lib\/mysql2/g' my.cnf
        sed -i 's/var\/log\/mysql/var\/log\/mysql2/g' my.cnf
        
        1. 初始化和开始
        2. 最后我们需要初始化默认的dbs:

          mysql_install_db --user=mysql --datadir=/var/lib/mysql2/