mysql主從

下載mysql-5.6.15.tar.gz  cmake-2.8.4.tar.gz

(1)先安裝cmake(mysql5.5以後是通過cmake來編譯的)

#tar -zxv -f cmake-2.8.4.tar.gz
#cd cmake-2.8.4
#./configure
#make
#make install


(2)創建mysql的安裝目錄及數據庫存放目錄

#mkdir -p /usr/local/mysql                 //安裝mysql 

(3)創建mysql用戶及用戶組

groupadd mysql
useradd -r -g mysql mysql

(4)安裝mysql

複製代碼
#tar -zxv -f mysql-5.6.15.tar.gz
#cd mysql-5.6.15

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

#make

#make install

2.配置

(1)設置目錄權限

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

(2)

# cp support-files/my-medium.cnf /etc/my.cnf //源碼配置文件放在/usr/local/mysql/my.cnf,如果讀取的不是,要考到/etc/my.cnf,或者啓動時指向 --default-files=/path



(3)創建系統數據庫的表

# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql

(4)設置環境變量

# vim /etc/profile
在PATH=$PATH:$HOME/bin添加參數爲:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

#source /etc/profile
複製代碼

(5)手動啓動mysql

# cd /usr/local/mysql

# ./bin/mysqld_safe --user=mysql &   

#/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/bx_34_31.err --pid-file=/usr/local/mysql/data/bx_34_31.pid --socket=/tmp/mysqld.sock --port=3306


啓動日誌寫在此文件下:/usr/local/mysql/data/localhost.err

關閉MySQL服務

# mysqladmin -u root -p shutdown  //這裏MySQL的root用戶還沒有配置密碼,所以爲空值。需要輸入密碼時,直接點回車鍵即可。
複製代碼

(7)修改MySQL的root用戶的密碼以及打開遠程連接

#mysqladmin -uroot -p password xxxxxx        //初始設置root密碼

#mysqladmin -uroot -p'xxxxxx' password XXXXXX       //修改密碼

複製代碼# mysql -u root mysql



mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";  //爲root添加遠程連接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password from user where User='root';
mysql>flush privileges;
mysql>exit



接下來設置mysql主從

    主服務器上:

1) 給同步用戶授權    

mysql> GRANT REPLICATION SLAVE ON *.* TO 'tongbu'@'10.16.34.24' IDENTIFIED BY

'123456';

Query OK, 0 rows affected (0.13 sec)


2) 修改主數據庫的配置文件my.cnf,開啓BINLOG,並設置server-id的值,修改之後必須重啓Mysql服務


[mysqld]

log-bin = /usr/local/mysql/log/mysql-bin.log

server-id=1   (謹記主從兩臺機器的id不同)


3)之後可以得到主服務器當前二進制日誌名和偏移量,這個操作的目的是爲了在從數據庫啓動後,從這個點開始進行數據的恢復


mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000001

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)


ok,以上一切順利,如果沒有出現master的狀態,注意my.cnf的位置/etc/my.cnf


3)備份數據庫

    mysql> flush tables with read lock;

 

    #mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql

     mysql> unlock tables;

 


從服務器上做如下

1)修改從數據庫的my.cnf,增加server-id參數 ,由於mysql-5.1.7後,不支持配置文件配置master信息,只需配置server-id即可,master信息在mysql命令行配置   

[mysqld]

server-id=2


mysql-5.1.7之前版本配置如下信息

log_bin = /var/log/mysql/mysql-bin.log

master-host =10.16.34.24

master-user=tongbu

master-pass=123456

master-port =3306

master-connect-retry=60

replicate-do-db =test 


2)在從服務器上,啓動slave進程

mysql> start slave;

3)在從服務器查看salve status

mysql> SHOW SLAVE STATUS\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: localhost

Master_User: root

Master_Port: 3306

Connect_Retry: 3

Master_Log_File: mysql-bin.001

Read_Master_Log_Pos: 120

Relay_Log_File: gbichot-relay-bin.001

Relay_Log_Pos: 548

Relay_Master_Log_File: mysql-bin .001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes


雙Yes即可



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章