1. 程式人生 > >linux系統下安裝多個MySql資料庫並做主從配置

linux系統下安裝多個MySql資料庫並做主從配置

轉載自:http://blog.csdn.net/millery22/article/details/50547443

前提:

1、關閉Liunx系統的防火牆,如果忘了,你下面的測試連線必定會失敗,切記,切記,切記。

2、yum安裝lrzsz和cmake

yum -y install lrzsz;

yum -y install cmake;

首先熟悉MySql資料庫,很多人都是直接安裝原生版的MySql資料庫(就是官網上下載的資料庫安裝包),也有人用的是MySql的衍生版資料庫,如percona,我用的就是這種,下面我會分別說明原生版和衍生版MySql資料庫的安裝和主從配置。

Linux下多個原生版MySql資料庫的安裝及主從配置:

1、下載MySql資料庫http://dev.mysql.com/downloads/mysql/5.5.html#downloads


下載的是64位系統,我使用的是CentOS6.6 64位系統

2、安裝第一個資料庫

-- cd /usr/local/src

-- mkdir mysql

-- cd mysql

-- rz(上傳安裝包)

-- tar -xvf MySQL-5.5.47-1.linux2.6.x86_64.rpm-bundle.tar

-- rpm -ivh MySQL-server-5.5.47-1.linux2.6.x86_64.rpm

-- rpm -ivh MySQL-client-5.5.47-1.linux2.6.x86_64.rpm

-- rpm -ivh MySQL-devel-5.5.47-1.linux2.6.x86_64.rpm

到這裡就安裝結束了

3、啟動資料庫、修改資料庫密碼和登入資料庫

-- service mysql start

-- mysqladmin -uroot password ‘root’

-- mysql -uroot -proot

4、提供遠端連線的許可權

在登入mysql的狀態下執行下面的命令

-- grant all privileges on *.* to 'root' @'%' identified by 'root';

-- flush privileges;

執行結束後使用外部的工具連線庫,我這裡使用的是navicat,連線的時候會報這樣測錯誤:

就因為這個錯誤,讓我苦苦研究很長時間,其實解決起來很方便的。下面是解決方案:

rpm安裝原生版的mysql是沒有my.cnf檔案的,在網上查各種資料都是讓我修改my.cnf配置檔案,但是我始終沒有找到這個檔案,後來在網上看到博友的博文這裡將截圖貼上如下:

主要看第二種說法,我的操作如下:

-- cd /usr/share/mysql

-- cp my-medium.cnf /etc/

-- cd /etc

-- mv my-medium.cnf my.cnf

-- vim my.cnf

配置檔案中許多內容都是被我註釋了,但是不註釋也沒有太大的影響,但是主要是找到bind-address = 127.0.0.1,如果有就註釋掉,沒有就不用管了,我當時在我的配置檔案中是沒有找到這句話的。接下來是在配置檔案的[mysqld]這句話下一行新增一句話skip-name-resolve,儲存檔案,重新啟動資料庫(命令:service mysql restart),這個時候再遠端連線資料庫就可以連線的上了(如圖)。

好了,到此為止第一個Mysql資料庫就安裝成功了。

5、第二個Mysql資料庫的安裝之建立目錄

-- cd /usr/local

-- mkdir mysql

-- cd mysql

-- mkdir data

-- mkdir etc

-- mkdir logs

-- mkdir var

-- chown mysql:mysql /usr/local/mysql/ -R

-- cp /etc/my.cnf /usr/local/mysql/etc/

-- vim /usr/local/mysql/etc/my.cnf

這裡需要將所有的內容都註釋掉,然後新增下面的內容:

[mysqld]

skip-name-resolve

port=3307

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql-3307.sock

user=mysql

log_error=/usr/local/mysql/logs/db_error.log

# Disabling symbolic-links is recommended to prevent assorted securityrisks

symbolic-links=0

[mysqld_safe]

log-error=/usr/local/mysql/logs/db_error.log

pid-file=/usr/local/mysql/mysqld-3307.pid

儲存配置檔案,準備安裝

6、安裝第二個Mysql資料庫、啟動資料庫

上面的配置檔案都配置好了,接下來就是安裝了

安裝命令:

/usr/bin/mysql_install_db  --defaults-file=/usr/local/mysql/etc/my.cnf  --basedir=/usr/  --datadir=/usr/local/mysql/data  --user=mysql

啟動資料庫

/usr/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &

7、修改密碼、登入、設定遠端訪問許可權

修改密碼:

