MySQL主從復制和常用命令
##yum安裝MySQL 5.7版本
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-server
##選擇安裝MySQL版本
查看MySQL yum源開啟的是哪個版本
yum repolist enabled | grep "mysql.*-community.*"
開啟指定版本
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql57-community
##初始化
/usr/bin/mysql_install_db --basedir=/jf/3307/ --datadir=/jf/307/data --user=mysql
能生成初始密碼
mysqld --initialize --datadir=/jf/mysql --user=mysql
##相關密碼設置
查看默認密碼:
grep ‘temporary password‘ /var/log/mysqld.log
登錄:
mysql -uroot -ppasswd
用alter修改root密碼:
mysql> alter user root@localhost identified by ‘Jufan@dbbi2438‘;
mysql> grant all on *.* to ‘用戶名‘@‘登錄主機‘ identified by ‘密碼‘;
mysql> SET PASSWORD FOR ‘用戶名‘@‘登錄主機‘ = PASSWORD(‘密碼‘);
mysql -uroot -p‘W+Y.sbu7Vlfe‘ --connect-expired-password -e "alter user root@localhost identified by ‘Jufan@123‘;"
##主從配置
###Master
vi /etc/my.cnf
server-id=1
log-bin=mysql-bin
授權用戶
GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.0.%‘ IDENTIFIED BY ‘passwd‘;
GRANT SELECT, RELOAD, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ‘jufan_slave‘@‘%‘; #可以導出數據的用戶
flush privileges;
查看master日誌:
show master status;
###導數據:
全部數據庫
mysqldump -uroot -pfGvkCH534XWe@ --all-databases --master-data=1 --single-transaction > master_slave.sql
指定數據庫
mysqldump -uuser -ppasswd -B yfq_data_center jufan --master-data=1 --single-transaction > repbak.sql
指定數據庫的某個表或多個表(jufan是庫名 後面跟表名,多個表用空格)
mysqldump -ujufan-select -p‘jufan@123‘ --single-transaction jufan biz_apply_installment > jufan_table.sql
導入數據(jufan是庫名)
mysql -uroot -p‘jufan@123‘ jufan < jufan_table.sql
導出數據對比:
導出整個數據庫結構和數據
mysqldump -h localhost -uroot -p123456 database > dump.sql
導出單個數據表結構和數據
mysqldump -h localhost -uroot -p123456 database table > dump.sql
導出整個數據庫結構(不包含數據)
mysqldump -h localhost -uroot -p123456 -d database > dump.sql
導出單個數據表結構(不包含數據)
mysqldump -h localhost -uroot -p123456 -d database table > dump.sql
###Slave
vi /etc/my.cnf
[mysqld]
server-id=2
relay-log=slave-relay-bin
導入數據
mysql -uroot -pJufan@dbbi2438
source /jf/master_slave.sql
連接master
change master to master_host=‘10.80.222.44‘,
master_port=3306,
master_user=‘dbbi‘,
master_password=‘Jufan@123‘,
master_log_file=‘mysql-bin.000001‘,
master_log_pos=5161;
啟動Slave
start slave;
show slave status\G
###查看變量
show global variables like ‘%timeout%‘;
###zabbix_get用法
zabbix_get -s 10.29.183.7 -p 10050 -k "mysql_backup"
###修改表名
第一種方法:
ALTER TABLE table1 RENAME TO table2;
第二種方法:
RENAME TABLE table1 TO table2;
###slave同步出錯
跳過一個錯誤
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
##主從同步slave 配置文件參數
參數解釋
replicate-do-db 只同步指定的庫
replicate-ignore-db 忽略指定的庫
replicate-do-table 只同步某個庫的某個表
replicate-wild-do-table 只同步某個庫的某個表(支持通配符%)
replicate-ignore-table 忽略某個庫的某個表
replicate-wild-ignore-table 忽略某個庫的某個表(支持通配符%)
MySQL主從復制和常用命令