MENU

mysql主从复制

March 17, 2019 • linux运维阅读设置


title: mysql骚操作
tags:

  • mysql
    categories:
  • code
    copyright: true

url: NaN.html
id: .nan

date: 2019-01-16 14:13:00

授予用户最大的权限,所有的权限

grant all privileges on *.* to username@'%' identified by 'password';

移除权限

revoke all privileges on *.* from 用户@"%" identified by '密码';

数据库的备份与恢复

备份

mysqldump -u root -p --all-databases > /tmp/db.sql

数据导入,方式有2种

source /tmp/db.sql;

第二种
mysql -uroot -p < /tmp/db.sql

第三种
navicat

第四种,如果你数据量特别大的话,使用第三方工具
xtrabackup

mysql主从复制

mysql主从复制背景
1.如果你是单点数据库
2.主备数据库,挂了一台主库,我可能还有千千万万个备用的数据库

mysql主从复制的步骤
1.在matser主库上的操作,开启主库功能

`systemctl stop mariadb `
编辑/etc/my.cnf 
写入如下信息
    `[mysqld]
    server-id=10
    log-bin=qishi-logbin`
`systemctl start mariadb `

2.在主库创建用户,用于同步数据
create user yuanqing@'%' identified by 'yq666';

授予普通用户,slave的身份
grant replication slave on *.* to 'yuanqing'@'%';

3.锁定数据库的库表,禁止写入
这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。
解锁语句是:UNLOCK TABLES;
flush table with read lock;

记录下主库的状态,记录下,日志文件的名字,和位置
show master status;

4.导出主库的数据
mysqldump -u root -p --all-databases > /tmp/db.sql

5.远程传输主库的数据,给从库,进行导入
scp /tmp/db.sql root@192.168.11.167:/tmp/

6.解锁主库的锁,写入数据,查看从库是否同步
unlock tables;

最后编辑于: April 2, 2019
Leave a Comment