mysqladmin -h127.0.0.1 -P3307 -uroot password "root"

登入:

mysql -uroot -h127.0.0.1 -P3307 -p

設定遠端訪問許可權:

grant all privileges on *.* to 'root' @'%' identified by 'root';

flush privileges;

到此第二個資料庫就安裝結束了,這裡測試連線就不演示了,和上面的一樣,這裡的skip-name-resolve已經在修改配置檔案的時候加上了,正常安裝啟動時不會出現問題的。

8、主從配置之配置主資料庫

-- vim /etc/my.cnf

在[mysqld]所在行下另起一行,加上下面的幾句話

log-bin=mysql3306-bin

//test表示主從之間需要同步的資料庫,如果有多個就用逗號隔開,但是需要同步的資料庫較多時建議直接不寫這句話,因為逗號隔開可能會存在一些問題,直接不寫這句配置,表示同步整個資料庫

binlog-do-db=test

server-id=101  //這裡的服務id可以是任意值,但是要保證唯一

配置檔案修改完畢,儲存配置檔案,重啟資料庫。

使用navicat資料庫工具執行命令:SHOW MASTER STATUS檢視主庫的狀態如下(不同資料庫值不同,記住這兩個值):

下面就是為從庫建立使用者:

grant replication slave on *.* to 'slave01'@'127.0.0.1' identified by'123456';

flush privileges;

這裡的127.0.0.1需要根據你的從資料庫所在機器的ip配置,要是覺得指定ip容易出錯,就直接使用“%”代替。

小插曲:

上面的兩句sql命令在我的navicat中無法執行,如果博友你也出現這種情況,不防直接命令列連線資料庫執行這兩句話,效果一樣。

好了,到此為止主資料庫就配置完成嘍!

9、主從配置之配置從資料庫

-- vim /usr/local/mysql/etc/my.cnf

這裡配置相對主庫較為簡單,只要配置一個server-id即可,唯一需要注意的是server-id的唯一性,儲存配置檔案,重新啟動資料庫(用 ps -ef | grep mysql 查詢到3307 從資料庫的程序編號,kill命令(kill xxx)殺死3307從資料庫的程序,然後重新執行啟動資料庫命令就好,注意從資料庫啟動和主資料庫的不同)。

然後使用navicat工具執行下面的sql語句:

CHANGE MASTER TO

 master_host='127.0.0.1',

 master_user='slave01',

 master_password='123456',

 master_port=3306,

 master_log_file=' mysql3306-bin.000002',

 master_log_pos= 1942;

啟動從資料庫的同步:

START SLAVE;

檢視從資料庫的狀態:

SHOW SLAVE STATUS;

注意看其中的兩個值:

這兩個都為“yes”才是成功,有一個為“no”都不行。

現在就測試修改資料吧!

首先在主庫中隨便修改一條資料並儲存,到從庫重新整理,看是否同步,如果是同步了恭喜你成功了。

Linux下多個衍生版Mysql的安裝和主從配置:

1、下載衍生版資料庫Percona,地址:https://www.percona.com/downloads/Percona-Server-5.6/LATEST/

2、安裝第一個資料庫

-- cd /usr/local/src

-- mkdir mysql-percona

-- cd mysql-percona

-- rz(上傳安裝包)

-- tar -xvf Percona-Server-5.5.47-37.7-r764f304-el6-x86_64-bundle.tar

-- rpm -ivh Percona-Server-shared-55-5.5.47-rel37.7.el6.x86_64.rpm

-- rpm -ivh Percona-Server-client-55-5.5.47-rel37.7.el6.x86_64.rpm

-- rpm -ivh Percona-Server-server-55-5.5.47-rel37.7.el6.x86_64.rpm

這裡安裝結束後和原生版的不同,這個會自動生成一個my.cnf檔案儲存在/etc目錄下。

啟動服務(service mysql start)、修改root使用者密碼、登入、設定遠端連線許可權、以及修改my.cnf配置檔案內容和上面的原生版相同(注意這裡是修改內容步驟一樣,這裡不再需要從其他目錄拷貝檔案到/etc目錄下並改檔名,因為衍生版安裝時會自動生成一個my.cnf檔案儲存在/etc目錄下)。

記得重新啟動資料庫,連線測試。

3、安裝第二個衍生版Mysql資料庫很簡單,這裡安裝的步驟和安裝第二個原生版Mysql是完全相同的,這裡就不多說了。

4、主從配置

這裡的主從配置和原生版的是完全相同的,不再贅述。