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我都試過,沒有區別。

相關文章
相關標籤/搜索