Linux 之mysql redis

一.mysql安装                                                           四.redis安装配置 

   二.mysql创建普通用户,权限,远程登录                        五.redis的多实例功能 启动多个redis服务端       redis发布订阅 

   三.mysql数据备份,主从同步                                       六.redis持久化之 rdb 与  aof              七.RDB持久化模式切换到AOF模式

                                                                                     八.redis主从复制                    

一.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             主库不用配置        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值