二.mysql创建普通用户,权限,远程登录 五.redis的多实例功能 启动多个redis服务端 redis发布订阅
三.mysql数据备份,主从同步 六.redis持久化之 rdb 与 aof 七.RDB持久化模式切换到AOF模式
一.mysql安装
1.yum install mariadb-server
2.通过yum安装的软件,systemctl start/stop/restart/status mariadb
systemctl start mariadb #启动mariadb数据库
3.初始化mariadb
mysql_secure_installation #直接输入这个命令,设置root密码,删除匿名用户等等操作
4.配置myariadb远程登录,可以通过windows,pycharm等客户端进行连接,在远端登录的话,就必须得输入redhat这个密码
grant all privileges on *.* to root@'%' identified by 'redhat';
授予 所有的 权限 在 所有的库.所有的表 用户名@"所有的地址" identified by "密码";
5.刷新授权表,使得权限立即生效
flush privileges;
二.mysql创建 普通用户 权限 远程登录
1. 创建普通用户 create user 用户名@'%' identitied by 'wyc123' 密码为wyc123
查询用户信息 select host ,user ,password from user user 在 mysql数据下面
2.root用户给其他用户授予权限 ---> 刷新权限 flush privileges;
1. grant create on *.* to 用户名@'%' 给予用户创建权限 @所有机器
2.grant create ,select on *.* to 用户名@'%' 给予用户创建和 查询权限
3.grant all privileges on *.* to root@'%' identified by '123'; 给予root 用户所有表数据库 权限
identified by 设置连接时的密码为 123
3.普通用户远程登录
需要root用户给予第三条权限 然后在第二个用户中: mysql -uroot -p -h 192.168.1.105 ip为root用户的ip
密码为权限 第三条 设置的密码
4.linux修改编码
在 etc/my.cnf 文件中修改编码信息
2.修改mysql的配置文件 /etc/my.cnf ,加入以下信息
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
三.mysql数据备份,主从同步
一.数据备份
1.通过命令导出全部数据
mysqldump -u root -p --all-databases > /data/db.dump
2.如果核心文件被删 , 列如mysql数据库 数据库就会无法重启 和登录了
前往/var/lib/mysql/ 下的数据全部删除 然后重启数据库systemctl restart mariadb
3.导入数据库的db文件,在mysql命令行中输入这个命令
登录mysql source /opt/db.dump #这一步是输入的sql语句,在mysql中输入,导入数据
4.第二种方式导入数据,通过mysql命令
mysql -uroot -p < /opt/db.dump
二.主从同步
主 负责 往数据库写数据 从负责记录写的时候的 sql语句 ,变更记录 只读
1.第一步在主数据库中 修改配置文件 /etc/my.cnf 下面添加 :
[mysqld]
server-id=1 #指明主库的身份id为1,主从不一样就行
log-bin=mysqls18-bin #指明binarylog的日志名
2.修改了配置文件,重启mariadb,使得binlog生效 3.登录mysql,检查主库的状态
systemctl restart mariadb show master status;
4.创建一个用户,用于主从同步: create user 'wyc' @'%' identified by 'wyc666'; 密码为wyc666
5.给从库授予权限: grant replication slave on *.* to 'wyc' @'%';
6. 为保证数据不变动, 先将主库的表锁定,防止数据写入: flush table with read lock;
7. mysql dump -u root -p --all-databases > /data/db.dump 导出主库的数据
8.然后将db.dump 文件远程给从库 scp /data/db.dump root@192.168.12.87:/tmp/
9.从库导入 主库的数据 source /opt/db.dump 保证主从的数据 在同一起点
10.解锁主库的表 unlock tables; 开始主从同步 设置 从库的配置文件 /etc/my.cnf [mysqld] server-id=2 重启mysql
11.查看slave机器的身份信息 show variables like 'server_id'; show variables like 'log_bin';
12.通过命令 开启主从同步 命令 在从库中 执行
change master to master_host='192.168.12.96',
master_user='kangchen',
master_password='kangchen666',
master_log_file='mysqls14-bin.000001',
master_log_pos=671; 13.开启slave start slave;
14.show slave status; Slave_IO_Running:Yes Slave_SQL_Running: Yes 如果这两个为yes则成功
四.redis安装配置
1.yum 源码 rpm
yum 快速,间接,高效,解决依赖关系,(自动安装到某个路径,不可控),通过yum安装的软件查询命令
rpm -ql nginx
yum源的软件包可能版本非常低
yum -c /etc/yum.conf --installroot=/usr/local --releasever=/ install love
-c /etc/yum.conf 表示指定yum配置文件地址
--installroot=/usr/local 表示指定自定义的安装目录
2. 源码安装,可扩展第三方的功能(可以指定目录安装, configure --prefix=/opt/python36/)
可以通过官网的最新代码,进行编译安装
1.在线下载redis源码包 wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2.解压缩redis源码包,如果源码包带有.gz结尾,需要通过gzip指令扩展,也就是-z的参数
tar -zxvf redis-4.0.10.tar.gz #解压缩这个文件,且显示解压缩过程
3.切换目录到redis源码包 cd redis-4.0.10
4.由于redis没有configure脚本,直接就有了makefile,因此可以直接编译且安装
make #编译 make install #安装 #此两条命令可以缩写为一条:make && make install
5.编译安装完成后,redis默认会将redis命令添加到环境变量中/usr/local/bin底下
6.启动redis服务端,自定义一个redis.conf vim redis.conf ,写入以下内容(不要加上注释)
port 6379
daemonize yes #后台运行redis 可以不阻塞系统
pidfile /data/6379/redis.pid #将redis进程的id写入到redis.pid这个文件 先创建文件
loglevel notice #日志级别
logfile "/data/6379/redis.log"
dir /data/6379 #配置redis数据存放点
protected-mode yes #redis3.0之后的安全模式
requirepass qiangdademima #给redis添加密码
redis的安全模式,可能会阻挡你远程连接,为了解决这个安全模式,给redis设置一个密码
redis -cli -h 192.168.1.114 远程连 的客服端 上后 ping 如果不通 需要 通过auth qiangdademima 连一下
-a 参数意思是指定redis的密码登录
五.redis的多实例功能,可以在一个机器上,启动多个redis服务端
rm redis.conf redis.conf.db grep -v '^#' redis.conf.db | grep -v '^$' >redis.conf 第二个 "^$" 表示空白
cp redis.conf redis-6380.conf 复制一个配置文件
1.准备一个新的配置文件,redis默认支持多实例,再准备一个新的配置文件redis-6380.conf,内容如下:
port 6380
bind 0.0.0.0
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dir /data/6380
protected-mode yes
requirepass zeiqiangdademima
2.启动第二个redis实例(第二个数据库)
redis-server redis-6380.conf
8.通过命令查询redis的密码参数
CONFIG get requirepass
redis发布订阅
1.一个发布者,多个订阅者
2.支持正则的匹配订阅者
redis-cli -a qiangdademima #启动1个redis客户端 (订阅者1)
SUBSCRIBE 频道名字
PSUBSCRIBE 频道名* 支持收听多个频道 和正则匹配
redis-cli -a qiangdademima #启动2个redis客户端(订阅者2)
SUBSCRIBE 频道名字
PSUBSCRIBE 频道名* 支持收听多个频道 和正则匹配
redis-cli -a qiangdademima #启动3个redis客户端(发布者)
PUBLISH 频道名字 想发送的消息
六.redis持久化之 rdb 与 aof
一.RDB持久化模式 将内存中数据写入 磁盘 防止重启redis-server服务时丢失
1.在配置文件中写入参数,支持rdb模式
vim redis.conf 写入以下参数 redis-server redis.conf 再以这个配置启动redis
dbfilename dbmp.rdb 这个文件将写入到 dir 指定文件
save 900 1 每隔900有一次操作就保存
save 300 10
save 60 10000
2.启动redis服务端,此时可以设置redis的key, 通过save命令也可以手动 触发rdb持久化 生成一个 dbmp.rnd文件
二.AOF模式 记录所有 redis 操作命令到日志 再启动时执行记录命令 以达到持久化储存
vim redis.conf2 #写入以下
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec 每秒记录一次 ( always总是记录 ,no)
2.以redis-server redis.conf2 启动服务端,默认就会生成appendonly.aof持久化文件
此时进入redis-cli的操作, 都会被记录,且追加到appendonly.aof文件中,以达到持久化的操作
redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
七.RDB持久化模式切换到AOF模式
CONFIG set appendonly yes #开启AOF功能 此步只是临时开启 AOF 模式 ,想要永久 需要写入 配置文件
CONFIG SET save "" #关闭RDB功能
配置文件写入aof参数
port 6379
daemonize yes
pidfile /data/redis.pid
loglevel notice
logfile "/data/redis.log"
dir /data/
appendonly yes
appendfsync everysec 在以这个配置文件重启 redis服务
八.redis主从复制:
1.环境准备3个redis实例
redis-6380.conf
redis-6381.conf
redis-6382.conf 创建 三个配置文件 区别仅仅是端口的不同修改即可
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dbfilename dump.rdb
dir /data/6380 创建 三个存放data的文件 touch /data/ -p {6380,6381,6382}
protected-mode no
#slaveof 127.0.0.1 6380
2.启动三个redis实例
redis-server 6380.conf
redis-server 6381.conf
redis-server 6382.conf
3.此时可以查看redis身份信息,通过info参数() 此时还未配置主从,因此都是master身份
redis-cli -p 6382 info Replication redis-cli -p 6381 info Replication redis-cli -p 6380 info Replication
4.配置从节点的身份(6380为主,6381,6382为从),通过命令指明master节点信息即可
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380 6381和6381 配置6380为master 主节点
redis-cli -p 6382 info Replication 此时再查看 信息 发生变化 6380身份自动变为master 有两个slave 连接
5.主节点 中set name 后从节点 都同步主节点 的数据了 ,从节点 创建 集合的权限就不足了
6.手动切换主从身份
1.将主节点挂掉 kill -9 主节点 6380
2.将6382去掉slave的身份准备作为主节点 redis-cli -p 6382 slaveof no one
3.将6381设置新的主人,设置为6382 redis-cli -p 6381 slaveof 127.0.0.1 6382
7.通过配置文件 修改主从身份
只需在作为从库的 配置文件 添加一条参数即可 slaveof 127.0.0.1 6380 主库不用配置