前言:由于某些原因,在原版ss-panel基础上,进行了一定的修改,不适合大众使用此方法构建,为了我自己备忘而已。当然,除此之外,也供大家参考。
环境:Linux + python + mysql (主从库,每个库与服务都在不同的地域)
个人部署步骤:
1、安装必备软件(如果是7.0以下的版本,安装mysql-server mysql):
# yum install -y mariadb-server mariadb python
2、部署安装pip:
# python get-pip.py
3、部署安装必备的python依赖:
# pip install setuptools cymysql
4、修改从数据库配置文件:
# vim /etc/my.cnf
在[mysqld]下添加:
bind-address=127.0.0.1
server-id=需要与从库和主库不同
5、进入主库,添加一个从库的用户:
SQL> grant replication slave on *.* to 用户名@IP地址 identified by '密码';
SQL> flush privileges;
SQL> show master status;
(记录下log file)
6、导出当前主库的数据库并拷贝至从库:
# mysqldump -u root -p 数据库名 > 123.bak.sql
# scp 123.bak.sql root@IP地址:/root/
7、执行命令启动从数据库并进行修改:
# systemctl start mariadb.service
# systemctl enable mariadb.service
# mysql -u root
SQL> create database 数据库名;
# mysql -u root -p 数据库名 < 123.bak.sql
SQL> grant all privileges on 数据库名.* on 用户名@localhost identified by '密码';
SQL> flush privileges;
SQL> change master to master_host='主库的IP', master_port=3306, master_password='密码', master_user='用户', master_log_file='日志文件', master_log_pos=第五步中的pos;
开启从库:
SQL> start slave;
检查状态:
SQL> show slave status;
如果Slave_IO_Running 与 Slave_SQL_Running 都不为yes,则下面肯定有提示,如果提示Slave_IO_Running为no,并提示log file问题,则可采取的解决方案为:
(1)停止从库:
SQL> stop slave;
(2)进入主库:
SQL> flush log;
SQL> show master status;
(3)进入从库:
SQL> CHANGE MASTER TO MASTER_LOG_FILE='新的日志文件名',MASTER_LOG_POS=pos点;
(4)启动从库:
SQL> start slave;
(5)检测主库的状态(可选):
SQL> show processlist;
8、修改shadowsocks/Config.py文件,修改本地的数据库账号以及密码。
9、启动执行ss进程,即可:
# python server.py m &
附言:
之所以我会这么做,由于地域跨度比较大,ss运行途中,需要频繁读取用户流量剩余量,不如直接读取本地,本地显示用户有剩余流量,就可以使其连接。
所以主库用于签到等流量增改操作,拷贝一份数据库置于节点上,使ss在运行中直接查询访问本地节点的数据库。
而本地节点的用户流量修改,为了数据同步,对ss进行了基本的更改,使其update操作全部发送到主库中,再由主库推送到底下各个从库。
前段时间看过的一篇文章,还不错,分享了:
http://blog.csdn.net/hguisu/article/details/7325124