Linux下安裝MySQL及MySQL主從同步配置

從零開始提及,先說在Linux安裝MySQL再說主從配置,MySQL的版本爲5.7java

一.mysql安裝node

1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadbmysql

2. 使用 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 命令刪除mariadb,避免形成衝突sql

4.接下來編輯yum的源,vim /etc/yum.repos.d/mysql57.repo ,複製下面內容數據庫

[mysql57]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

而後使用yum install mysq-community-server -y 命令進行下載mysqlvim

下載好後使用 service mysqld status 查看mysql狀態,未啓動狀態則使用 service mysqld start狀態啓動mysqlide

下圖看到mysql的服務已經啓動工具

初始密碼保存在 /var/log/mysqld.log 這個文件下面,經過vi或者vim命令能夠找到,也能夠經過 grep 'temporary password' /var/log/mysqld.log 命令直接讀出密碼 測試

使用root帳號登錄mysql,輸入mysql -u root -p (mysql -u 用戶名 -p) 命令以後回車再輸入密碼url

剛安裝完若是防火牆沒關閉或者MySQL不容許外部連接的狀況下進行外部鏈接會出現下面的錯誤,因此須要受權IP和關閉防火牆

因此咱們先從新設置下新密碼和受權IP,進入了mysql無論作任何操做,都必須先重置密碼,否則會出現下面錯誤,咱們使用 SET PASSWORD = PASSWORD('新密碼'); 重置密碼,mysql每一個語句都必須由";" 分號結尾,初始化密碼不能太簡單,不然修改不了,若是想用簡單的密碼,能夠先運行 set global validate_password_policy=LOW;  命令,使密碼複雜度校驗下降

重置密碼以後能夠執行其餘的MySQL命令,

1.先利用 show databases; 查看有哪些數據庫

2.咱們須要用到mysql這個庫,則使用 use mysql; 命令進入mysql庫,

3.使用show tables; 能夠查看當前庫下面的表

4.使用 select user,host from user;查詢用戶受權的地址,初始都是localhost

5.使用 update user set host='%'; 命令把全部用戶受權任意IP能夠鏈接(我的使用能夠設置成%,正式環境不推薦)

6.最後須要使用  flush privileges; 來使修改後的host生效

到這裏爲止,Linux上安裝mysql5.7就結束了

二,主從配置

主從配置的主要原理是主庫每操做一條DDL或者DML語句,都會向日志寫入執行果的sql,從庫也不斷向日志讀取sql執行,下面開始配置

個人主庫ip:192.168.65.128

個人從庫ip:192.168.65.129

主庫配置:

修改 /etc/my.cnf 文件

[mysqld]
# 配置主從數據庫(主)
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema     #不須要同步的配置
binlog-ignore-db=mysql                  #能夠配置多個不須要同步的庫
binlog-do-db=test                       #配置須要同步的庫,也能夠配置多個

從庫配置:

修改 /etc/my.cnf 文件

[mysqld]
log-bin=mysql-bin               #開啓日誌
server-id=3
replicate-do-db=test            #須要跟從的數據
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

而後重啓2個數據庫 service mysqld restart

接着來登錄主庫配置數據同步帳號( grant受權帳號)

分別執行 grant replication slave on *.* to 'slave'@'%' identified by 'slave@123456789'; 和 flush privileges;,再進入mysql執行 select user,host from mysql.user; 看看從庫使用的帳號是否建立成功

而後使用 show master status; 命令查詢主庫信息

再登錄從庫配置數據同步帳號(配置主庫的IP,帳號密碼,pos日誌文件)

執行完 change master to master_host='192.168.65.128',master_user='slave',master_password='slave@123456789',master_log_file='mysql-bin.000001',master_log_pos=726;

再執行  start slave; 開啓從庫線程

執行 show slave status\G; 能夠查看到主庫的ip,port以及是否鏈接成功的信息,當下圖2個yes都出現的時候說明鏈接成功了,若是出現了  Slave_IO_Running: Connecting 這樣的信息基本能夠肯定是密碼 、pos  防火牆沒關閉這三個緣由其中的一種

上面已經成功配置了MySQL的主從關係,接下來使用工具測試下,下面的master和slave分別是個人主庫和從庫,咱們在主庫上面簡單地新增一個test表,能夠看到從庫也新增了一個表

到目前爲止MySQL的安裝和主從同步配置也算完成了。主從同步的原理是 master 每執行一條sql都會向binlog文件寫入執行過的DDL或者DML語句,而後slave會向日志文件讀取sql,再執行sql,因此這裏由三個線程完成,一個是master向日志記錄執行過的sql的IO線程,一個是slave向日志文件讀取sql的IO線程,一個是slave讀取完日誌信息再執行sql的sql線程(兩個IO線程,一個SQL線程)

相關文章
相關標籤/搜索