首页 > 数据库 >Centos + Django + Nginx + uwsgi 部署项目-rpm包安装 Mysql 5

Centos + Django + Nginx + uwsgi 部署项目-rpm包安装 Mysql 5

时间:2023-03-24 16:55:38浏览次数:59  
标签:Centos 命令 安装 数据库 mysql Django Nginx Mysql rpm

笔者发觉下面这个方法可能有些缺陷,适合自己的就看下,如果是新开的虚拟机有可能不适用下面的方法,云服务器开的Linux Centos系统应该可以。虚拟机安装Mysql的具体方法,可以看我的参考链接Centos7下安装MySQL详细步骤

@

目录

Django 项目生产环境配套教程链接

Linux - Django + Mysql + Nginx + uwsgi 部署项目 - 安装 nginx 服务器 - (1)

Linux - Django + Nginx + uWSGI 部署项目 - 安装 Python3.x -(2)

Linux - Django + Nginx + uwsgi 部署项目 - 安装 uWSGI 服务器 -(4)


操作系统: Centos 7

一、安装思路与具体实操

一般而言,安装可以使用 tar.gz 安装包安装,也可以启用 rpm 包进行安装,这里安装 Mysql ,是使用 Mysql 的 rpm 包进行安装。

更新一种方法是 使用

1. 查看本机是否安装过了 Mysql 数据库

查看命令如下:

rpm -qa|grep mysql 

无输出说明没有安装,结果如下:

在这里插入图片描述
如果存在,即安装过 mysql ,完全卸载删除 mysql 数据库的方法如下所示:

1.2 rpm 卸载/删除 Mysql 数据库

和之前安装 Mysql 数据库一样,查看命令如下:

rpm -qa|grep mysql

在这里插入图片描述
删除 Mysql 数据库的命令如下:

 rpm -e --nodeps xxx

