Mysql 讀寫分離
Mysql 讀寫分離
前幾天做了一次配置 那次配置出的問題 我思考了幾天 想破了頭也不知道錯誤出在哪
數據就不是同步 連日誌都沒報錯
所以徹底從新做了一次
因為先前一個做CentOS 5.5原版和一個CentOS 5.5精裝版的的 Mysql都是直接Yum 安裝的
不知道是不是這個問題造成的
-------------------------------------------------------
環境:
CentoS 精裝版 192.168.0.250 mysql從
CentOS 精裝版 192.168.0.251 mysql主
################## mysql 源碼安裝####################################
tar -zxvf mysql*.gz
cd mysql-5.1.50
useradd -d /dev/null -s /sbin/nologin mysql
./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-extra-charsets=complex --with-ssl --with-embedded-server --with-named-curses-libs=/usr/lib/libncursesw.so.5
make
make install
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
PATH=$PATH:/usr/local/mysql/bin
/usr/local/mysql/bin/mysql_install_db
chown -R mysql.mysql /usr/local/mysql/var
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
/usr/local/mysql/bin/mysql_secure_installation
(mysql 源碼安裝 不解析)
########### 修改my.cnf #######
log-bin=mysql-bin
server-id=1
#(暫時指定 同步資料庫 和不同步資料庫)
#(不過聽說同步了Mysql 問題很多 還是先這樣做 完成後再修改)
################################
mysql> grant replication slave,reload,super on *.* to slave@192.168.0.250 identified by '123456';
mysql> flush privileges;
mysql> exit;
請在從資料庫伺服器上測試這個賬戶:
show privileges
# mysql -u slave -h 192.168.0.250 -p (這個很有必要 比如slave寫成了salve 我經常這樣打錯)
mysql>
mysql> FLUSH TABLES WITH READ LOCK; (主庫加鎖)
記錄日誌和偏移量
mysql> show master status ;
建立完整快照
mysqldump --all-database --lock-all-tables >db.sql
複製到從資料庫
scp -P 22222 db.sql root@192.168.0.250:/root/ (-P 22222 ----因為我的ssh埠修改了22222)
######### 修改從my.cnf ############
server-id=2
master-host=192.168.0.251
master-user=slave
master-password=123456
master-port=3306
loh-bin=mysql-bin
-----------------------------------
service mysqld restart
mysql -u root -p < db.sql (導入)
unlock tables ; (主庫解鎖)
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.251', MASTER_USER='slave',
MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=177; (後面log_file log_pos 參照主庫的日誌名稱和偏移量)
mysql> salve start ;
查狀態
mysql> show master status;
mysql> show slave status;
mysql> show processlist ;
資料庫操作
create table test.t(name int,age int) ;
insert into test.t values('admin','11');
從庫 select * from test.t
測試正常
#####################################
記得Iptables 添加 允許3306
《解決方案》
謝謝分享,學習了。。。
《解決方案》
謝謝分享,學習了。。。
《解決方案》
回復 1# so_brave
老兄沒有看到讀寫分離啊,只是同步。
《解決方案》
回復 4# key1077
讀寫分離估計是應用級別的吧。