基于mysql replication的問(wèn)題總結(jié)
接觸replication后,就開始琢磨自己要配置下試試,固然出現(xiàn)了很多問(wèn)題:經(jīng)過(guò)上網(wǎng)查資料也好問(wèn)同學(xué)也好,終于是解決了些.現(xiàn)在就分享下自己的經(jīng)歷:
首先的問(wèn)題是配置master的my.cnf,按部就班的配置
server-id = 1
log_bin =mysql-bin
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
這里的配置是安裝書上寫的配置的,自己沒(méi)有意識(shí)到logbin的問(wèn)題,由于我的mysql是apt-get自動(dòng)安裝的所以有些mysql文件也不知道在哪里,這就導(dǎo)致后來(lái)生成的mysql-bin000001這個(gè)日志文件不知道放哪里了,糾結(jié)了好久,最后用最本的方法find一下(當(dāng)時(shí)電腦瞬間熱了),找了在/var/lib/mysql/這個(gè)目錄下。
這時(shí)重啟mysql后,查看status的情況:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
挺好證明日志已經(jīng)開起。可是第二次我又差了下發(fā)現(xiàn):
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
原來(lái)是,當(dāng)mysql服務(wù)重新啟動(dòng)一次后,它會(huì)自動(dòng)重新開啟一個(gè)日子文件,所有的文件目錄都在mysql-bin.index中。
然后是,配置我的slave,由于資源不夠就用了臺(tái)windows的pc機(jī)來(lái)測(cè),可是mysql目錄下的配置文件好多啊,我也分不清楚是用那個(gè)配置,反正就在my.ini中將server-id=2。然后重啟mysql服務(wù),mysqladmin這個(gè)命令來(lái)停止和啟動(dòng)mysql。然后在使用命令:
mysql> CHANGE MASTER TO
-> MASTER_HOST='10.5.110.234',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='replica',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=228;
Query OK, 0 rows affected (0.01 sec)
重新啟動(dòng)slave
啟動(dòng)后查詢下當(dāng)前的狀態(tài),讓我糾結(jié)了,我的io-thread沒(méi)有打開。start slave io-thread,運(yùn)行成功可是io就是打不開。
然后ping一下服務(wù)器,是可以的。然后我又遠(yuǎn)程登錄mysql知道原因在哪里了,mysql本身就沒(méi)有連接上主服務(wù)器:
ERROR 2003 (HY000): Can't connect to MySQL server on '10.5.110.234' (111)
在網(wǎng)上查了好久,終于看到一種解決辦法讓我頓時(shí)興奮起來(lái),就是在我的服務(wù)器mysql中的my.cnf配置文件里
•bind-address = 127.0.0.1
把它給注掉就可以了。又重新連接一次搞定了。
•這個(gè)問(wèn)題剛搞定又出現(xiàn)一個(gè)新的問(wèn)題,我在主服務(wù)器上面插入一條數(shù)據(jù),結(jié)果在slave中查看到的狀態(tài)是這樣的。
Last_Error: Error 'Table 'test.chen' doesn't exist' on query. Default database: 'test'. Query: 'insert into chen values(112,'chen','chen')'
這里問(wèn)題很簡(jiǎn)單了就是因?yàn)閺姆?wù)器上面的數(shù)據(jù)庫(kù)沒(méi)有這張表,所以查看下主庫(kù)的表show create,再在從庫(kù)上面建一個(gè)表。搞定……
1 row in set (0.02 sec)
mysql> insert into chen values(1111,'chen','chen');
Query OK, 1 row affected (0.00 sec)
從庫(kù)上面的查看:
mysql> select * from chen;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 112 | chen | chen |
| 1111 | chen | chen |
+------+------+---------+
2 rows in set (0.01 sec)
相關(guān)文章
PHP定時(shí)備份MySQL與mysqldump語(yǔ)法參數(shù)詳解
本文為大家介紹了PHP利用mysqldump命令定時(shí)備份MySQL與mysqldump語(yǔ)法參數(shù)大全以及定時(shí)備份的PHP實(shí)例代碼2018-10-10
MySQL數(shù)據(jù)類型之淺談字符串(string)
這篇文章主要介紹了MySQL數(shù)據(jù)類型之字符串(string)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
linux CentOS 7.4下 mysql5.7.20 密碼改回來(lái)的處理方法
這篇文章主要介紹了linux CentOS 7.4下 mysql5.7.20 密碼改回來(lái)的處理方法,需要的朋友可以參考下2018-11-11
選擇MySQL數(shù)據(jù)庫(kù)進(jìn)行連接的簡(jiǎn)單示例
這篇文章主要介紹了選擇MySQL數(shù)據(jù)庫(kù)進(jìn)行連接的簡(jiǎn)單示例,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05

