mysql8.0中创建管理员并修改密码验证方式

1.修改密码验证策略,如果不修改简单密码无法创建

  • 在my.cnf中添加以下内容:
validate_password.policy=0
validate_password.length=6
validate_password.mixed_case_count=0
validate_password.special_char_count=0
validate_password.length=6
  • 重启mysqld

2.创建用户

create user 'tab_ding'@'%' identified by '123456';
flush privileges;

3.给用户添加管理员权限

grant all privileges on *.* to  'tab_ding'@'%';
flush privileges;

4.Navicat和heisql登录时提示:caching_sha2_password

  • 已创建用户修改
ALTER USER 'tab_ding'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
  • 默认创建用户修改,在my.cnf中添加
default_authentication_plugin = mysql_native_password

mysql备份与还原数据库的常用命令

一、备份数据

Mysqldump常用命令:

mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql
常见选项:
-u: 用户名
-p: 密码
-P: 端口号,不写默认3306
--all-databases, -A:备份所有数据库
--databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。
-d: 只导出数据库的表结构
-t: 只导出数据库的数据
--quick, -q:快速导出
--xml, -X:导出为xml文件

下面是具体的使用samples:

1. 备份全部数据库的数据和结构(-A)
mysqldump -uroot -p123456 -A > 0101.sql
2. 备份全部数据库的结构(-d)
mysqldump -uroot -p123456 -P3306 -A -d > 0102.sql
3. 备份全部数据库的数据(-t)
mysqldump -uroot -p123456 -P3306 -A -t > 0103.sql
4. 备份单个数据库的数据和结构(sakila 为数据库名)
mysqldump -uroot -p123456 -P3306 sakila > 0104.sql
5. 备份单个数据库结构(sakila 为数据库名,-d)
mysqldump -uroot -p123456 -P3306 sakila -d > 0105.sql
6. 备份单个数据库数据(sakila 为数据库名,-t)
mysqldump -uroot -p123456 -P3306 sakila -t > 0106.sql
7. 备份多个表的结构和数据 (table1,table2为表名)
mysqldump -uroot -p123456 -P3306 sakila table1 table2 > 0107.sql
8. 一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > 0108.sql

二、还原数据库:

1. 系统命令行:

mysqladmin -uroot -p123456 create db_name 
mysql -uroot -p123456  db_name < d:\bak\0101.sql

注:在导入备份数据库前,db_name如果没有,是需要创建的; 而且与backup20110527.sql中数据库名是一样的才可以导入。

2. source 方法:

mysql > use db
mysql > source d:\bak\0101.sql

三、总结

1. 还原单个数据库、单个数据库的多表需要指定数据库,而还原多个数据库时不用指定数据库。

2. 区别:备份用的命令是mysqldump, 还原用的是mysql。

Django去连接操作已经存在的mysql数据库

1.设置数据库连接

#修改setting.py文件
import pymysql
pymysql.install_as_MySQLdb()
DATABASE = {
    'default':{
        'ENGINE':'django.db.backends.mysql',
        'NAME':'数据库名',
        'HOST':'数据库地址',
        'PORT':端口,
        'USER':'用户名',
        'PASSWORD':'密码',
    }
}

2.根据数据库去自动生成新的models文件

python manage.py inspectdb    #简单可以看一下自动映射成的models中的内容

3.导出并且去代替models.py

python manage.py inspectdb > models.py

4.修改model

meta class中的managed = True
#则可以去告诉django可以对数据库进行操作

5.使models.py和数据库进行同步

python manage.py migrate

Django mysql删除表后再次创建

1.先到数据库把表删掉:drop table

2.注释Django中对应的Model

3.执行以下命令:

python manage.py makemigrations 
python manage.py migrate --fake

4.去掉步骤2中的注释

5.执行以下命令:

python manage.py makemigrations 
python manage.py migrate