成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

mysql集群的主從復(fù)制

IT那活兒 / 1301人閱讀
mysql集群的主從復(fù)制

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。。?/span>



mysql數(shù)據(jù)庫(kù)安裝


如果你的服務(wù)器使用rpm安裝了mysql的話需要先卸載。
找度娘(linux 卸載mysql rpm)即可。
https://www.cnblogs.com/xiaxiaoxu/p/9979022.html
安裝mysql:
介紹:glibc是mysql官方編譯好了的安裝包,直接安裝就行。

1. 解壓及創(chuàng)建目錄

a)移動(dòng)壓縮包到/usr/local/目錄下(很多公司將第三方軟件安裝在此目錄下):
[root@node1 local]# mv /root/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz /usr/local/
b)進(jìn)入/usr/local/目錄下解壓縮:
[root@hadoop1 local]# tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
c)改名:
[root@hadoop1 local]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
d)進(jìn)入mysql目錄,再去創(chuàng)建3個(gè)目錄:
[root@hadoop1 local]# cd mysql
[root@hadoop1 mysql]# mkdir arch tmp relay_log
備注:arch(記錄的是binlog日志信息)tmp(臨時(shí)目錄) relay_log(用來(lái)做主從同步)。

2. 創(chuàng)建用戶及用戶組

1)創(chuàng)建用戶組bda:
[root@hadoop1 local]# groupadd -g 101 dba
2)查看有沒(méi)有創(chuàng)建此用戶組,需要查看一個(gè)文件/etc/group,看一下有沒(méi)有dba。
[root@hadoop1 mysql]# cat /etc/group | tail -n 3
postfix:x:89:
ntp:x:38:
dba:x:101:
3)創(chuàng)建mysql用戶,指定用戶組是bda,指定mysql用戶的家目錄是:
/usr/local/mysql/
[root@hadoop1 local]# useradd -g dba -d /usr/local/mysql/ mysql
備注:-g<群組>  指定用戶所屬的群組。-d<登入目錄>  指定用戶登入時(shí)的起始目錄(用戶的家目錄)。
4)為了解決-bash-4.2$問(wèn)題(原因就是因?yàn)閙ysql用戶的家目錄下沒(méi)有以.bash開(kāi)頭的隱藏文件),需要注意的是,復(fù)制操作需要root用戶執(zhí)行。
[root@hadoop1 local]# cp /etc/skel/.bash_profile /usr/local/mysql/
[root@hadoop1 local]# cp /etc/skel/.bash_logout /usr/local/mysql/
[root@hadoop1 local]# cp /etc/skel/.bashrc /usr/local/mysql/

3. 配置mysql用戶環(huán)境變量(注意使用root用戶)

在.bash_profile 中末尾添加兩行:
[mysql@hadoop1 ~]$ vi /usr/local/mysql/.bash_profile
#mysql
export MYSQL=/usr/local/mysql
export PATH=$PATH:$MYSQL/bin

4. 創(chuàng)建mysql的配置文件my.cnf(如果出現(xiàn)覆蓋overwrite,輸入y)

上傳my.cnf
[root@hadoop1 ~]# mv my.cnf /etc/
5. 賦予權(quán)限
[root@hadoop1 ~]# chown mysql:dba /etc/my.cnf
[root@hadoop1 ~]# chmod 640 /etc/my.cnf
[root@hadoop1 ~]# chown -R mysql:dba /usr/local/mysql/
[root@hadoop1 ~]# chmod -R 755 /usr/local/mysql/

6. 配置開(kāi)機(jī)自動(dòng)啟動(dòng)

