系统:Centos 7
Docker下SQL Server安装
安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
拉取镜像
docker pull mcr.microsoft.com/mssql/server:2019-latest
运行容器
其中SA_PASSWORD设置为SA账户(SuperAdmin)的密码,默认登陆名为sa
docker run --name sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=2019@123' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
至此,安装结束。
Centos 下ODBC驱动的安装
安装依赖
yum install unixODBC-devel freetds
在python虚拟环境中安装依赖
pip install django-pyodbc django-mssql django-pytds django-sqlserver mssql-django six lxml openpyxl PyMySQL pyodbc
配置freetds
nano /etc/freetds.conf
添加如下配置
其中 Server 为Django连接数据库时的HOST
[Server]
host = 127.0.0.1
port = 1433
tds version = 8.0
配置unixODBC
nano /etc/odbcinst.ini
添加如下配置
其中SQL Server 为Django连接时的drive名
[SQL Server]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
FileUsage = 1
执行odbcinst -d -q
查看驱动列表
有SQL Server则为配置成功
[PostgreSQL]
[MySQL]
[SQL Server]
Django 数据库配置
DATABASES = {
"default": {
"ENGINE": "mssql",
"NAME": "数据库名",
"HOST": "Server", # 为前文配置中freetds的配置名
"PORT": "1433", #端口
"USER": "用户名",
"PASSWORD": "密码",
"OPTIONS": {
'driver': 'SQL Server', # 为前文配置中unixODBC的配置名
},
}
}
supervisor uvicorn配置
安装supervisior
pip install supervisor uvicorn
supervisior配置文件
[program:System]
command=/project/sellsystem/bin/python3 -m uvicorn --proxy-headers --workers 4 [yourprojectname].asgi:application
directory=/project/sellsystem/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/server/panel/plugin/supervisor/log/sellSystem.out.log
stderr_logfile=/www/server/panel/plugin/supervisor/log/sellSystem.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d
保存后执行
supervisorctl update #一定要先更新
supervisorctl start System:*
supervisorctl stop System:*
supervisorctl restart System:*
即可启动
nginx配置
server {
listen 80;
server_name localhost
charset UTF-8;
access_log /home/log/test_nginx_access.log;
error_log /home/log/test_nginx_error.log;
client_max_body_size 75M;
location / {
proxy_pass http://127.0.0.1:8000;
}
}