django mysql(分别在本机ubuntu和单位虚拟 asianux4.5环境)

问题一  

ubuntu下安装mysql ,参考 :https://www.django.cn/article/show-3.html

1. 安装后,没有编辑mysqld.cnf

 因为安装时候弹出窗体,让输入root口令。(lxg)

进入mysql方式:

xxx@lxg-opt:/etc/mysql$ mysql -u root -p
Enter password: 
#修改口令:
sudo mysqladmin -u root password newpassword

注意,有些版本中间不弹出输入密码窗体,使用的是默认密码,参考:https://www.cnblogs.com/gaowengang/p/10816537.html

改动密码也参考刚才上面的博文。

2、django使用mysql遇到如下错误一

解决:网上说setting.py同目录下的__init__.py下,放入

import pymysql
pymysql.install_as_MySQLdb()

以上有错误,应该注释掉,不要用pymysql,而是用mysqlclient

 

pymysql   对应python2

mysqlclient(也就是Python3版本的MySQLdb)

#import pymysql
#pymysql.install_as_MySQLdb()

 pip install mysqlclient

然后设置setting, (pymysql没有关系,也不用修改init.py)

 Django does not officially support PyMySQL.Django recommends mysqlclient if you are using MySQL. As the error message says, Django 2.0 requires mysqlclient 1.3.3 or newer.

python3比较简单,以下就够了

 

 

注意,有些版本中间不弹出输入密码窗体,使用的是默认密码,参考:https://www.cnblogs.com/gaowengang/p/10816537.html改动密码也参考刚才上面的博文。

有一篇博文(https://www.django.cn/forum/forum-6.html)说,mysqlclient不能pip安装,只能下载whl安装,估计是特定环境吧,反正我pip install mysqlclient 成功了。

解决了上述错误。

  安装mysqlclient时候,生产服务器的外网已经给断开了,只能手工下载安装https://pypi.org/project/mysqlclient/1.3.14/#files

试了试最新版,不行。 下载试了wheel不行, 最后找了1.3.14的sorce版,下载到本地, pip install 成功

 

3、django使用mysql遇到如下错误二

python manage.py migrate 时候,发生

遇到 1366, Incorrect string value django or collate or tables in mysql.

原因:字符集问题

创建database时候,要制定字符集 

mysql> create database lxg default character set utf8

就解决了。

 4、常用操作

#重启服务
sudo service mysql restart
#刷新权限
mysql>flush privileges
#重启服务
sudo service mysql restart
#刷新权限
mysql>flush privileges

一、启动方式

  1、使用 service 启动:service mysqld start

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

  3、使用 safe_mysqld 启动:safe_mysqld&

二、停止

  1、使用 service 启动:service mysqld stop

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

  3、mysqladmin shutdown

三、重启

  1、使用 service 启动:service mysqld restart

  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

四、改变root口令

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

五、创建其他用户

mysql> CREATE USER 'your_new_username'@'localhost' IDENTIFIED BY 'new_password';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'your_new_username'@'localhost';
mysql> FLUSH PRIVILEGES;

 


比较好的资源:
CentOS7操作系统下快速安装MySQL5.7 https://www.django.cn/article/show-2.html

Django中如何使用Mysql数据库 https://www.django.cn/forum/forum-6.html
 =====================================
单位虚机asianux4.5环境安装mysql
===================================

按https://www.django.cn/article/show-2.html 用yum安装会报错,换npm也不行
错误信息:
Error: Package: mysql-community-server-5.6.40-2.el7.x86_64 (mysql56-community)
 Requires: libc.so.6(GLIBC_2.17)(64bit) Error: Package: mysql-community-server-5.6.40-2.el7.x86_64 (mysql56-community)
 Requires: systemd Error: Package: mysql-community-libs-5.6.40-2.el7.x86_64 (mysql56-community)          
 Requires: libc.so.6(GLIBC_2.17)(64bit) Error: Package: mysql-community-server-5.6.40-2.el7.x86_64 (mysql56-community)            
最后,没用yum,用离线下载方式解决了。
参考的资料:
https://blog.csdn.net/liyf155/article/details/61419623

1.先删除
[root@worker1 tmp]# rpm -qa|grep mysql
mysql-libs-5.1.71-1.el6.x86_64
[root@worker1 tmp]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64  //卸载

2.下载,安装5.7

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar
tar -xf mysql-5.7.12-1.el6.x86_64.rpm-bundle.tar

依次安装

  • 1. rpm -ivh mysql-community-common-5.7.12-1.el6.x86_64.rpm
  • 2. rpm -ivh mysql-community-libs-5.7.12-1.el6.x86_64.rpm
  • 3. rpm -ivh mysql-community-devel-5.7.12-1.el6.x86_64.rpm
  • 4. rpm -ivh mysql-community-client-5.7.12-1.el6.x86_64.rpm
  • 5. rpm -ivh mysql-community-server-5.7.12-1.el6.x86_64.rpm
3.启动MySQL:service mysqld start 
4.mysql -u root -p,初次登录密码为空,直接回车: 出现 access denied error
,原因是因为MySQL5.7中的mysql.user 表中没有Password字段,所以要以安全方式登录,然后修改密码。 
解决方法如下: 
修改MySQL配置文件:vim /etc/my.cnf,在文件末尾加上:skip-grant-tables,保存后重启MySQL服务:service mysqld restart,然后重新登录。

5.
mysql> use mysql
mysql> update user set password_expired='N' where user='root';    
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;

6.一定要将my.cnf配置文件之前加的跳过密码检测内容去掉,重启服务

其他:

 

  1. 编码设置:vim /etc/my.cnf,文件末尾加上编码内容default-character-set=utf8
  2. 允许远程访问MySQL: 
    赋予任何主机访问数据的权限 
    mysql>grant all privileges on *.* to 'root'@'%'  with grant option; 
    会报错:ERROR 1133 (42000): Can’t find any matching row in the user table 
    其实如果事先在mysql.user表中存在root用户就正常了,或,将这句末尾加上identified by ‘密码’ 也就正常了。如下面的命令行 
    mysql>grant all privileges on . to ‘root’@’%’identified by ‘123456’ with grant option;
  3. 更改密码策略:

 

 mysql> set global validate_password_length=0; --更改密码长度
 mysql> set global validate_password_policy=0; --更改密码策略为LOW
posted @ 2020-03-27 15:48  花生与酒  阅读(120)  评论(0编辑  收藏  举报