[root@hadoop1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
[root@hadoop1 ~]# chmod +x /etc/rc.d/init.d/mysql
[root@hadoop1 ~]# chkconfig --add mysql
[root@hadoop1 ~]# chkconfig mysql on

7. 安裝libaio包

[root@hadoop1 ~]# yum -y install libaio

8. 初始化mysql

[root@hadoop1 ~]# su - mysql

# data是mysql數(shù)據(jù)庫(kù)存放數(shù)據(jù)的目錄
[mysql@hadoop1 ~]$ mkdir data
#初始化mysql
[mysql@hadoop1 mysql]$ bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

9. 查看臨時(shí)密碼有沒(méi)有生成

[mysql@hadoop1 data]$ cat /usr/local/mysql/data/hostname.err | grep password
備注:MySQl啟動(dòng)日志是hostname.err,初始化完如果發(fā)現(xiàn)沒(méi)有臨時(shí)密碼,需要cat一下這個(gè)日志文件,看一下有沒(méi)有ERRO,如果有erro重新初始化mysql。

10. 啟動(dòng)mysql服務(wù)

[mysql@hadoop1 data]$ /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
[mysql@hadoop1 data]$ service mysql status
#也可以去看一下mysql的進(jìn)程在不在
[mysql@hadoop1 data]$ ps -elf | grep mysql (會(huì)發(fā)現(xiàn)mysql進(jìn)程正在啟動(dòng))

11. 修改臨時(shí)密碼

需要進(jìn)入mysql
mysql -uroot -p
mysql> alter user root@localhost identified by 123456;
mysql> grant all privileges on *.* to root@%  identified by 123456;
mysql> flush privileges;

12. 驗(yàn)證連接工具能夠連接

重新初始化mysql數(shù)據(jù)庫(kù)步驟:
1)[root@hadoop1 local]# su - mysql
2)[mysql@hadoop1 ~]$ rm -rf data arch tmp relay_log
3)[mysql@hadoop1 ~]$ mkdir data arch tmp relay_log
4)看一下有沒(méi)有mysql進(jìn)程正在運(yùn)行。
[mysql@hadoop1 mysql]$ ps -elf | grep mysql
[mysql@hadoop1 mysql]$ kill -9 [PID]
5)再?gòu)牡?步開(kāi)始執(zhí)行。
13. 有可能遇到的問(wèn)題
1)mysql再次進(jìn)進(jìn)不去了?
  • 檢查你的密碼對(duì)不對(duì);

  • 檢查你的mysql有沒(méi)有啟動(dòng),需要重新啟動(dòng),而且需要再添加開(kāi)機(jī)自動(dòng)啟動(dòng)。

[mysql@hadoop1 ~]$ service mysql status
SUCCESS! MySQL running (7661)
  • 如果是success沒(méi)有問(wèn)題。

[mysql@hadoop1 ~]$ ps -elf | grep mysql
  • 看一下有沒(méi)有這個(gè)進(jìn)程。

2)mysql命令沒(méi)有找到。
問(wèn)題:mysql:command not found。
解決:配置相關(guān)用戶環(huán)境變量。



mysql數(shù)據(jù)備份


https://www.cnblogs.com/markLogZhu/p/11398028.html
寫一個(gè)腳本一次性備份所有庫(kù)下面的所有表。
1. 核心命令:
mysqldump -uroot -p123456 test user > user.sql
2. 需要拿到所有的數(shù)據(jù)庫(kù):
[mysql@hadoop1 mysql]$ mysql -uroot -p123456 -s -e "show databases;" | grep -v Database
mysql: [Warning] Using a password on the command line interface can be insecure.
information_schema
mysql
performance_schema
sys
test
test2
備注:
-s :將結(jié)果以文本的方式進(jìn)行輸出;
-e :可以使用非交互方式傳入sql語(yǔ)句并執(zhí)行將結(jié)果返回到控制臺(tái),在腳本常用。
3. 需要拿到所有的表:
[mysql@hadoop1 mysql]$ mysql -uroot -p123456 -s -e "use test;show tables;" | grep -v Tables_in
mysql: [Warning] Using a password on the command line interface can be insecure.
user
4. 待優(yōu)化的腳本:
5. 優(yōu)化之后的腳本:



mysql集群架構(gòu)


1. mysql binlog日志:
https://zhuanlan.zhihu.com/p/52455547 https://blog.csdn.net/weixin_33893111/article/details/113424335 https://www.cnblogs.com/clsn/p/8150036.html
binlog即binary log,二進(jìn)制日志文件,這個(gè)文件記錄了MySQL所有的DML操作(記錄數(shù)據(jù)庫(kù)中所有的修改操作)。
通過(guò)binlog日志我們可以做數(shù)據(jù)恢復(fù),增量備份,主主復(fù)制和主從復(fù)制等等。
2. 二進(jìn)制日志模式:
1)STATMENT模式
基于SQL語(yǔ)句的復(fù)制(statement-based replication, SBR),每一條會(huì)修改數(shù)據(jù)的sql語(yǔ)句會(huì)記錄到binlog中。
優(yōu)點(diǎn):不需要記錄每一條SQL語(yǔ)句與每行的數(shù)據(jù)變化,這樣子binlog的日志也會(huì)比較少,減少了磁盤IO,提高性能。
缺點(diǎn):數(shù)據(jù)記錄的不詳細(xì)。
2)基于行的復(fù)制(row-based replication, RBR,公司基本都會(huì)采用這種模式):
不記錄每一條SQL語(yǔ)句的上下文信息,僅需記錄哪條數(shù)據(jù)被修改了,修改成了什么樣子了。
優(yōu)點(diǎn):不會(huì)出現(xiàn)某些特定情況下的存儲(chǔ)過(guò)程、或function、或trigger的調(diào)用和觸發(fā)無(wú)法被正確復(fù)制的問(wèn)題。并且記錄的很詳細(xì)。
缺點(diǎn):會(huì)產(chǎn)生大量的日志,尤其是alter table的時(shí)候會(huì)讓日志暴漲。
解決:會(huì)設(shè)置日志的過(guò)期時(shí)間expire_logs_days = 7。
3)混合模式復(fù)制(mixed-based replication, MBR):
以上兩種模式的混合使用,一般的復(fù)制使用STATEMENT模式保存binlog,對(duì)于STATEMENT模式無(wú)法復(fù)制的操作使用ROW模式保存binlog,MySQL會(huì)根據(jù)執(zhí)行的SQL語(yǔ)句選擇日志保存方式。
  • 開(kāi)啟binlog日志需要在配置文件中添加:

    server-id;
    log-bin : 指定binlog日志存放的位置;
    log-format :采用什么模式用存放binlog。
  • 查看binlog日志文件的命令:

