Django学习笔记《一》图书管理系统项目挂载到阿里云

项目示例

pycharm编译好的项目

阿里云服务器域名

成果展示
如果不能访问,可能端口已经关闭。

遇到的问题一大堆,大量使用网上文章,如有问题,进行留言联系。

简单做一个记录供自己查阅和检索,以备下次服务器搭建,这样可以减少时间成本。
仅供个人记录使用!本文不是教程
仅供个人记录使用!本文不是教程
仅供个人记录使用!本文不是教程

选择的是cento7的云系统

Linux yun 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 
12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

首先默认没有python3,用官网的安装,安装好了有没有pip3没办法安装django和pymysql。亲测成功!

解决方案:https://www.aliyun.com/jiaocheng/527141.html

1.安装依赖包bzip2

安装anaconda前,要先安装个解压缩工具bzip2,打开阿里云ECS实例的远程连接,输入下面命令,即可完成安装:

yum install bzip2

2.安装anaconda3

(1)下载anaconda3安装包,输入命令:

wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh

如果速度慢的话,可以在本地下载后,上传到服务器root目录里。


阿里云安装python3的极简方法_Python

(2)安装anaconda3,根据以下屏幕提示依次完成。

输入命令:sh Anaconda3-4.3.1-Linux-x86_64.sh


阿里云安装python3的极简方法_Python

阿里云安装python3的极简方法_Python

慢敲回车ENTER键,47下左右,屏幕提示是否接受许可协议?输入yes。

输入指定安装路径:/usr/local/anaconda3


阿里云安装python3的极简方法_Python

屏幕提示是否将安装路径写入PATH环境变量,输入yes,回车,安装完成。


阿里云安装python3的极简方法_Python

重新登录远程连接,输入python,默认即是python3.6版本啦,是不是极其简单呢?


阿里云安装python3的极简方法_Python
TIPS:1.安装python的依赖包。参考链接

安装python或者anaconda前,可能需要先安装一些依赖包(例如解压工具bzip2),否则会报错。

已知的一些常用依赖包如下,可根据需要选择安装:

在 CentOS/RHEL/Fedora 下:

sudo yum install readline readline-devel readline-static
sudo yum install openssl openssl-devel openssl-static
sudo yum install sqlite-devel
sudo yum install bzip2-devel bzip2-libs

在 Ubuntu下:

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

2.为什么很多应用都安装在/usr/local目录下?参考链接

答案是:Automake工具定义了下面的一组变量:

Directory variable  Default value
prefix  /usr/local
exec_prefix   ${prefix}
bindir  ${exec_prefix}/bin
libdir  ${exec_prefix}/lib

includedir    ${prefix}/include
datarootdir   ${prefix}/share
datadir ${datarootdir}
mandir  ${datarootdir}/man
infodir ${datarootdir}/info
docdir  ${datarootdir}/doc/${PACKAGE}

而GUN下面绝大部分应用的编译系统都是用automake。

于是乎,你看到的很多很多应用都安装在了/usr/local/目录下。


解决了python3的问题以后mysql默认也没安装!

到官网下载好rpm安装包,附赠我的链接,下载名字的包
RPM Package, MySQL Server
安装教程:https://www.cnblogs.com/shuangzikun/p/taotao_linux_mysql_install.html

较有参考价值的文章:https://blog.csdn.net/a774630093/article/details/79270080

从第四步开始

4、安装之前卸载以前的版本
[root@localhost soft]# rpm -qa | grep mysql
pcp-pmda-mysql-3.10.6-2.el7.x86_64
[root@localhost soft]# rpm -e --nodeps pcp-pmda-mysql-3.10.6-2.el7.x86_64
[root@localhost soft]# rpm -qa | grep mysql
5、开始安装rpm文件 ,顺序是先安装依赖文件再安装client再安装server
安装过程出现如下错误
就需要删除mariadb-libs
执行删除[root@localhost soft]# yum remove mariadb-libs

