mariadb 主从同步 -老男孩106笔记

secureCRT: 
		scheme  : 计划
		emulation: 模拟


今日内容

https://www.cnblogs.com/pyyu/p/9467289.html  mysql博客


mysql (分支 mariadb)
1.安装mariadb
	-yum
	-源码编译安装
	-下载rpm安装
	yum和源码编译安装的区别?
		1.路径区别-yum安装的软件是他自定义的,源码安装的软件./configure --preifx=软件安装的绝对路径
		2.yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
		3.编译安装的软件,支持第三方功能扩展./configure  这里可以加上很多参数,定制功能
		
	yum仓库的区别
		1.阿里云的yum仓库
		2.假设mysql官网,也会提供rpm包,源码包,以及yum源,供给下载
		

2.配置mariadb的官方yum源,用于自动下载mariadb的rpm软件包,自动安装

	注意点:阿里云提供的yum仓库,和epel源仓库,它也有mariadb,但是版本可能会很低
	
	这个是yum默认的mariadb的版本信息
	mariadb                     x86_64                     1:5.5.60-1.el7_5                      base                     8.9 M
	
	
	那我们就得选用mariadb的官方yum源,

3.配置官方的mariadb的yum源,手动创建 mariadb.repo仓库文件  (此步重要!!!!!!!!!!!)
	touch /etc/yum.repos.d/mariadb.repo 
	然后写入如下内容
	[mariadb]
	name = MariaDB
	baseurl = http://yum.mariadb.org/10.1/centos7-amd64
	gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
	gpgcheck=1

4.通过yum安装mariadb软件,安装mariadb服务端和客户端  (由于是国外镜像源,因此下载速度可能很慢)
yum install MariaDB-server MariaDB-client -y


5.如果下载速度太慢,请删除 mariadb.repo,只是为了使用阿里云的yum源中的mariadb
rm -rf /etc/yum.repos.d/Mariadb.repo 
然后清空yum 缓存
yum clean all 

6.使用阿里云的yum下载  mariadb   (阿里云的mariadb包名是小写的,而官方的是大写的!!!!注意的)
yum install mariadb-server  mariadb -y  

Ubuntu  : 配置好 apt 源之后, 
			apt-get install mariadb-server mariadb-client -y 

7.安装完成后,启动mariadb服务端
systemctl  start/stop/restart/status  mariadb 
systemctl enable mariadb   开机启动mariadb


8.mysql初始化
mysql_secure_installation   这条命令可以初始化mysql,删除匿名用户,设置root密码等等....

MariaDB远程访问设置:
			1.安装mariaDB
			2.登陆到root更新root的host
			3.Grant分配权限
			4.打开防火墙端口设置
			5.检查mariaDb端口设置,修改/etc/mysql/mariadb.conf.d目录下,
					50-server.cnf的bind-address=0.0.0.0
			6.重启服务