[mysql@hadoop1 arch]$ mysqlbinlog --no-defaults --base64-output=decode-rows -vvv mysql-bin.000003
3. 主從復(fù)制:
4. 開(kāi)啟主從同步的步驟:
1)主庫(kù)開(kāi)啟binlog日志,并且需要保證主從庫(kù)的server-id不一致,如果一旦修改了server-id(需要修改的是my.cnf),需要重啟mysql數(shù)據(jù)庫(kù)。
[mysql@hadoop2 relay_log]$ exit
logout
[root@hadoop2 ~]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
2) 在主庫(kù)中執(zhí)行,創(chuàng)建用于主從復(fù)制的mysql 用戶,并且賦予可以拿到binlog日志的日志權(quán)限。

創(chuàng)建用戶:

mysql> create user reproduce@localhost identified by 123456;
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

驗(yàn)證:

遠(yuǎn)程訪問(wèn):

加權(quán)限(在主庫(kù)使用root用戶):

mysql> grant replication slave on *.* to reproduce@% identified by 123456;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>
 flush privileges;
Query OK, 0 rows affected (0.01 sec)

驗(yàn)證:

3)需要在從庫(kù)中執(zhí)行
需要在主庫(kù)中查看最新的binlog日志文件名和最新的記錄點(diǎn):
在從庫(kù)中執(zhí)行(用root用戶執(zhí)行,需要改成你的主庫(kù)的binlog名稱和記錄點(diǎn)):
change master to
master_host=192.168.174.10,
master_port=3306,
master_user=reproduce,
master_password=123456,
master_log_file=mysql-bin.000002,
master_log_pos=1680;
需要開(kāi)啟叢庫(kù)的兩個(gè)線程:
IO_thread
SQL_thread
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
4)驗(yàn)證
查看兩個(gè)線程的狀態(tài):
mysql> show slave statusG
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在主庫(kù)中創(chuàng)建庫(kù)和表,在從庫(kù)中是能同步的,并且看中繼日志,也是同步的:
[mysql@hadoop2 relay_log]$ mysqlbinlog --no-defaults --base64-output=decode-rows -vvv relay-log.000002
如果不是雙yes,需要停兩個(gè)線程并重新指定:
mysql> stop slave;
重新指定:
mysql> start slave。


本文作者:鄭平安

本文來(lái)源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129632.html

相關(guān)文章

  • 簡(jiǎn)單五步教你搭建MySQL主從復(fù)制

    摘要:環(huán)境主機(jī)從機(jī)環(huán)境目標(biāo)實(shí)現(xiàn)主機(jī)到從機(jī)基于的主從復(fù)制目前提供兩種方式主從復(fù)制基于我們此篇就是基于的主從復(fù)制基于第步下載并分別安裝到主機(jī)和從機(jī),網(wǎng)上有很多例子。第步在主機(jī)和從機(jī)上分別拷貝配置文件到下??梢詣?chuàng)建庫(kù)或者表查看同步情況。 環(huán)境 主機(jī):172.17.0.2從機(jī):172.17.0.3環(huán)境:CentOS7MySQL:5.6.38目標(biāo):實(shí)現(xiàn)主機(jī)172.17.0.2到從機(jī)172.17.0.3...

    liangzai_cool 評(píng)論0 收藏0
  • 簡(jiǎn)單五步教你搭建MySQL主從復(fù)制

    摘要:環(huán)境主機(jī)從機(jī)環(huán)境目標(biāo)實(shí)現(xiàn)主機(jī)到從機(jī)基于的主從復(fù)制目前提供兩種方式主從復(fù)制基于我們此篇就是基于的主從復(fù)制基于第步下載并分別安裝到主機(jī)和從機(jī),網(wǎng)上有很多例子。第步在主機(jī)和從機(jī)上分別拷貝配置文件到下??梢詣?chuàng)建庫(kù)或者表查看同步情況。 環(huán)境 主機(jī):172.17.0.2從機(jī):172.17.0.3環(huán)境:CentOS7MySQL:5.6.38目標(biāo):實(shí)現(xiàn)主機(jī)172.17.0.2到從機(jī)172.17.0.3...

    liuhh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<