Centos7 部署項目環境配置及基本命令

Centos7基本命令

  • 查看CPU相關信息

    lscpu
    
  • 查看IP地址

    cat /etc/hosts
    
  • centOS系統更新命令

    yum -y update
    
  • 查看當前活動用戶

    w # 
    
  • 查看內存使用情況

    free -m
    
  • 查看內核/操作系統/CPU等信息

    uname -a
    
  • 查看計算機名

    hostname
    
  • 查看操作系統信息

    cat /etc/os-release
    
  • 安裝vim

    yum -y install vim*
    
  • 安裝wget

    yum -y install wget
    
  • 安裝net-tools工具

    yum install net-tools
    
  • 查看端口占用

    netstat -tlnp|grep 80
    
  • 一次性的清除占用80端口的程序

    lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
    
  • 手工終止進程的運行

    kill 5014
    kill -9 5014  # 強制停止
    
  • 開啟端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    
    命令含義:
    
    –zone #作用域
    
    –add-port=80/tcp #添加端口,格式為:端口/通訊協議
    
    –permanent #永久生效,沒有此參數重啟后失效
    
  • 防火墻設置

    systemctl status firewalld  #查看防火墻狀態 Active 屬性
    
    firewall-cmd --reload #重啟firewall
    
    systemctl stop firewalld.service #停止firewall
    
    systemctl disable firewalld.service #禁止firewall開機啟動
    
    * 防火墻打開特定端口
      
        ```bash
        # --permanent永久生效,沒有此參數重啟后失效
        firewall-cmd --zone=public --add-port=8080/tcp --permanent
        # 重新載入防火墻
        firewall-cmd --reload
    

centOS7 連接網絡

  • 網絡相關命令

    ip addr  # 查看網絡信息
    ifconfig # 查看網絡信息
    systemctl restart network.service # 重啟網絡
    
  • 查看網絡配置

    cat /etc/sysconfig/network-scripts/ifcfg-lo
    

Java安裝及環境配置

  • 首先準備Linux版的java安裝包,上傳到服務器

  • 創建安裝目錄

    mkdir /usr/local/java/
    
  • 解壓至安裝目錄

    tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
    
  • 設置環境變量

    • 打開文件

      vim /etc/profile
      
    • 在profile文件末尾添加

      export JAVA_HOME=/usr/local/java/jdk1.8.0_171
      export JRE_HOME=${JAVA_HOME}/jre
      export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
      export PATH=${JAVA_HOME}/bin:$PATH
      
    • 使環境變量生效

      source /etc/profile
      
    • 添加軟鏈接

      ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
      
  • 檢查java -version和javac命令

  • 啟動jar包,并后臺運行

    nohup java -jar XXXXXX.jar &  # 啟動jar包并后臺運行
    
    ps aux|grep XXXXX.jar  # 查看jar包占用的端口
    
    kill -9 端口號  # 殺死進程
    

Maven安裝及環境配置

  • 下載maven

    • wget方法

      wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
      
      yum -y install apache-maven
      
    • 一般下載

      http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/
      
  • 創建安裝目錄

    mkdir /usr/local/maven3/
    
  • 解壓至安裝目錄

    tar zxf apache-maven-3.6.0-bin.tar.gz -C /usr/local/maven3/
    
  • 設置環境變量

    • 編輯環境變量文件

      vi /etc/profile
      
    • 在文件末尾添加

      export M2_HOME=/usr/local/maven3/apache-maven-3.6.0
      export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
      
    • 使環境變量生效

      source /etc/profile
      
  • 檢查是否生效 mvn -v 命令

  • 打開maven安裝目錄conf文件下setting.xml文件,找到對應的xml標簽設置

    • 配置阿里鏡像

        <mirrors>
          <mirror>
              <id>nexus-aliyun</id>
              <mirrorOf>central</mirrorOf>
              <name>Nexus aliyun</name>
              <url>http://maven.aliyun.com/nexus/content/groups/public</url>
          </mirror>
        </mirrors>
      
    • 配置docker-maven-plugs 打包

        <pluginGroups>
              <pluginGroup>com.spotify</pluginGroup>
        </pluginGroups>
      
  • 在根目錄下構建鏡像

    mvn clean package -Dmaven.test.skip=true
    
  • mvn 打包(由于項目模塊之間存在依賴關系,所以打包只能整體打包)

    mvn clean   # 清空
    mvn package  # 打包
    

Git安裝及環境配置

  • 使用yum命令安裝,

    yum install git
    

    安裝過程中有提示選項,輸入y,回車繼續安裝

  • 生成秘鑰,生成過程中的選項按三下回車,不用輸入

    ssh-keygen -t rsa -C "您的email"
    
  • 秘鑰生成好之后,打開文件,復制秘鑰設置到倉庫中

    vim /root/.ssh/id_rsa.pub
    
  • Git 基本命令

    • 查看當前倉庫修改的文件

      git status
      
    • 撤回文件修改

      git checkout 文件名
      
  • git 命令切換分支

    • 查詢本地當前分支

      git branch -a
      
    • 查詢遠端分支

      git branch -r
      
    • 如果不匹配需要執行下面的命令

      git pull
      
    • 然后再執行 git branch -a 命令 ,其中帶* 符號的分支就是當前所在地分支

      [root@localhost backstage-cloud]# git branch -a
      * backstage-cloud-v1.0
        remotes/origin/master
      
    • 切換分支命令,格式為本地分支名,對應遠端分支名

      git checkout -b backstage-cloud-v1.2-dev origin/backstage-cloud-v1.2-dev
      
    • 執行成功提示

      Branch backstage-cloud-v1.2-dev set up to track remote branch backstage-cloud-v1.2-dev from origin.
      Switched to a new branch 'backstage-cloud-v1.2-dev'
      
    • 再執行查詢分支命令,可以看到分支已經切換成功

      [root@localhost backstage-cloud]# git branch -a
        backstage-cloud-v1.0
      * backstage-cloud-v1.2-dev
        remotes/origin/HEAD -> origin/backstage-cloud-v1.0
        remotes/origin/master
      
      

Docker安裝及環境配置

  • 卸載舊版本docker

    sudo yum remove docker  docker-common docker-selinux docker-engine
    
  • 安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  • 設置yum源

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  • 可以查看所有倉庫中所有docker版本,并選擇特定版本安裝

    yum list docker-ce --showduplicates | sort -r
    
  • 安裝docker

    sudo yum install docker-ce  #安裝最新版docker
    sudo yum install <FQPN>  # 選擇版本安裝,例如:sudo yum install docker-ce-17.12.0.ce
    
  • 啟動并加入開機啟動

    sudo systemctl start docker
    sudo systemctl enable docker
    
  • 啟動/關閉/重啟docker

    systemctl start docker # 開啟docker
    systemctl restart docker # 重啟docker
    systemctl stop docker # 關閉docker
    
  • 驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

    docker version
    
  • 安裝安裝 docker-compose(該版本需要去GitHub確認,是不是最新版本)

    sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
    
  • 配置

    sudo chmod +x /usr/local/bin/docker-compose
    
  • 檢查是否安裝成功

    docker-compose --version
    
  • 刪除為none的鏡像

    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
    docker iscses|grep none|awk '{print $3 }'|xargs docker rmi
    
  • 根據docker-compose.yml服務的編排啟動docker文件

    docker-compose up -d
    
  • 查看docker容器運行狀態配置信息(IP地址等)

    docker inspect 容器ID
    
  • 查看所有鏡像

    docker iscses
    
  • 查看網絡模式

    docker network ls
    
  • 查看所有在運行的容器

    docker ps
    
  • 進入容器命令行(根據鏡像版本選擇)

    docker exec -it 容器id /bin/sh
    
    docker exec -it 容器id /bin/bash
    
    docker exec -it 容器id bash
    
  • 關閉容器和刪除容器

    docker stop 容器id # 停止容器
    docker rm 容器id  # 刪除容器
    
    # 另一種方法
    docker-compose stop 容器id  
    docker-compose rm 容器id
    
  • 刪除鏡像(刪除鏡像前必須先停止刪除容器)

    docker rmi 鏡像id
    
  • 查看docker容器內存占用命令

    docker stats
    
  • 查看容器內部地址

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器id
    
  • 查看容器運行的日志

    docker logs 容器ID
    
    docker logs --since 30m 容器ID # 查看最近三十分鐘日志
    docker logs --tail 300 容器ID  # 查看倒數三白行數據
    
  • docker容器中進行文件編輯(按照不同的環境選擇)

    apt-get update  # 先更新
    apt-get install vim  # 再安裝vim 即可進行文件編輯
    
  • Dockerfile 文件編輯(舉例)

    # 指定鏡像
    FROM openjdk:8u191-jdk-alpine3.9
    
    # 維護者信息
    MAINTAINER ******@gmail.com
    
    # 在新鏡像內部執行的命令,比如安裝一些軟件、配置一些基礎環境,可使用\來換行,當前設置是指定時區,&&支持多命令
    RUN mkdir -p /service-eureka && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    # 設置工作目錄
    WORKDIR /service-eureka
    
    # 設置端口
    EXPOSE 8761
    
    # 將文件復制到鏡像中
    ADD ./service-eureka/target/service-eureka-1.0-SNAPSHOT.jar ./
    
    CMD java -Djava.security.egd=file:/dev/./urandom -jar service-eureka-1.0-SNAPSHOT.jar
    
    
  • docker-compose.yml 文件編輯(舉例)

      #注冊中心
      service-eureka:
        build:
          context: ./
          # Dockerfile文件地址
          dockerfile: ./service-eureka/Dockerfile
        restart: always
        ports:
          # 宿主機映射端口 :容器端口  同一個模塊構建鏡像只要宿主機端口不沖突就行
          - "8761:8761"
        volumes:
          # 宿主機地址 :docker容器地址,映射目錄(容器路徑需要根據dockerfile配置來設置)
          - ./service-eureka/target/:/service-eureka    
        container_name: service-eureka
        hostname: service-eureka  
        iscse: service-eureka
        #    networks:                 #網絡模式
        #      - eureka-net        
        environment:               #環境變量
          SERVER_PORT: "8761"      #自定義參數用于給服務的配置文件傳遞參數
        mem_limit: 400m            #設置容器最大內存
    

Python安裝及環境配置

  • 安裝編譯相關的工具

    yum -y groupinstall "Development tools";
    
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel;
    
    yum install libffi-devel -y;
    
  • 下載安裝包

    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
    
  • 創建文件夾

    mkdir /usr/local/python3/
    
  • 解壓到相關目錄

    tar -xvJf Python-3.7.0.tar.xz -C /usr/local/python3/
    
  • 檢查源碼的依賴合法性

    ./configure
    
  • 編譯安裝

    make && make install
    

Tomcat安裝及環境配置

  • 獲取官方安裝包

    wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
    
  • 創建tomcat安裝文件夾

    mkdir /usr/local/tomcat
    
  • 解壓文件

    tar -zxvf apache-tomcat-8.5.43.tar.gz
    
  • 將tomcat文件移動到 /usr/local/tomcat/下面

    mv apache-tomcat-8.5.43 /usr/local/tomcat/
    
  • 轉到安裝目錄下面

    cd usr/local/tomcat/apache-tomcat-8.5.43/bin/
    
  • 啟動tomcat或關閉tomcat

    ./startup.sh
    ./shutdown.sh
    
  • 配置Manager

    • 編輯apache-tomcat-8.5.43/conf/tomcat-users.xml

      <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
      
    • 編輯編輯 apache-tomcat-8.5.43/webapps/manager/META-INF/context.xml,允許任意 IP 訪問

      <?xml version="1.0" encoding="UTF-8"?>
      <Context antiResourceLocking="false" privileged="true" >
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
        <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
      </Context>
      
    • 訪問 http://ip:端口/manager/html 進入 manager 頁面

RabbitMQ 配置

由于本項目使用的RabbitMQ運行在docker容器中,所以下面的命令需要進入運行rabbitmq容器的內部執行,進入容器內部的命令在上面docker配置中;

  • 外部連接RabbitMQ

    • 建立新的用戶

      rabbitmqctl add_user admin admin                 #新增用戶/密碼(admin/admin)
      rabbitmqctl set_user_tags admin administrator    #給用戶admin配置權限
      rabbitmqctl  set_permissions -p /  admin '.*' '.*' '.*' # 配置admin用戶擁有所有權限
      rabbitmqctl  list_user_permissions admin  # 查看admin用戶擁有的權限
      

      也可以在頁面中配置,使用創建時的用戶登錄,然后配置用戶的賬號密碼為admin/admin,接著點add user,然后點擊用戶名進去,進行兩次set

    • 啟動WEB管理插件

      rabbitmq-plugins enable rabbitmq_management
      
  • 創建新的RabbitMQ容器的時候需要創建賬戶,兩種方法,上面說的是第一種使用命令行進入容器內部創建,另外一種就是進入rabbitMQ的控制頁面進行手動創建:

    • 先進入 IP:15672, 進入管理界面,默認賬號為
    system
    system123
    
    • 然后在admin標簽頁添加賬戶
    • 然后點擊賬戶名,進行權限設定

Nginx安裝及環境配置

  • 安裝Nginx/卸載

    $ sudo yum -y install nginx   # 安裝 nginx
    $ sudo yum remove nginx  # 卸載 nginx
    

    使用yum進行Nginx安裝時,Nginx配置文件在/etc/nginx目錄下。

  • 配置Nginx服務

    $ sudo systemctl enable nginx # 設置開機啟動 
    $ sudo service nginx start # 啟動nginx服務
    $ sudo service nginx stop # 停止nginx服務
    $ sudo service nginx restart # 重啟nginx服務
    $ sudo service nginx reload # 重新加載配置,一般是在修改過nginx配置文件時使用。
    
  • 安裝依賴庫

    • 安裝gcc

      yum -y install gcc gcc-c++ # nginx編譯時依賴gcc環境
      
    • 安裝pcre

      yum -y install pcre pcre-devel # 讓nginx支持重寫功能
      
    • 安裝zlib

      # zlib庫提供了很多壓縮和解壓縮的方式,nginx使用zlib對http包內容進行gzip壓縮
      $ sudo yum -y install zlib zlib-devel 
      
    • 安裝OpenSSL

      # 安全套接字層密碼庫,用于通信加密
      $ sudo yum -y install openssl openssl-devel
      
  • 配置及使用

    • 查看日志

      /var/log/nginx/access.log;  # 運行日志
      /var/log/nginx/error.log;   # 錯誤日志
      
    • 配置Nginx.conf文件,文件位置,/etc/nginx/nginx.conf

      # For more information on configuration, see:
      #   * Official English Documentation: http://nginx.org/en/docs/
      #   * Official Russian Documentation: http://nginx.org/ru/docs/
      
      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      
      # Load dynamic modules. See /usr/share/nginx/README.dynamic.
      include /usr/share/nginx/modules/*.conf;
      
      events {
          worker_connections 1024;
      }
      
      http {
          # log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
          #                  '$status $body_bytes_sent "$http_referer" '
          #                  '"$http_user_agent" "$http_x_forwarded_for"';
      
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host '
                              '$status $request_length $body_bytes_sent "$http_referer" '
                              '"$http_user_agent"  $request_time $upstream_response_time';
      
      
      
          access_log  /var/log/nginx/access.log  main;
      
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 2048;
      
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
      
          # Load modular configuration files from the /etc/nginx/conf.d directory.
          # See http://nginx.org/en/docs/ngx_core_module.html#include
          # for more information.
          include /etc/nginx/conf.d/*.conf;
      
          upstream scs-service {
              ip_hash; # 基于IPhash算法,保持session一致性
              # 網關地址
              server 172.19.0.10:8762 weight=1 max_fails=3 fail_timeout=30s;
              server 172.19.0.8:8763 weight=1 max_fails=3 fail_timeout=30s;
      
          }
      
          server {
              listen       80 default_server;
              # listen       [::]:80 default_server;
              server_name  localhost;
              root         /usr/share/nginx/html;
      
              # Load configuration files for the default server block.
              include /etc/nginx/default.d/*.conf;
      
              location /scs-service/ {
              proxy_pass http://scs-service/;
              proxy_set_header Host $host;
              }
      
              error_page 404 /404.html;
                  location = /40x.html {
              }
      
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
      
      
      # Settings for a TLS enabled server.
      #
      #    server {
      #        listen       443 ssl http2 default_server;
      #        listen       [::]:443 ssl http2 default_server;
      #        server_name  _;
      #        root         /usr/share/nginx/html;
      #
      #        ssl_certificate "/etc/pki/nginx/server.crt";
      #        ssl_certificate_key "/etc/pki/nginx/private/server.key";
      #        ssl_session_cache shared:SSL:1m;
      #        ssl_session_timeout  10m;
      #        ssl_ciphers HIGH:!aNULL:!MD5;
      #        ssl_prefer_server_ciphers on;
      #
      #        # Load configuration files for the default server block.
      #        include /etc/nginx/default.d/*.conf;
      #
      #        location / {
      #        }
      #
      #        error_page 404 /404.html;
      #            location = /40x.html {
      #        }
      #
      #        error_page 500 502 503 504 /50x.html;
      #            location = /52x.html {
      #        }
      #    }
      
      }
                                                             
      
    • 如請求失敗錯誤日志為failed (13: Permission denied),則需要關閉selinux,

      • 臨時關閉selinux

        setenforce 0 # 關閉
        setenforce 1 # 開啟
        
      • 永久關閉

        vim /etc/selinux/config
        

        輸出如下

        # This file controls the state of SELinux on the system.
        # SELINUX= can take one of these three values:
        #     enforcing - SELinux security policy is enforced.
        #     permissive - SELinux prints warnings instead of enforcing.
        #     disabled - No SELinux policy is loaded.
        # SELINUX=enforcing
        SELINUX=disabled
        # SELINUXTYPE= can take one of three values:
        #     targeted - Targeted processes are protected,
        #     minimum - Modification of targeted policy. Only selected processes are protected.
        #     mls - Multi Level Security protection.
        SELINUXTYPE=targeted                 
        
        • 將SELinux status:enable 修改為disabled,需要重啟系統.

Mysql安裝及環境配置

  • MYSQL常用命令:

    # 數據庫連接和基礎操作命令
    mysql -u root -h IP地址 -p  # 根據IP地址連接數據庫
    
    show databases; # 顯示所有數據庫名
    
    use 數據庫名; # 進入數據庫
    
    show tables; # 顯示所有表名
    
    
    # 數據庫屬性和配置
    show full processlist;  # 查看當前鏈接主機
    
    show variables like "max_connections";   # 查看最大連接數                                                                                                                                                                                        
    
    set GLOBAL max_connections=300;  # 設置最大連接數
    
    show global variables like 'wait_timeout';   # 查看設置的全局等待超時時間
    
    set global wait_timeout=300;  # 設置全局超時時間
    
  • Linux中安裝數據庫,操作命令

    • 卸載系統自帶的MariaDB

      • 查看有沒有安裝 mariadb

        rpm -qa|grep -i mariadb
        
      • 卸載mariadb

        rpm -e --nodeps ********
        
      • 刪除my.conf

        rm  /etc/my.conf
        
    • 卸載已安裝的mysql(沒安裝忽略)

      • 查看有沒有安裝mysql

        rpm -qa|grep -i mysql
        
      • 如果有,卸載

        rpm -e *********
        
      • 查看mysql服務

        chkconfig --list | grep -i mysql
        
      • 刪除mysql服務

        chkconfig --del mysql
        
      • 查找mysql分散的文件

        whereis mysql 
        
      • 找到后刪除

        rm -rf /usr/lib/mysql
        
    • 官網下載安裝包 ,下載地址為

      https://dev.mysql.com/downloads/mysql
      
    • 創建用戶組

      groupadd mysql
      
    • 創建一個用戶名為mysql的用戶并加入mysql用戶組

      useradd -g mysql mysql
      
    • 安裝依賴

      yum install perl   
      yum -y install autoconf j
      yum install libaio
      
    • 解壓安裝包

      tar -xvf  ********
      
    • 運行命令進行安裝

      rpm -ivh MySQL-client-5.6.44-1.el7.x86_64.rpm
      
      rpm -ivh MySQL-devel-5.6.44-1.el7.x86_64.rpm
      
      rpm -ivh MySQL-server-5.6.44-1.el7.x86_64.rpm
      
    • 安裝完成后修改密碼

      • 查看服務的狀態

        service mysql status
        
      • 如果是運行狀態,執行關閉命令關閉mysql:

        service mysql stop 
        
      • 執行以下兩個命令來跳過密碼登錄mysql:

        mysqld_safe --user=mysql --skip-grant-tables --skip-networking & mysql -u root -p
        
      • 執行以下命令修改密碼:

        use mysql;
        
        select host,user,password from user;
        
        update user set password=password("root") where user='root';
        
        quit;
        
      • 重啟mysql:

        service mysql restart
        
      • 登錄mysql:

        mysql -uroot -proot 
        
      • 使用mysql數據庫:use mysql

        use mysql 
        
      • 修改密碼(第一次登錄必須修改以下)

        set password = password('root');
        
      • 刷新權限:

        flush privileges; 
        
      • 配置遠程訪問權限。

        grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
        
        flush privileges;
        
        quit;
        
        service mysql restart;
        
      • 新增賬戶(只適用于mysql5.6)

        insert into mysql.user values
        ('localhost', '用戶名', password('密碼'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '', 'N');
         
        insert into mysql.user values
        ('%', '用戶名', password('密碼'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '', 'N');
        
      • 設置mysql開機啟動:

        • 查看服務:

          chkconfig --list mysql 
          
        • 開啟mysql服務自動啟動:

          chkconfig mysql on 
          
  • 使用容器的方式啟動mysql , docker-compose.yml中配置mysql數據庫,配置數據庫主從

      # -----------------mysql-主庫----------------------
      mysql-master:
        command:
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
          --max_allowed_packet=128M
          --default-authentication-plugin=mysql_native_password
        build:
          context: ./
          dockerfile: db/mysql/Dockerfile
        environment:
          MYSQL_ROOT_PASSWORD: iysys01
          TZ: Asia/Shanghai
        restart: always
        container_name: mysql-master
        iscse: mysql-master
        ports:
          - "3339:3306"
    
      # -----------------mysql-從庫----------------------
      mysql-slave:
        command:
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
          --max_allowed_packet=128M
          --default-authentication-plugin=mysql_native_password
        build:
          context: ./
          dockerfile: db/mysql/Dockerfile
        environment:
          MYSQL_ROOT_PASSWORD: iysys
          TZ: Asia/Shanghai
        restart: always
        container_name: mysql-slave
        iscse: mysql-slave
        ports:
          - "3340:3306"
    
  • 數據庫基本信息

    MASTER
    賬號:root
    密碼:iysys01
    端口:3339
    
    slave
    賬號:root
    密碼:iysys
    端口:3340
    
  • docker容器中的mysql主從配置

    • 進入到容器內部

      docker exec -it mysql-master /bin/bash
      
    • 更新容器并安裝vim

      apt-get update  #更新
      apt-get install vim  #安裝vim
      
    • 數據庫關閉和重啟

      service mysqld stop
      service mysql restart
      
    • 配置Mater主數據庫,進入到 /etc/mysql 目錄下,打開my.cnf文件,在文件中添加如下配置

      [mysqld]
      ## 同一局域網內注意要唯一
      server-id=100  
      ## 開啟二進制日志功能,可以隨便?。P鍵)
      log-bin=mysql-bin
      
    • 使用docker命令進入到master中,登錄數據庫執行命令,創建slave用戶和密碼

      CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
      
    • 給創建的用戶授予權限

      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
      
    • 配置slave數據庫,進入到 /etc/mysql 目錄下,打開my.cnf文件,在文件中添加如下配置

      [mysqld]
      ## 設置server_id,注意要唯一
      server-id=101  
      ## 開啟二進制日志功能,以備Slave作為其它Slave的Master時使用
      log-bin=mysql-slave-bin   
      ## relay_log配置中繼日志
      relay_log=edu-mysql-relay-bin  
      
    • 連接主數據庫,執行

      show master status;
      

      返回數據

      File Position
      mysql-bin.000002 617
    • 進入到slave數據庫執行,master_host為主數據庫容器的內部IP地址,同時將上面查詢的參數配置到下面的命令中.

      change master to master_host='172.19.0.12', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000002', master_log_pos= 617, master_connect_retry=30;
      
    • slave執行

      show slave status
      

      返回數據,注意兩個值

      Slave_IO_Running Slave_SQL_Running
      NO NO
    • 執行以下命令開啟主從復制

      start slave
      

      執行成功后上面兩個值為YES

Redis安裝及環境配置

  • redis刪除數據

    redis-cli -h IP -p 端口 -a 密碼
    
    flushall 
    
  • 查詢所有key, 并刪除指定的key

    keys *
    
  • 刪除指定的key

    del key名
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容