从文件中的注释上来看,它主要有这么几个配置文件 
		1. /etc/mysql/mariadb.cnf 默认配置文件, 
		2. /etc/mysql/conf.d/*.cnf 设置全局项的文件 
		3. “/etc/mysql/mariadb.conf.d/*.cnf” 设置与MariaDB相关的信息  
		4. “~/.my.cnf” 设置该账户对应的信息

		这也就是为什么我们在my.cnf做相关设置有的时候不起作用
			(可能在其他配置文件中有相同的项,MySQL最终采用的是另外一个文件中的设置)。 
		根据官方的说法, MariaDB为了提高安全性,
		默认只监听127.0.0.1中的3306端口并且禁止了远程的TCP链接,
						我们可以通过下面两步来开启MySQL的远程服务 
		1. 注释掉skip-networking选项来开启远程访问. 
		2. 注释bind-address项,该项表示运行哪些IP地址的机器连接,允许所有远程的机器连接 


9.设置mysql的中文编码支持,修改/etc/my.cnf 
		1.   
		vi /etc/my.cnf 
		在[mysqld]中添加参数,使得mariadb服务端支持中文
		[mysqld]
		character-set-server=utf8
		collation-server=utf8_general_ci
		2.重启mariadb服务,读取my.cnf新配置
		systemctl restart mariadb 
		3.登录数据库,查看字符编码
		mysql -uroot -p 
		 
		输入 \s  查看编码 
		
10.mysql常用命令
		desc  查看表结构  ===  show full columns from 表名;
		show databases;  === show schemas;  
		create database  数据库名
		create table  表名
		show create  database  库名  		查看如何创建db的
		show create table 表名;			查看如何创建table结构的

		#修改mysql的密码
		set password = PASSWORD('redhat');
		
		#创建mysql的普通用户,默认权限非常低
		create user yining@'%' identified by 'yiningzhenshuai';

		#查询mysql数据库中的用户信息
		use mysql;
		select host,user,password  from user;


11.给用户添加权限命令
grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限

grant all privileges on *.* to yining@'%';  给yining用户授予所有权限

revoke delete on 数据库.*  from 用户;   撤销权限


flush privileges;		刷新授权表

12.授予远程登录的权限命令				(root不能远程登录的问题??)
grant all privileges on *.* to yining@'%';  给yining用户授予所有权限


grant all privileges on *.* to root@'%' identified by 'redhat';  #给与root权限授予远程登录的命令


此时可以在windows登录linux的数据库

mysql -uyining -p  -h  服务器的地址  			连接服务器的mysql


13.学习mysql的数据备份与恢复 

		1.mysqldump -u root -p --all-databases > /data/AllMysql.dump		导出当前数据库的所有db,到一个文件中
		2.登录mysql 导入数据
			mysql -u root -p 
			>   source /data/AllMysql.dump 
			
		3.通过命令导入数据
		mysql -uroot -p  < /data/AllMysql.dump  #在登录时候,导入数据文件,一样可以写入数据

		配置文件的格式
		*.conf 
		*.cnf 
		*.ini 
		*.yml 


mysql的主从复制架构,
		需要准备两台机器,并且可以通信,安装好2个mysql,保持版本一致性 
		mysql -v 查看数据库版本
		 
		1.准备主库的配置文件  /etc/my.cnf 
		写入开启主库的参数
			[mysqld]
			server-id=1 			#标注 主库的身份id
			log-bin=s15mysql-bin		#那个binlog的文件名

		2.重启mairadb,读取配置文件
			systemctl restart mariadb 

		3.查看主库的状态
			mysql -uroot -p 

			show master status;  #这个命令可以查看 日志文件的名字,以及数据起始点 

		4.创建用于主从数据同步的账户
		create user 'yuanhao'@'%' identified by 'yuanhaobuxitou';
			注意: 用户名 字符中 不可存在 横杠 ‘-’, 下划线可以。


		5.授予主从同步账号的,复制数据的权限
		grant replication slave on *.* to 'yuanhao'@'%';

		6.进行数据库的锁表,防止数据写入

		flush table with read lock;

		7.将数据导出 
		mysqldump -u root -p --all-databases >  /opt/zhucong.dump

		8.然后将主库的数据,发送给从库
		scp /opt/zhucong.dump   root@从库:/opt/

		9.此时去从库的mysql上,登录,导入主库的数据,保持数据一致性
		mysql -uroot -p 
		source /opt/zhucong.dump 
	在CNF文件中,它应该是 log-bin 不是log_bin  
		但在系统变量,比如show variables like 'log_bin' 的时候是 log_bin 
				如果用错显然是不对的。 在不同场合下使用。


从库的配置
		1.写入my.cnf,从库的身份信息
		vi /etc/my.cnf 
		[mysqld]
		server-id=10

		2.检查一下主库和从库的 参数信息 

		show variables like 'server_id';   # 注意: 不可是 'server-id'
		show variables like 'log_bin';     #        不可是 'log-bin'

		3.通过一条命令,开启主从同步
		change master to master_host='192.168.0.101',
		master_user='forever_dump',
		master_password='forever_dump666666',
		master_log_file='mysql-bin.000001',
		master_log_pos=760;

		4.开启从库的slave同步
		start slave; 

		5.查看主从同步的状态
		show slave status\G;  

		6.查看两条参数 ,确保主从正常
		            Slave_IO_Running: Yes
		            Slave_SQL_Running: Yes
	从库中断数据 :
			stop slave;
		清掉同步信息:
			reset slave all;
https://www.cnblogs.com/gomysql/p/5852607.html

MySQL关闭自动commit(autocommit)
		https://www.jianshu.com/p/b13ec76117c4



*********************   MySQL 8.0 ************************

************************注意注意注意注意注意注意**********	

MYSQL 8.0内新增加mysql_native_password函数,通过更改这个函数密码来进行远程连接。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY'MyPass@123';
		create user UserName;  # 创建用户
		drop   user UserName;  # 删除用户


		alter user suosuo@'%' identified by'123456';  #  修改用户密码
		alter user suosuo identified by'123456';      #  修改用户密码

MySQL修改root密码的多种方法:
		https://www.cnblogs.com/liufei88866/p/5619215.html

Windows 下 MariaDB (zip 免安装) 的手动安装与使用:
		https://blog.csdn.net/joyous/article/details/78641361
		

					
********************************     Redis  ****************************************

在linux安装redis
	通过源码编译安装redis
1.下载源码包
	wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2.解压缩redis
	tar -zxf redis-4.0.10.tar.gz
3.进入redis源码,直接可以编译且安装
	make && make install 
	
4.可以指定配置文件启动redis
		vim /opt/redis-4.0.10/redis.conf 
		
		1.更改bind参数,让redis可以远程访问
			bind 0.0.0.0
		2.更改redis的默认端口
			port 6380
		3.使用redis的密码进行登录
			requirepass 登录redis的密码
		4.将server 进程 设为 后台运行, 是否是守护进程运行方式运行 ,默认 为 no
			daemonize  yes ,  
			daemon: 守护进程
		5.开启保护模式
				protected-mode yes
			(1)redis没有用户概念,redis只有密码
			(2)redis默认在工作在保护模式下。不允许远程任何用户登录的(protected-mode)

		6.指定配置文件启动

			redis-server redis.conf 

			测试 是否可以 ping 通:
				桥命令 pnig  , 回答 为pong  代表 可以 通 
		
5.通过新的端口和密码登录redis
redis-cli -p 6380
登录后
auth 密码

redis还支持交互式的参数,登录数据库
redis-cli -p 6380  -a  redis的密码  (这个不太安全)

6.通过登录redis,用命令查看redis的密码
config set  requirepass  新的密码     	#设置新密码
config get  requirepass  			#获取当前的密码


过滤出文件的空白行和注释行
grep -v "^#"  redis.conf |   grep  -v "^$"



 **************    redis 命令  *******************
 type key :  查看类型 
    increment :增加   ---> incr  number
    decrement : 减少  ---->decr  number 

    intersection : 交集 ----> sinter  s1  s2 
	Difference set : 差集 ---> sdiff   s1  s2   
	union : 并集  ----------> sunion  s1  s2 

有序集合 :  都是以z开头的命令



********************  redis 发布订阅  ****************
	subscribe :订阅
	publish   : 发布


****************** 持久化  ************************
》》 rdb 持久化:


bind 10.0.0.10  127.0.0.1    #redis绑定地址
port 6377
daemonize yes
logfile /data/6377/redis.log
save 900 1                    #rdb机制 每900秒 有1个修改记录
save 300 10                    #每300秒        10个修改记录
save 60  10000                #每60秒内        10000修改记录
dbfilename  dbmp.rdb        #rdb持久化文件
dir /data/6377              #定义持久化文件存储位置
requirepass redhat            #redis登录密码

*************    注意   大坑  ****************
redis  配置文件  中的注释 必须要单独另起一行 , 
		不允许在相同有效代码行后添加注释,其会把后面的注释当成当前行命令传入参数去编译执行;
				而该命令配置没有参数传入或传入的参数格式错误自然就报错了

daemonize yes
port 6377
logfile /data/6379/redis.log
dir /data/6377
dbfilename  aof.rdb
save 900 1
save 300 10
save 60  10000
appendonly yes
appendfsync 



daemonize yes
port 6377
logfile /data/6377/redis.log
dir /data/6377
dbfilename  dbmp.rdb
save 900 1                    
#rdb机制 每900秒 有1个修改记录
save 300 10                    
#每300秒        10个修改记录
save 60  10000                
#每60秒内        10000修改记录

**************************  主从同步 **************************
	slaveof 127.0.0.1 6380   : 表明主库
	slaveof no one           : 接触 从 库绑定
	info replication         : 检查 主从状态
查看主从同步信息: redis-cli -p 6366 info replication 



*************************  哨兵集群 *********************
	Sentinel: 哨兵
监控 redis 是否运行良好, 并自动进行  自动故障转义
redis的一个进程,但是不存储数据,只是监控redis

查看  sentinel 的状态: redis-cli -p 26369 info sentinel



************************  redis-cluster  *******************
		https://www.cnblogs.com/PatrickLiu/p/8458788.html
	slot  : 槽位
	cluster : 集群

	redis-trib.rb create --replicas 2  127.0.0.1:7021 127.0.0.1:7022 127.0.0.1:7023 127.0.0.1:7024 127.0.0.1:7025  127.0.0.1:7026


	apt install gcc patch libffi-dev python-dev  zlib-dev bzip2-dev openssl-dev ncurses-dev sqlite-dev readline-dev tk-dev gdbm-dev db4-dev libpcap-dev xz-devel openssl openssl-dev -y


posted @ 2019-12-07 15:27  梭梭666  阅读(90)  评论(0)    收藏  举报
返回顶部