linux安装主从mysql,mysql8.0安装以及主从复制搭建(linux)
一主一從:
前提:
兩臺centos7(虛擬機或云服務器)
防火墻已關閉
主master:192.168.17.201 msql8.0.12
從slave:192.168.17.202 msql8.0.12
1.mysql8.0安裝
(1) 卸載Mariadb
由于CentOS7自帶的是 Mariadb, 所以需要先刪除Mariadb
1>. 查找版本
rpm -qa|grep mariadb
2>. 刪除
rpm -e --nodeps 上面查出來的文件名
3>. 刪除配置文件
rm /etc/my.cnf
(2) 下載安裝
1>. 下載
官網下載:https://dev.mysql.com/downloads/mysql/
2>. 解壓
tar -xvf 包名
解壓完會出現幾個不同的包,通過ll查看即可
3>. 安裝依賴
#以下六條,具體作用我還沒去了解過
yum -y install numactl
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum update libstdc++-4.4.7-4.el6.x86_64
yum search libaio
yum install libaio
yum install net-tools
4>. 安裝
#以下具體名字看通過ll命令查看,按順序安裝
rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
5>. 初始化
mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
6>. 修改密碼
①編輯配置文件
vim /etc/my.cnf
在[mysqld]下加skip-grant-tables
②重啟mysql服務
systemctl start mysql
③免密登錄
mysql -u root -p
提示輸入密碼時直接敲回車。
④選擇 mysql 數據庫
use mysql;
⑤置空默認密碼
update user set authentication_string='' where user='root';
⑥退出mysql,修改配置文件my.cnf,把kip-grant-tables刪掉
vim /etc/my.cnf
⑦重啟服務
systemctl start mysql
⑧登錄
mysql -u root -p
提示輸入密碼時直接敲回車。
⑨修改root密碼
ALTER user 'root'@'localhost' IDENTIFIED BY '密碼';
⑩退出重啟服務通過自己設置的密碼登錄
mysql -u root -p密碼
7>. 設置遠程登錄
設置權限 %表示允許遠程
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
或者
update user set host='%' where user='root';
刷新數據庫,使權限立刻生效
flush privileges;
注意所有標點均為英文符號!
到此mysql8.0安裝完成。
配置主從復制需要兩臺虛擬機或云服務器都安裝。
2.配置修改
主master數據庫中:在配置文件my.cnf新增:
server-id = 100
log-bin = mysql-bin
innodb-file-per-table =ON
skip_name_resolve=ON
#以下原有
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
從slave數據庫中:在配置文件my.cnf新增:
relay-log=relay-log1
relay-log-index=relay-log.index
server-id = 101
innodb_file_per_table=ON
skip_name_resolve=ON
#以下原有
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
配置完成重啟數據庫
3.主庫master操作
(1)創建用于同步的用戶并授權
#創建用戶
CREATE USER 'wwze'@'192.168.17.201' IDENTIFIED BY 'wish';
#授權
grant replication slave on *.* to 'wwze'@'192.168.17.201' identified by 'wish';
#刷新權限
flush privileges;
(2)查看master狀態,記錄二進制文件名(File)和位置(Position)
SHOW MASTER STATUS;
4.從庫slave操作
(1)同步
change master to master_host='94.191.88.237', master_user='wwze', master_password='wish', \
master_log_file='mysql-bin.000002', master_log_pos=885, master_connect_retry=30;
其中mysql-bin.000002為在主庫從查詢到的二進制文件名,885為位置。
(2)啟動同步
start slave;
(3)查看同步狀態
show slave status\G
這里結尾不加分號。
當 Slave_IO_Running: Yes 和Slave_SQL_Running: Yes時,便主從搭建成功。
5.額外配置
(1)選擇性同步數據庫
# 不同步哪些數據庫
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
# 只同步哪些數據庫,除此之外,其他不同步
binlog-do-db = game
(2)從庫設置為只讀,不能寫
在從庫slave的配置文件my.cnf中加:
read_only=1
可以限定普通用戶的對數據的修改操作,但不會限制root用戶(具有super權限的用戶)。如若要限制root用戶,需要對所有表加讀鎖:flush tables with read lock;
6.其他
停止同步:
stop slave;
清理slave:
reset slave all;
參考:
https://blog..net/xinpengfei521/article/details/80400142
https://www..com/gl-developer/p/6170423.html
https://blog..net/wuapeng/article/details/80632446
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的linux安装主从mysql,mysql8.0安装以及主从复制搭建(linux)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统安装服务器过程,Linux
- 下一篇: linux arm 常用服务,ARM、l