部署过程中主要发生一下几个事情,个人认为也是经常出现的问题难点,所以这里以问题的形式进程说明。
1. centos系统的python3-mysql-虚拟环境
的安装及相关配置
这个就不再详细说明,具体参考之前写的文章:
阿里云Linux系统配置python3-虚拟环境-mysql --踩坑实践(Ubuntu系统转centOS7)
2. 项目数据上传服务器及相关配置
文件上传及数据库迁移
- 利用
pycharm
的Tools–>Deployment–>Configuration进入如图1所示界面,在图2中根据服务器情况进行配置。配置完成后将文件上传到服务器。
- 数据库配置:
在服务器上创建数据库,并创建用户及授权
create database mydb charset utf8;
use mydb;
创建用户
create user ‘[用户名称]’@’%’ identified by ‘[用户密码]’;
创建用户。’localhost’,代表只能本地访问,例如root账户默认为‘localhost‘。
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
创建用户。’%’:所有远程主机访问。
mysql> CREATE USER 'finley'@'%' IDENTIFIED BY 'some_pass';
授权
用户授权数据库。*代表整个数据库
GRANT privileges ON databasename.tablename TO ‘username’@’host’ [with grant option ]
with grant option:允许被授予权限的人把这个权限授予其他的人。
一般用不到。实际中,数据库权限最好由 DBA 来统一管理。
mysql> GRANT SELECT,UPDATE ON test to testuser21
授权用户只能本地访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
-> WITH GRANT OPTION;12
授权用户可以远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%'
-> WITH GRANT OPTION;12
– finley对test有所有权限。
mysql> GRANT ALL PRIVILEGES ON test.* TO 'finley'@'%' IDENTIFIED BY 'some_pass';12
-- finley对test有select,delete,update,create,drop权限。
mysql> GRANT SELECT,DELETE,UPDATE,CREATE,DROP ON test.* TO finley@'%' IDENTIFIED BY 'some_pass';12
重新载入赋权表
mysql> FLUSH PRIVILEGES;1
要远程连接,还需要设置/etc/mysql/mysql.conf.d/mysqld.cnf