Mariadb Redis 的配置使用

Mariadb Mysql 的配置使用

CentOS 7 Mariadb 的學習

  1. 在linux上安裝軟件的方式

    • yum安裝 在線搜索rpm格式的軟件包,進行自動的依賴關係處理,下載,安裝

    ​ (阿里雲的yum倉庫,裏面的軟件都是阿里雲運維工程師定義的)html

    yum install mysql -ypython

    • 手動rpm包安裝 ,須要手動解決N個軟件依賴

    -rpm -ivh mysqlxx.rpmmysql

    • 源碼編譯安裝(這種方式是企業應用最多的)

    ​ (能夠自定製軟件的版本,以及能夠最優先的使用最新版本軟件)linux

  2. yum源的配置**(mysql的 yum 源)**

    • 位置: cd /etc/yum.repos.d/
    1. 在線下載阿里雲的 yum 倉庫,以及epel倉庫

    CentOS-Base.repo epel.reporedis

    1. 安裝mysql的方式

    yum install mysql-server mysql -ysql

    1. 安裝mysql的方式也有2種,阿里雲官方提供的mariadb軟件包,版本可能過低,可是下載網速很快,方便學習使用數據庫

    2. 在企業裏面,多半不會使用阿里雲的mariadb版本,由於版本過低,安全性過低,公司會配置myariadb官方的yum倉庫.django

      • 手動建立mariadb的倉庫文件

      touch Mariadb.repovim

      • 寫入配置信息

      [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1centos

      • 嘗試安裝最新版本mariadb

      yum install mariadb-server mariadb -y

    3. 使用mysql,啓動

      systemctl start mariadb

    4. 初始化數據庫

      mysql_secure_installation

    5. 配置數據庫的中文支持

      • 修改mysql的配置文件,支持中文編碼

        cat /etc/my.cnf 和我一致就行

        [mysqld]
        character-set-server=utf8
        collation-server=utf8_general_ci
        log-error=/var/log/mysqld.log   # 配置文件
        
        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock
        # Disabling symbolic-links is recommended to prevent assorted security risks
        symbolic-links=0
        # Settings user and group are ignored when systemd is used.
        # If you need to run mysqld under a different user or group,
        # customize your systemd unit file for mariadb according to the
        # instructions in http://fedoraproject.org/wiki/Systemd
        
        [client]
        default-character-set=utf8
        
        [mysql]
        default-character-set=utf8
      • 在服務器上,修改了配置文件,都要重啓數據庫服務

        systemctl restart mariadb

      • 在utf8編碼下,配置mariadb

        show create table stu;

        show create database s16;

    6. 在遠程用 mysql客戶端去鏈接服務端,方式有哪些

    ​ 1. navicat ​ 2. cmd
    ​ mysql -uroot -p -h 192.168.15.53 ​ 3. pycharm ​ 4. pymysql python ​ 5. orm django ​

    1. 配置mysql支持遠程鏈接的sql語句

      受權mariadb遠程鏈接

      授予root用戶對全部的庫表全部的權限,在全部的機器上操做,皆可登陸

      grant all privileges on *.* to root@'%' identified by 'zhang123...';

      刷新受權表:

      flush privileges;

    2. 數據庫備份操做

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

      數據導入,方式有2種

      1. mysql -uroot -p < /tmp/db.dump

      2. 進入mysql命令行,輸入source /tmp/db.dump

mysql主從同步技術

  • 主庫操做

  1. 環境準備,準備2臺機器,一個master 一個slave

​ 192.168.15.53 主庫 ​ 192.168.15.94 從庫

  1. 配置主庫的環境

    1. 修改主庫的配置文件,開啓binlog功能

      vim /etc/my.cnf

      [mysqld]        
      server-id=1        
      log-bin=s16-mysql-bin
    2. 重啓數據庫

      systemctl restart mariadb

  2. 建立用於數據同步的帳號

    create user 'zhangfei'@'%' identified by 'zhang123';

  3. 授予這個帳號,一個slave的身份標識

    grant replication slave on *.* to 'zhangfei'@'%';

  4. 鎖表

    flush table with read lock;

    查看 表狀態

    show master status;

  5. 數據庫信息導出

    mysqldump -uroot -p --all-databases  > /opt/db.dump

  • 在mariadb從庫的操做

  1. 阿里雲的源,和官方源,同一安裝軟件包名以下 yum install mariadb-server mariadb -y

  2. 配置從庫的配置文件,開啓server-id vim /etc/my.cnf 寫入以下操做

    [mysqld] server-id=3 read-only=true character-set-server=utf8 collation-server=utf8_general_ci log-error=/var/log/mysqld.log

  3. 重啓數據庫 systemctl restart mariadb

    • 注意數據庫版本

    刪除從庫本身的無用的數據手動drop刪除 從庫導入主庫的數據,保證起始點數據一致 mysql -uroot -p < /db.dump

  4. 在從庫,經過一條命令,開啓主從同步

    mysql > change master to master_host='192.168.15.53',
    master_user='zhangfei',
    master_password='zhang123',
    master_log_file='s16-mysql-bin.000004',
    master_log_pos=785;
  5. 開啓slave同步 start slave ;

  6. 檢查主從同步狀態 show slave status\G

    • 當你檢查這2條參數,yes的時候,主從ok

      Slave_IO_Running: Yes Slave_SQL_Running: Yes

  7. 此時解鎖主庫!!

unlock tables;

  1. 驗證主從同步是否正常 ​ ​ ​

linux redis 學習

  1. 安裝redis的方式 -yum (刪除這個yum安裝的redis,咱們只用源碼編譯安裝的) -rpm -源碼編譯

  2. 刪除本來的redis yum remove redis -y

  3. 下載redis源碼 wget http://download.redis.io/releases/redis-4.0.10.tar.gz

  4. 解壓縮 tar -zxf redis-4.0.10.tar.gz

  5. 切換redis源碼目錄 cd redis-4.0.10

  6. 編譯源文件 make

    • 編譯好後,src/目錄下有編譯好的redis指令
    • make install 安裝到指定目錄,
  7. 默認在/usr/local/bin

  8. 指定redis的配置文件 啓動 redis
    redis-6666.conf 內容以下

    port 6666  		#redis端口
    daemonize yes       #後臺運行redis  
    pidfile /data/6666/redis.pid	# pid號碼
    loglevel notice	#日誌等級
    logfile "/data/6666/redis.log"    #日誌文件存放路徑
    dir /data/6666   #redis數據目錄 
    requirepass haohaio  #redis的密碼
  9. 指定配置文件啓動redis服務端 redis-server redis-6666.conf

  10. 檢查redis的進程,端口 ps -ef |grep redis netstat -tunlp |grep redis

  11. 登陸redis數據庫 redis-cli -p 6666
    登陸後 輸入密碼纔可訪問 auth haohaio

redis發佈訂閱:

  • PUBLISH channel msg 將信息 message 發送到指定的頻道 channel

  • SUBSCRIBE channel [channel ...] 訂閱頻道,能夠同時訂閱多個頻道

  • UNSUBSCRIBE [channel ...] 取消訂閱指定的頻道, 若是不指定頻道,則會取消訂閱全部頻道

  • PSUBSCRIBE pattern [pattern ...] 訂閱一個或多個符合給定模式的頻道,每一個模式以 * 做爲匹配符,好比 it* 匹配所 有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配全部 以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類

  • PUNSUBSCRIBE [pattern [pattern ...]] 退訂指定的規則, 若是沒有參數則會退訂全部規則

  • PUBSUB subcommand [argument [argument ...]] 查看訂閱與發佈系統狀態

  • **注意:**使用發佈訂閱模式實現的消息隊列,當有客戶端訂閱channel後只能收到後續發佈到該頻道的消息,以前發送的不會緩存,必須Provider和Consumer同時在線。

redis持久化之RDB持久化

  1. rdb持久化,能夠手動觸發持久化,經過redis的save命令,觸發

  2. rdb數據文件是壓縮過的 二進制文件,認爲看不懂,redis經過這個文件恢復數據

  3. rdb持久化還有時間策略 save 900 1 # 秒 1個修改類的操做 save 300 10 # 秒 10個操做 save 60 10000 # 秒 10000個操做

  4. 使用rdb持久化的方式,在配置文件中,打開rdb持久化 cat redis-6666.conf
    內容以下

    port 6666
    daemonize yes
    pidfile /data/6666/redis.pid
    loglevel notice
    logfile "/data/6666/redis.log"
    dir /data/6666
    dbfilename redis.dump
  5. 關閉redis服務端,準備重啓 redis-cli -p 6666 -a haohaio shutdown

  6. 使用新的支持rdb持久化的配置文件啓動 redis-server redis-6666.conf

  7. 手動觸發rdb持久化
    經過save指令

  8. 讓配置文件支持按期持久化

    port 6666
    daemonize yes
    pidfile /data/6666/redis.pid
    loglevel notice
    logfile "/data/6666/redis.log"
    dir /data/6666
    dbfilename redis.dump
    save 900 1                    #rdb機制 每900秒 有1個修改記錄
    save 300 10                    #每300秒        10個修改記錄
    save 60  10000 
    ~

redis持久化之aof

  1. 配置redis支持aof持久化 cat redis-6666.conf 內容以下

    port 6666
     daemonize yes
     pidfile /data/6666/redis.pid
     loglevel notice
     logfile "/data/6666/redis.log"
     dir /data/6666
     appendonly yes
     appendfsync everysec
  2. 指定配置文件啓動,支持aof redis-server redis-6666.conf 在第一次啓動的時候,就開啓了aof持久化

  3. 不重啓redis,切換rdb數據到aof數據中

    1. 準備一個rdb的redis數據庫

      port 6666
      daemonize yes
      pidfile /data/6666/redis.pid
      loglevel notice
      logfile "/data/6666/redis.log"
      dir /data/6666
      dbfilename redis.dump
      save 900 1                
      save 300 10        
      save 60  10000
    2. 啓動redis支持rdb的數據庫

    3. 設置redis的數據,手動save觸發持久化,生成持久化數據文件

    4. 經過命令,切換持久化模式 127.0.0.1:6379> CONFIG set appendonly yes #開啓AOF功能 OK 127.0.0.1:6379> CONFIG SET save "" #關閉RDB功能 OK

    5. 修改redis的配置文件,改成aof,便於之後重啓,徹底切換到aof模式 redis-6666.conf內容以下

      port 6666
      daemonize yes
      pidfile /data/6666/redis.pid
      loglevel notice
      logfile "/data/6666/redis.log"
      dir /data/6666
      appendonly yes
      appendfsync everysec
    6. 實驗完畢

      redis-server redis.conf

博客地址: http://www.javashuo.com/article/p-ufazueso-co.html 博客彙總 http://www.javashuo.com/article/p-cglbaabl-eh.html redis

今日做業: 1.完成linux啓動 crm,路飛學城 (優先級最高) 2.完成mysql主從複製技術(爲了寫在簡歷上!) 3.linux運行redis步驟,指定密碼,更改端口 4.練習redis持久化rdb、aof、發佈訂閱

相關文章
相關標籤/搜索