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 目錄是映射到主機上的備份目錄