1. 程式人生 > >MySQL主從復制和常用命令

MySQL主從復制和常用命令

community 和數 unit conn back transacti mys zab count

##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主從復制和常用命令