删除完毕。
安装第一个依赖
mysql-community-common-5.7.21-1.el7.x86_64.rpm
安装第二个依赖
mysql-community-libs-5.7.21-1.el7.x86_64.rpm
安装客户端
mysql-community-client-5.7.21-1.el7.x86_64.rpm
安装服务端
mysql-community-server-5.7.21-1.el7.x86_64.rpm
6、安装完毕开始查看是否启动
[root@localhost soft]# systemctl status mysqld.service
没有启动。
开始启动服务
[root@localhost soft]# systemctl start mysqld
[root@localhost soft]# systemctl status mysqld
看到颜色很深的地方表示启动ok了。
7、查初始root密码
[root@localhost soft]# cat /var/log/mysqld.log | grep 'password'
冒号后面的那一坨就是密码。
8、进入mysql,开始重新设置密码
如果直接输入mysql不行,重新连接xshell试试,我一开始也一直报错,就是进入不了mysql,很尴尬。
就像这样。我断开连接之后,后面不知道咋的又好了。
[root@localhost ~]# netstat -tulpn
查看mysql运行状态,如果有33006端口表示服务正在运行
--------进入mysql mysql -uroot -p
输入上面的初始密码。
现在还不能做别的操作,先修改初始密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '117949255';
如果遇到这种问题
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
执行
mysql> set global validate_password_policy=0;
mysql> global validate_password_length=1;
再次执行
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '117949255';
ok,密码就改成了后面的了。
可以退出重新登录看看。
mysql> quit
8、设置远程连接
[root@localhost ~]# systemctl restart mysqld 重新启动服务
[root@localhost ~]# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '117949' WITH GRANT OPTION;
设置远程连接,后面的数字是密码,可以改变。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
遇到同样的问题同样的解决方法。
设置ok之后,可以连接试试
ok啦。
心得:刚开始安装的时候走了弯路,拿起哥教程就开始搞,高了很久一直报错,后来才发现数据库版本不对,解压之后也没有安装mysql,去花费了大量时间去配置/etc/my.cnf ,到头来还是没有鸟用,哎,开头都错了,怎么搞都是gg。

安装的环境基本搞定了!再就是使用navicat连接阿里云mysql

这里需要配置的比较多,很容易出错

首先开放端口,添加用户,添加安全组,如果有防火墙也要关闭

https://blog.csdn.net/antony9118/article/details/77835715

首先创建安全组,然后再安全组中添加规则,如下所示,详情可以参考官方文档
https://helpcdn.aliyun.com/document_detail/25471.html?spm=5176.doc25468.2.4.RfJyPU

这里写图片描述

添加规则之后,再用navicat连,报另一条错误

1045 access denied for user'root'@'localhost' using password yes
  • 1

猜想是因为我本地使用root用户登录navicat,而root用户并没有开放外部的访问权限,而是只能localhost访问

下一步登陆mysql数据库,使用命令

这里写图片描述

果然root用户的访问权限是localhost,并不能从外部进行访问,需要手动赋权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
  • 1

好了,这下又报错

 Your password does not satisfy the current policy requirements
  • 1

也就是密码强度不符合,我也是醉了,使用下面的命令可以查看设置的密码强度校验规则

SHOW VARIABLES LIKE 'validate_password%';
  • 1

这里写图片描述

果然是有很麻烦的校验,网上有很多去除这个校验的方法,不过都需要修改配置文件然后重启数据库,个人觉得有点麻烦,还有一种临时办法可以去除密码强度校验(不过下次登录又得用一遍,好处是不需要重启)

set global validate_password_policy=0;
  • 1

好了,再输入上面的对root用户赋权的命令,大功告成

这里写图片描述

OK,到这里,服务器的3306端口也对外开放了,root用户也可以从外部进行访问了,navicat连接成功

大致到这里解决了很多问题,当然有的问题,也要百度。下面说一下setting.py的配置

数据库的配置

DATABASES = { 'default': {                                                                                              'ENGINE': 'django.db.backends.mysql','NAME': 'book_manager',这个是你数据库的名字,连接上数据库后,你要先创建'USER': 'root','PASSWORD': 'xxxx',这个密码是数据库root用户的密码'HOST': '39.107.87.114',这个host是你公网的host'PORT': '3306'这个端口是数据库默认端口,需要在安全组里面打开}   
}

连接配置

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']这是允许所有用户都可以访问!因为是自己学习使用,所以也没有那么多严格的限制

怎么运行项目

python manage.py runserver 0.0.0.0:8000

其他问题

MySQL 5.7 Access denied for user ‘root’@‘localhost’ (using password YES)

这个问题不要按照网上的操作进行设置,首先还是检查自己密码的问题

# service mysqld restart 报错 Redirecting to /bin/systemctl restart mysqld.service

解决办法

使用如下命令操作mysql:
systemctl restart mysqld.service
systemctl start mysqld.service
systemctl stop mysqld.service

ModuleNotFoundError: No module named '_ctypes’报错

这个操作要进入root用户!进行安装
可参考网上教程:https://blog.csdn.net/qq_36416904/article/details/79316972

http://blog.51cto.com/maoxiaoxiong/2172785

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 学习笔记09字符串相关函数

相关介绍: concat函数使用,拼接字符串 大小写转换函数 length函数,统计字符串长度(字节数) replace 函数,字符串内容替换: substring函数使用,字符串截取 综合使用&#…

数据库学习笔记

学习笔记 一篇文章看懂数据库原理 原文链接 译文链接 数据库面试题 数据库面试题

CSDN-markdown编辑器语法速查手册

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

mysql 学习笔记10 常用数学函数

