使用ToughMySQL爲ToughRADIUS系統提供數據存儲

ToughMySQL是一個基於Docker技術的MySQL應用,一開始它就是爲了ToughRADIUS提供一個簡單可靠易用的數據庫服務。

ToughRADIUS默認採用了SqLite存儲數據,通常這足夠運營上千的用戶量了,不過當系統對數據的可管理性,系統的性能有更高的要求時,我們建議採用MySQL數據庫來替換。

功能特性:

  • 實現MySQL Docker容器部署。

  • 提供針對不同服務器配置環境的優化配置。

  • 提供一鍵腳本快速安裝。

  • 提供備份腳本,支持7天以上備份自動刪除。

  • 提供主從,互爲主備的快速配置。

快速指南

備份當前數據庫

如果是首次安裝,可略過,如果是遷移數據庫,則務必進行備份。

安裝腳本

tmshell是一個自動化安裝和管理腳本,通過這個腳本,提供了很多有用的管理功能

$ wget https://github.com/talkincode/toughmysql/raw/master/tmshell -O /usr/local/bin/tmshell
$ chmod +x /usr/local/bin/tmshell
$ tmshell install

直接輸入 tmshell 可以看到支持的指令操作

    usage: tmshell [OPTIONS] instance

        docker_setup                install docker, docker-compose
        pull                        mysql docker images pull
        install                     install default mysql instance
        remove                      uninstall mysql instance
        config                      mysql instance config edit
        status                      mysql instance status
        restart                     mysql instance restart
        stop                        mysql instance stop
        logs                        mysql instance logs
        showmaster                  mysql instance show master status
        showslave                   mysql instance show slave status
        upmaster                    mysql instance update master sync config
        backup                      mysql instance backup database
        dsh                         mysql instance bash term

    All other options are passed to the tmshell program.

完整的安裝過程

安裝過程是一個交互式的過程,根據實際情況修改具體參數

[root@i-jahnm3dt ~]# tmshell install
# 默認創建的mysql數據庫用戶
mysql user [raduser]:
# 默認創建的mysql數據庫用戶密碼
mysql user password [radpwd]:
# 默認創建的mysql數據庫名
mysql database [radiusd]:
# 默認mysqlroot密碼
mysql root password [none]:
# 默認的mysql專用複製用戶密碼
mysql replication password [replication]:
# mysql服務端口
mysql port [3306]:
# 如果打算以熱備模式部署,需要輸入server id
mysql server id [1,2](default none): 1
# mysql服務使用的最大內存
mysql max memary [512M,1G,4G](default none):

ToughMySQL instance config:

instance name: mysql
mysql_user: raduser
mysql_password: radpwd
mysql_database: radiusd
mysql_root_password:
mysql_repl_password: replication
mysql_port: 3306
serverid: 1
mysql_max_mem:


database:
    container_name: db_mysql
    image: "index.alauda.cn/toughstruct/mysql"
    privileged: true
    ports:
        -"3306:3306"
    ulimits:
        nproc: 65535
        nofile:
            soft: 20000
            hard: 40000
        environment:
            - SERVERID=1
            - MYSQL_MAX_MEM=
            - MYSQL_USER=raduser
            - MYSQL_PASSWORD=radpwd
            - MYSQL_DATABASE=radiusd
            - MYSQL_ROOT_PASSWORD=
            - MYSQL_REPL_PASSWORD=replication
    restart: always
    volumes:
        /home/toughrun/mysql/dbmysql:/var/lib/mysql
        /home/toughrun/mysql/backup:/var/backup

Creating db_mysql
  Name          Command         State           Ports
----------------------------------------------------------
db_mysql   /usr/local/bin/run   Up      0.0.0.0:3306->3306/tcp

/home/toughrun/mysql/dbmysql 目錄是映射到主機上的MySQL數據文件目錄

/home/toughrun/mysql/backup 目錄是映射到主機上的備份目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章