基於mysql replication的成績總結。本站提示廣大學習愛好者:(基於mysql replication的成績總結)文章只能為提供參考,不一定能成為您想要的結果。以下是基於mysql replication的成績總結正文
接觸replication後,就開端揣摩本身要設置裝備擺設下嘗嘗,雖然湧現了許多成績:經由上彀查材料也好問同窗也好,終究是處理了些.如今就分享下本身的閱歷:
起首的成績是設置裝備擺設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
這裡的設置裝備擺設是裝置書上寫的設置裝備擺設的,本身沒無意識到logbin的成績,因為我的mysql是apt-get主動裝置的所以有些mysql文件也不曉得在哪裡,這就招致後來生成的mysql-bin000001這個日記文件不曉得放哪裡了,糾結了很久,最初用最本的辦法find一下(其時電腦剎時熱了),找了在/var/lib/mysql/這個目次下。
這時候重啟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)
挺好證實日記曾經開起。可是第二次我又差了下發明:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
本來是,當mysql辦事從新啟動一次後,它會主動從新開啟一個日子文件,一切的文件目次都在mysql-bin.index中。
然後是,設置裝備擺設我的slave,因為資本不敷就用了台windows的pc機來測,可是mysql目次下的設置裝備擺設文件很多多少啊,我也分不清晰是用誰人設置裝備擺設,橫豎就在my.ini中將server-id=2。然後重啟mysql辦事,mysqladmin這個敕令來停滯和啟動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)
從新啟動slave
啟動後查詢下以後的狀況,讓我糾結了,我的io-thread沒有翻開。start slave io-thread,運轉勝利可是io就是打不開。
然後ping一下辦事器,是可以的。然後我又長途登錄mysql曉得緣由在哪裡了,mysql自己就沒有銜接上主辦事器:
ERROR 2003 (HY000): Can't connect to MySQL server on '10.5.110.234' (111)
在網上查了很久,終究看到一種處理方法讓我馬上高興起來,就是在我的辦事器mysql中的my.cnf設置裝備擺設文件裡
•bind-address = 127.0.0.1
把它給注失落便可以了。又從新銜接一次弄定了。
•這個成績剛弄定又湧現一個新的成績,我在主辦事器下面拔出一條數據,成果在slave中檢查到的狀況是如許的。
Last_Error: Error 'Table 'test.chen' doesn't exist' on query. Default database: 'test'. Query: 'insert into chen values(112,'chen','chen')'
這裡成績很簡略了就是由於從辦事器下面的數據庫沒有這張表,所以檢查下主庫的表show create,再在從庫下面建一個表。弄定……
1 row in set (0.02 sec)
mysql> insert into chen values(1111,'chen','chen');
Query OK, 1 row affected (0.00 sec)
從庫下面的檢查:
mysql> select * from chen;
+------+------+---------+
| id | name | address |
+------+------+---------+
| 112 | chen | chen |
| 1111 | chen | chen |
+------+------+---------+
2 rows in set (0.01 sec)