国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mysql集群的主從復制

IT那活兒 / 1293人閱讀
mysql集群的主從復制

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!



mysql數據庫安裝


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

1. 解壓及創建目錄

a)移動壓縮包到/usr/local/目錄下(很多公司將第三方軟件安裝在此目錄下):
[root@node1 local]# mv /root/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz /usr/local/
b)進入/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)進入mysql目錄,再去創建3個目錄:
[root@hadoop1 local]# cd mysql
[root@hadoop1 mysql]# mkdir arch tmp relay_log
備注:arch(記錄的是binlog日志信息)tmp(臨時目錄) relay_log(用來做主從同步)。

2. 創建用戶及用戶組

1)創建用戶組bda:
[root@hadoop1 local]# groupadd -g 101 dba
2)查看有沒有創建此用戶組,需要查看一個文件/etc/group,看一下有沒有dba。
[root@hadoop1 mysql]# cat /etc/group | tail -n 3
postfix:x:89:
ntp:x:38:
dba:x:101:
3)創建mysql用戶,指定用戶組是bda,指定mysql用戶的家目錄是:
/usr/local/mysql/
[root@hadoop1 local]# useradd -g dba -d /usr/local/mysql/ mysql
備注:-g<群組>  指定用戶所屬的群組。-d<登入目錄>  指定用戶登入時的起始目錄(用戶的家目錄)。
4)為了解決-bash-4.2$問題(原因就是因為mysql用戶的家目錄下沒有以.bash開頭的隱藏文件),需要注意的是,復制操作需要root用戶執行。
[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用戶環境變量(注意使用root用戶)

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

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

上傳my.cnf
[root@hadoop1 ~]# mv my.cnf /etc/
5. 賦予權限
[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. 配置開機自動啟動

[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數據庫存放數據的目錄
[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. 查看臨時密碼有沒有生成

[mysql@hadoop1 data]$ cat /usr/local/mysql/data/hostname.err | grep password
備注:MySQl啟動日志是hostname.err,初始化完如果發現沒有臨時密碼,需要cat一下這個日志文件,看一下有沒有ERRO,如果有erro重新初始化mysql。

10. 啟動mysql服務

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

11. 修改臨時密碼

需要進入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. 驗證連接工具能夠連接

重新初始化mysql數據庫步驟:
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)看一下有沒有mysql進程正在運行。
[mysql@hadoop1 mysql]$ ps -elf | grep mysql
[mysql@hadoop1 mysql]$ kill -9 [PID]
5)再從第8步開始執行。
13. 有可能遇到的問題
1)mysql再次進進不去了?
  • 檢查你的密碼對不對;

  • 檢查你的mysql有沒有啟動,需要重新啟動,而且需要再添加開機自動啟動。

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

[mysql@hadoop1 ~]$ ps -elf | grep mysql
  • 看一下有沒有這個進程。

2)mysql命令沒有找到。
問題:mysql:command not found。
解決:配置相關用戶環境變量。



mysql數據備份


https://www.cnblogs.com/markLogZhu/p/11398028.html
寫一個腳本一次性備份所有庫下面的所有表。
1. 核心命令:
mysqldump -uroot -p123456 test user > user.sql
2. 需要拿到所有的數據庫:
[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 :將結果以文本的方式進行輸出;
-e :可以使用非交互方式傳入sql語句并執行將結果返回到控制臺,在腳本常用。
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. 待優化的腳本:
5. 優化之后的腳本:



mysql集群架構


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,二進制日志文件,這個文件記錄了MySQL所有的DML操作(記錄數據庫中所有的修改操作)。
通過binlog日志我們可以做數據恢復,增量備份,主主復制和主從復制等等
2. 二進制日志模式:
1)STATMENT模式
基于SQL語句的復制(statement-based replication, SBR),每一條會修改數據的sql語句會記錄到binlog中。
優點:不需要記錄每一條SQL語句與每行的數據變化,這樣子binlog的日志也會比較少,減少了磁盤IO,提高性能。
缺點:數據記錄的不詳細。
2)基于行的復制(row-based replication, RBR,公司基本都會采用這種模式):
不記錄每一條SQL語句的上下文信息,僅需記錄哪條數據被修改了,修改成了什么樣子了。
優點:不會出現某些特定情況下的存儲過程、或function、或trigger的調用和觸發無法被正確復制的問題。并且記錄的很詳細。
缺點:會產生大量的日志,尤其是alter table的時候會讓日志暴漲。
解決:會設置日志的過期時間expire_logs_days = 7。
3)混合模式復制(mixed-based replication, MBR):
以上兩種模式的混合使用,一般的復制使用STATEMENT模式保存binlog,對于STATEMENT模式無法復制的操作使用ROW模式保存binlog,MySQL會根據執行的SQL語句選擇日志保存方式。
  • 開啟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. 主從復制:
4. 開啟主從同步的步驟:
1)主庫開啟binlog日志,并且需要保證主從庫的server-id不一致,如果一旦修改了server-id(需要修改的是my.cnf),需要重啟mysql數據庫。
[mysql@hadoop2 relay_log]$ exit
logout
[root@hadoop2 ~]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
2) 在主庫中執行,創建用于主從復制的mysql 用戶,并且賦予可以拿到binlog日志的日志權限。

創建用戶:

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)

驗證:

遠程訪問:

加權限(在主庫使用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)

驗證:

3)需要在從庫中執行
需要在主庫中查看最新的binlog日志文件名和最新的記錄點:
在從庫中執行(用root用戶執行,需要改成你的主庫的binlog名稱和記錄點):
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;
需要開啟叢庫的兩個線程:
IO_thread
SQL_thread
mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
4)驗證
查看兩個線程的狀態:
mysql> show slave statusG
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在主庫中創建庫和表,在從庫中是能同步的,并且看中繼日志,也是同步的:
[mysql@hadoop2 relay_log]$ mysqlbinlog --no-defaults --base64-output=decode-rows -vvv relay-log.000002
如果不是雙yes,需要停兩個線程并重新指定:
mysql> stop slave;
重新指定:
mysql> start slave。


本文作者:鄭平安

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129632.html

相關文章

  • 簡單五步教你搭建MySQL主從復制

    摘要:環境主機從機環境目標實現主機到從機基于的主從復制目前提供兩種方式主從復制基于我們此篇就是基于的主從復制基于第步下載并分別安裝到主機和從機,網上有很多例子。第步在主機和從機上分別拷貝配置文件到下。可以創建庫或者表查看同步情況。 環境 主機:172.17.0.2從機:172.17.0.3環境:CentOS7MySQL:5.6.38目標:實現主機172.17.0.2到從機172.17.0.3...

    liangzai_cool 評論0 收藏0
  • 簡單五步教你搭建MySQL主從復制

    摘要:環境主機從機環境目標實現主機到從機基于的主從復制目前提供兩種方式主從復制基于我們此篇就是基于的主從復制基于第步下載并分別安裝到主機和從機,網上有很多例子。第步在主機和從機上分別拷貝配置文件到下。可以創建庫或者表查看同步情況。 環境 主機:172.17.0.2從機:172.17.0.3環境:CentOS7MySQL:5.6.38目標:實現主機172.17.0.2到從機172.17.0.3...

    liuhh 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<