centos7 mysql5.7 数据库主从配置

配置主从的复制

主库核心配置

server-id = 1
log-bin=master-bin
binlog-do-db=platform_plus  #要给从机同步的库
binlog_format=mixed
slave-skip-errors = 1062,1032,1060
expire_logs_days = 3 # 自动清理 3 天前的log文件 可根据需要修改
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
slow_query_log = on
long_query_time = 3
#log_queries_not_using_indexes=on
early-plugin-load = ""
pid-file=/usr/local/mysql/data/mysqld.pid

从库核心配置

log-bin=salve-bin
binlog_format=mixed
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
server-id = 2
slave-skip-errors = 1062,1032,1060
expire_logs_days = 3
slow_query_log= 1
#slow-query-log-file=/usr/local/mysql/log/mysql-slow.log
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""
binlog-do-db=platform_plus

查询master(主服务器)的状态

show master status;

在这里插入图片描述
File列和Position列的值一会儿我们要用到。

在主服务器上创建备份专用帐户

##授予权限
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backup'@'%' IDENTIFIED BY 'Attack@123';"

##刷新权限
flush privileges; 

配置从服务器

a.如果现在你已经启动从主机,先关闭:stop slave
b.如果停止之后还想重新启动,则必须清除所有的日志信息:flush logs;
c.启动从服务器复制功能
 CHANGE MASTER TO MASTER_HOST='xxx.xx.x.xxx',MASTER_USER='test',MASTER_PASSWORD='test',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=1876421;

查看从库状态

show slave status;

主要查看以下两项:
Slave_IO_Running: Yes 
lave_SQL_Running: Yes

主从服务器做测试

create table tb_test(id int(3), name varchar(50)); 
insert into tb_test values(1,'hello slave'); 
show databases;


备份还原

-- 仅备份
mysqldump -utest -ptest --database platform_plus > /usr/mysql_back/platform_plus.sql
-- 备份并进行压缩
mysqldump -utest -ptest --database platform_plus | gzip  > /usr/mysql_back/platform_plus.sql.gz

-- sql 还原
mysql -utest -p --database platform_plus < /usr/mysql_back/platform_plus.sql
--.gz进行还原
bunzip2 < backupfile.sql.gz | mysql -utest -ptest platform_plus

删除数据库说有的表(谨慎操作)

SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'xxx';

并且把执行结果运行。

mysql命令登录数据库

1.mysql -u root -ppassword
2.mysql -u root -p
  Enter password:****提示输入密码
3.mysql -h localhost -u root -ppassword
4.mysql -h 127.0.0.1 -u root -ppassword
5.-p参数和密码中间不能有间隔

mysql数据库信息查看

1.show databases;查看数据库
2.use [数据库名] ;使用xx数据库
3.CREATE DATABASE [数据库名];创建一个数据库
4.show tables;查看当前库里的表
5.CREATE TABLE [表名]
	([字段名] [类型], [字段名] [类型]);
6.DESCRIBE [表名] ;显示表结构
7.source d:/mysql.sql; 导入sql文件

mysql查询某个库所有表的外键生成删除外键sql

SELECT 
	CONCAT('ALTER TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' DROP FOREIGN KEY ',CONSTRAINT_NAME,' ;') 
FROM 
	information_schema.TABLE_CONSTRAINTS c 
WHERE 
	c.TABLE_SCHEMA='db_rule_dto_test' AND c.CONSTRAINT_TYPE='FOREIGN KEY';

mysql生成某个库清空所有表的sql

SELECT 
	CONCAT('TRUNCATE TABLE ',TABLE_SCHEMA,'.',TABLE_NAME,' ;') 
FROM 
	information_schema.TABLE_CONSTRAINTS c 
WHERE 
	c.TABLE_SCHEMA='db_rule_dto_test';

– 禁用外键约束

SET FOREIGN_KEY_CHECKS = 0

– 启用外键约束

SET FOREIGN_KEY_CHECKS = 1;
由于FOREIGN_KEY_CHECKS是基于session的,当关闭了session重新建立连接,这个变量就会恢复默认值,
也就是开启外键约束,当然我们也可以全局的FOREIGN_KEY_CHECKS变量。
SET GLOBAL FOREIGN_KEY_CHECKS = 0;
发布了14 篇原创文章 · 获赞 0 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u010152183/article/details/100013782
今日推荐