從零開始提及,先說在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線程)