该命令需要删除每一个 查看命令出现的 Mysql 文件,如下所示:(特别注意,看清楚再删,有可能是和我不一致的,别一直CV大法

 rpm -e --nodeps mysql-community-libs-5.7.40-1.el7.x86_64
 rpm -e --nodeps mysql-community-client-5.7.40-1.el7.x86_64
 rpm -e --nodeps mysql57-community-release-el7-11.noarch
 rpm -e --nodeps mysql-community-server-5.7.40-1.el7.x86_64
 rpm -e --nodeps mysql-community-common-5.7.40-1.el7.x86_64

当然要删除的 Mysql 数据库文件的具体情况,需要看自己电脑显示出来的 Mysql 文件情况!!!

最后再使用查看 Mysql 命令检查是否仍存在 Mysql 数据库,如下:

rpm -qa|grep mysql

在这里插入图片描述

1.2.1 删除所有与mysql关联的目录

查找与 mysql 关联的目录命令如下:

find / -name mysql

重点是如下的目录,出现权限不够问题,不用理会。

find: ‘/run/user/1000/gvfs’: 权限不够
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql

删除关联的目录命令

rm -rf  /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql

1.3 删除 mariadb

检查是否存在 mariadb 数据库(内置的MySQL数据库),有则强制删除

rpm -qa|grep mariadb

无任何显示,即不存在 mariadb ,结果如下:
在这里插入图片描述

如果存在 mariadb ,那么则删除掉,命令如下:(可以用运算符 && 连接在一起运行)

 rpm -e --nodeps mariadb-server
 rpm -e --nodeps mariadb
 rpm -e --nodeps mariadb-libs
 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
 rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64 

2. 查找本机系统的版本,wget 命令下载该对应操作系统版本的 rpm 包

查看本机操作系统版本

cat /etc/redhat-release

Mysql - rpm包下载链接:传送门

3. 对 yum 存储库进行指定8.0版本禁用,安装5.7版本的mysql

使用MySQL Yum存储库时,默认情况下会选择最新的GA系列(当前为MySQL 8.0)进行安装

如果您的平台支持 yum-config-manager,则可以通过发出以下命令来实现,这些命令将禁用8.0系列的子存储库,并启用5.7系列的子存储库。

假如在操作系统中没有yum-config-manager这个命令,则需要安装下,安装命令如下:

yum -y install yum-utils

3.1 查看当前的 yum 指定的Mysql 存储库版本

命令 1:(推荐相对准确些)如果这两条命令没有显示任何东西,那么请看下面的mysql源错误补充更新需要下载 mysql 源和安装 mysql 源

yum repolist enabled | grep "mysql.*-community.*"

命令 2 :

yum repolist all | grep mysql

如果在画面中显示的是红色的字体,笔者的字体是红色的,看个人配置,如下所示:

引用:

在这里插入图片描述

如下禁用 yum 存储库中8.0版本的Mysql数据库的下载 --disable

sudo yum-config-manager --disable mysql80-community

如下启用 yum 存储库中5.7版本的Mysql数据库的下载 --enable

sudo yum-config-manager --enable mysql57-community

(上面两个命令应该是安装插件)

mysql源错误补充更新:

如果输入上面的两条命令,出现下面错误,或是第1和第2条命令没有任何mysql的源的话:

在这里插入图片描述
那么需要用另外的方法下载Mysql,命令如下:

1. 下载MySQL源:

curl -O https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

2. 安装MySQL源

yum localinstall mysql57-community-release-el7-11.noarch.rpm

3. 检查MySQL源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

出现以下信息表示安装成功了

在这里插入图片描述

有了MySQL源后,就可以按下面的方法安装MySQL,下面的命令操作是可以放心正常使用

4. 使用 yum 存储库指定的 5.7 版本 Mysql 数据库源安装 Mysql

(因为上面安装插件了,所以这条命令,将会被禁用了原来默认最新的8.0版本的msyql,启用5.7版本的mysql进行安装)

sudo yum install mysql-community-server

该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-clientmysql-community-commonmysql-community-libs等。

安装时间会比较长!!!

出现任何的如下选择,都选择 y 即yes

在这里插入图片描述
这个步骤出现错误请看如下安装报错补充

安装报错补充:

1. 安装报错,提示无公共秘钥

在这里插入图片描述
解决方法:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后再次安装 sudo yum install mysql-community-server

查看是否安装成功

yum list installed mysql-*

如下所示:安装成功

在这里插入图片描述


Mysql 编码报错问题解决方案

编辑/etc/my.cnf[mysqld]节点增加如下代码:

[mysqld]
character_set_server=utf8
init-connect='SET NAMES utf8'

init-connect='SET NAMES utf8' 的理解:传送门

Mysql 配置文件 my.cnf 配置模板

(下面只是笔者找来的示例,应该是windows系统的 mysql 配置文件的模板)

[mysqld]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql的安装目录
basedir=D:\Java\mysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Java\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
init-connect='SET NAMES utf8'
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8


初次登陆 mysql 容易出现问题的解决方法

方法链接:Centos 第一次登陆 Mysql 数据库 修改密码问题

5. 启动 Mysql 服务器

5.1 启动 Mysql 服务器命令

systemctl start mysqld.service

5.2 查看 Mysql 服务器状态命令

systemctl status mysqld.service

5.3 停止 Mysql 服务器命令

systemctl stop mysqld.service

5.4 重启 Mysql 服务器 命令

systemctl restart mysqld.service

6. 修改密码及登录

6.2 初次登录 Mysql 数据库修改密码

7. 设置开机自启动

配置开机自启动命令

 systemctl enable mysqld

此条命令的实际原理,可以去查下,很有趣,有关于如下文件,这些文件存在于 /etc/目录下,命令 cd /etc/rc.

rc0.d/    rc2.d/    rc4.d/    rc6.d/    rc.local
rc1.d/    rc3.d/    rc5.d/    rc.d/

这些是服务优先级文件夹,rc 后的文字越小,优先级越高,Linux 系统也就会优先执行文件夹内各种服务。查看这些文件夹,会看到大写的 K开头的文件和 S 开头文件,K:kill 进程文件,S:start 进程文件,分别指的是关闭和启动服务文件。

言归正传,回归正题:

重载系统服务,输入如下命令才能使得 Mysql 服务器开机自启动命令生效,当然直接重启电脑,也可以,不过想必重启电脑,会是最无语的选择。

 systemctl daemon-reload

二、特别事项 - 慎重关闭防火墙

注意这里的关闭防火墙,其实是不应该的,如果是为了远程登录,那也很不应该,生产环境下,绝对有安全问题,最多开发指定的端口。这里仅仅提供关闭防火墙的方法,版本是 Centos 系统,灵活运用

具体命令如下:

启动防火墙服务 start

 systemctl start firewalld.service

启动防火墙服务 stop

 systemctl stop firewalld.service

重启防火墙服务 restart

 systemctl restart firewalld.service

查看防火墙服务状态 status

 systemctl status firewalld.service

三、Django 项目下解决创建新数据库的utf8编码问题

1. mysql 创建数据库 - utf-8 编码命令

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

复制命令,修改 test_db 为自己的数据库名:

CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

查看mysql内是否已经创建好了数据库,命令如下:

SHOW DATABASES;

查看某个数据库内的所有的表

SHOW TABLES FROM 指定的数据库;

然后就可以用 Django 进行数据库迁移了,先使用 cd 命令,到 Djnago 项目根目录下,然后在Shell 终端运行如下命令:

python manage.py makemigrations

python manage.py migrate

至此,Django 项目的数据库环境已完成配置 !!!


参考链接

Linux上安装Mysql

Centos7下安装MySQL详细步骤

MySql 学习(2)rpm MySql 安装目录

Can't start server: Bind on TCP/IP port: Permission denied 问题的解决

centos7 mysql5.7.38自定义路径安装

标签:Centos,命令,安装,数据库,mysql,Django,Nginx,Mysql,rpm
From: https://www.cnblogs.com/Loki-Severus/p/17252647.html

相关文章

  • django -表单 forms 类的使用 - Form 和 ModelForm - 时间格式的配置
    @目录表单是搜集用户数据信息的各种表单元素的合集,其作用是实现网页上的数据交互,比如用户在网站输入数据信息,然后提交到网站服务器进行处理(如数据录入和用户登陆注册),分为......
  • centos7安装tinyproxy
    一般需要先安装gccyuminstallgcc-y具体命令如下:gitclonehttps://github.com/tinyproxy/tinyproxy.gitcdtinyproxy./autogen.sh./configure--prefix=/usr/loca......
  • CentOS7下/etc/rc.local开启自启不执行问题处理
    1、原因:服务器重启后rsync服务没有起来,rsync启动已经写入/etc/rc.local中2:分析:查看more/etc/rc.local写启动内容没问题,也是全路径;查看/etc/rc.local文件,是一个链接,链......
  • Python 栈 django框架开源商城系统baykeShop
    起始2022年我用django开发了一个商城的第三方包,起名为:django-happy-shop。当时纯粹是利用业余时间来开发和维护这个包,想法也比较简单,Python语言做web可能用的人比较少,不一......
  • Centos7下安装Elasticsearch6步骤
    Centos7下安装Elasticsearch6步骤1、安装jdk2、安装Elasticsearch1、新建一个esGroup组和用户(出于安全考虑,Elasticsearch默认是不允许使用root账号运行的)2、更改Elasticsear......
  • k8s ingress-nginx 使用 snippet 添加自定义配置(例如:安全头)
    比如在有些时候我们需要在server里或者location里添加一些参数,例如添加安全头、包体大小限制、添加跨域配置、添加自定义header、处理响应header等等。遇到这些需求的时......
  • centos多网卡时修改网卡的优先级
    我有个服务器有多个网卡,分别配置了多个网段的IP地址,发现有一个网段ping不通。最后发现是路由优先级的问题。查看路由查看本机路由route主要看Metric的值,值越小表示优先级......
  • CentOS7关机重启之后,Mysql8启动不成功
    我在自己电脑上使用VM工具安装了虚拟机,CentOS7,里面继续安装了mysql8,下班的时候,直接把整个虚拟机关机了,没有依次关闭里面的服务,早上来的时候发现启动不来mysql 它提示用......
  • Nginx服务起不来报错:Failed to start nginx service.::解决方法
    报错信息:  报错原因:1、在安装好Nginx服务的时候,可以正常启动Nginx,但是执行systemctlrestartnginx的时候,会报错,然后去查看服务的日志发现此问题。2、经过在CSDN上......
  • centos 8 手把手部署并安装 itlab Jenkins
    目录centos8镜像下载安装其他错误下载源数据失败无法联网网站的搭建安装gitlabJenkinscentos8镜像下载安装centos8镜像下载安装(下载源)[镜像大概在8.2G往上,做好......