Ubuntu上 Django连接 Mysql(记录我踩的坑)

1、#查看有没有安装MySQL:

dpkg -l | grep mysql

2、 安装MySQL:

sudo apt install mysql-server

3、检查是否安装成功:

netstat -tap | grep mysql

通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。

4、登录mysql数据库可以通过如下命令:

mysql -u root -p

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,

提示:Access denied for user 'root'@'localhost'

错误解决过程

修改/etc/mysql/my.cnf文件(在/etc下没有my.cnf,于是新建了一个)

满怀期待 登录mysql,然而,没用,依旧提示"Access denied for user 'root'@'localhost'"(生无可恋.jpg)。

方法:停止mysql服务,重启再进入就OK了

执行命令  service mysql restart

然后mysql -u root -p 就可以进入了。

后续发现这种方式MYSQL运行端口一直是0,而且DJANGO也连不上MYSQL,一直报各种错误。

正确解决过程:

弄了好几次,时间好几天终于想明白了。

其实Mysql安装成功后,默认的root用户密码为空,但是因为Ubuntu权限原因,用普通用户身份mysql -u root -p肯定是会被Access denied的,但是如果在mysql -u root -p前面加上sudo,直接回车键不用输入密码就可以进入mysql了,确实初始ROOT是不需要密码的。

在DJANGO里想去连MYSQL,如果用USERNAME为ROOT去访问也是会被拒绝的,因为我们运行DJANO用的是普通用户,所以需要去创建一个普通的数据库用户和密码,来让DJANGO在程序里访问,以下是步骤:

先sudo mysql -u root -p,然后输入SUDO密码,按ENTER进入mysql>命令行,

1.创建用户:create user '用户名'@'%' identified by '密码';
2.授权:grant all on *.* to '用户名'@'%';
3.刷新权限:flush privileges;
 

我用以上命令创建了一个用户名为DJANGO,密码为123456的用户名

create user 'django'@'%' identified by '123456';

grant all on *.* to 'django'@'localhost';

flush privileges;

用show global variables like 'port'命令确认端口号是3306.

然后DJANGO就可以连接MYSQL了。

我的settings.py配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'userlist',
        'USER': 'django',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

然后就可以连MYSQL了,也可以makemigrations 和migrate了

另外DJANGO3 不需要用Pymsql了,也不需要在__init.py__设置

import pymysql
pymysql.install_as_MySQLdb()

  只需要安装好mysqlclient就可以连接。

Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动Nginx和UWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值