概述: abs的使用,取绝对值 select abs(-100); 返回100ceiling,向上取整, floor,向下取整 format函数,设置小数显示位数,与round函数类似 least函数,取参数中的最小值mod函数&#xf…

mac给服务器传送文件

文章目录从本地将文件传输到服务器从本地将文件夹传输到服务器将服务器上的文件传输到本地将服务器上的文件夹传输到本地从本地将文件传输到服务器 scp【本地文件的路径】【服务器用户名】【服务器地址】:【服务器上存放文件的路径】 scp /Users/mac_pc/Desktop/te…

mysql 学习笔记 11过程控制

概述: if举例: 如果conm等于null,就返回0,否则返回conm 使用if参与运算,这样就避免了conm为null时候,无法参与运算的情况 ifnull举例: select case when expr1 then expr1_res when expr2 then expr2_res…

MySQL中my.cnf解析

原文出处:进行重新排版 http://database.51cto.com/art/201108/285365.htm . [client] . port 3309 . socket /home/mysql/mysql/tmp/mysql.sock . [mysqld] . !include /home/mysql/mysql/etc/mysqld.cnf #包含的配置文件 ,把用户名,密码…

mysql学习笔记12 其他函数

1.概述: 举例: 查询用户 mysql> select user(); -------------------- | user() | -------------------- | root192.168.135.1 | --------------------显示当前所用数据库 mysql> select database(); ------------- | database() …

CSDN-markdown编辑器

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

mysql 学习笔记13 查询语句强化

使用控制语句计算员工年工资 查询入职时间,晚于1982年1月1日的,(日期是可以进行比较的) where中like的使用 select name, sal from users where like S%; select name, sal from users where like __O%;order by,使用…

mysql学习笔记14 多表查询初步

对数据分组的总结 举例:统计各个部门的平均工资,并且是大于1000的,并且按照平均工资从高到底排序 mysql> select avg(stsal) as myavgsal, stdepno from staff group by stdepno having myavgsal > 1000 order by myavgsal desc; ----…

SSH加密密码中的非对称式密码学

转 wiki https://zh.wikipedia.org/zh-cn/公开密钥加密 公开密钥密码学 (英语:Public-key cryptography),也称为非对称式密码学(英语:asymmetric cryptography),是密码学的一种算…

mysql 学习笔记 多表查询02

把一张表 想象成两张表,进行多表查询 举例: 查询 所有员工的 姓名 以及 其 上级姓名 select s1.stname, s2.stname from staff as s1, staff as s2 where s1.stmgr s2.stid;查询 员工李岩的 上级姓名 select s1.stname, s2.stname from staff as s1…

Mac Redis安装入门教程

redis安装(mac) brew install redis 如果需要后台运行 redis 服务,使用命令 brew services start redis 如果不需要后台服务,则使用命令 redis-server /usr/local/etc/redis.conf 启动redis服务 执行以下命令 /usr/local/bin…

Shell 脚本基础学习

查询手册 菜鸟教程 for循环和seq的使用 echo "method 1" for i in seq 1 10; doecho $i; doneecho "method 2" for i in {1..10} doecho $i; doneecho "method 3" for i in seq 1 2 10; doecho $i; done进入目录创建文件重定向内容 cd Test …

mysql 学习笔记15 子查询

子查询定义&#xff1a; 单上子查询举例&#xff1a; 显示与 员工 关平 同一部门的员工&#xff0c; 但不包括关平 select * from staff where staff.stdepno (select staff.stdepno from staff where stname关平) and staff.stname<> 关平 ;多行子查询举例&#xff…

shell自学笔记

文章目录重定向数值比较逻辑操作符使用范围关于文件判断测试表达式test [] [[]] (())的区别sed教程AWK教程重定向 0表示标准输入 1表示标准输出 2表示标准错误输出 默认为标准输出重定向&#xff0c;与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. &…

ffmpeg简单使用小记

1. 使用ffmpeg 进行普通切片&#xff08;ts&#xff09;操作 .\ffmpeg.exe -i a.mp4 -y -f hls -c copy -hls_time 10 .\s.m3u82. 使用ffmpeg 对视频进行设置旋转参数为0 .\ffmpeg.exe -i a.mp4 -metadata:s:v:0 rotate0 -c copy outputfile.mp43. 使用文件对视频进行加密 .\…

python3安装教程配置配置阿里云

配置全新阿里云 Linux iz2ze0ajic0vbvwnjhw2bwz 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 安装依赖包 wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc1.tar.xz 新建一个文件夹存放python3 mkdir /u…

python 使用requests模块进行 视频文件的下载

公司项目需要下载一批视频文件&#xff0c; 格式是mp4和mkv的&#xff0c;就借助request模块进行了下载&#xff0c;前提是源服务器返回文件的大小&#xff0c;以及可以接受 请求头headers中带有Range参数 以下是下载逻辑&#xff1a; resp requests.head(urlreal_video_url)…