目前mysql支持win32的版本最新只到5.7.33,具体如下图,打开下载页面之后点击红框里的Looking for previous GA versions。然后你会看到弹出一个新的下拉框,这里选择x86,32-bit。得出结论,最新的32bit支持版本。
一、为什么mysql从8.0.0版本开始,zip方式安装就不支持32位
目前mysql支持win32的版本最新只到5.7.33,具体如下图,打开下载页面之后点击红框里的Looking for previous GA versions。然后你会看到弹出一个新的下拉框,这里选择x86,32-bit。得出结论,最新的32bit支持版本。
MySQL 8.0 是一个里程碑式的版本,引入了大量新特性,如性能优化、安全性改进和改进的用户体验等,可以更好地支持企业级应用程序的需求。同时,MySQL 8.0 还支持多线程、并行查询和外部键等新功能,可以更好地支持高并发访问,提高应用程序的性能。
1、用户创建于授权
MySQL 8.0 创建用户和用户授权命令需要分开执行,MySQL 5.7之前直接直接使用 grant 命令实现两步操作。
scss
复制代码
[5.7.37-log]>grant all privileges on *.* to hunter@’%’ identified by ‘123456’;
Query OK, 0 rows affected, 1 warning (0.00 sec)
scss
复制代码
[8.0.27]>grant all privileges on *.* to hunter@’%’ identified by ‘123456’;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘123456” at line 1
[8.0.27]>create user hunter@’%’ identified by ‘123456’;
Query OK, 0 rows affected (0.03 sec)
[8.0.27]>grant all privileges on *.* to hunter@’%’;
Query OK, 0 rows affected (0.02 sec)
[8.0.27]>flush privileges;
Query OK, 0 rows affected (0.01 se
2、认证插件更新
MySQL 5.7 的插件为:mysql_native_password
MySQL 8.0 认证插件更新为:caching_sha2_password
插件升级后,破解密码难度增大,安全性大大增强,但是,在远程访问时,需要指定目标服务器mysql的RSA公钥,否则,使用明文密码进行访问,会报错。可以想象到,在远程管理大量的服务器时,这明显会降低办事效率,所以目前还是建议使用mysql_native_password插件。
远程明文访问报错信息:Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection
sql
复制代码
[5.7.37-log]>show variables like ‘default_authentication_plugin’;
+——————————-+———————–+
| Variable_name | Value |
+——————————-+———————–+
| default_authentication_plugin | mysql_native_password |
+——————————-+———————–+
1 row in set (0.00 sec)
[5.7.37-log]>select user,host,plugin from mysql.user;
+—————+———–+———————–+
| user | host | plugin |
+—————+———–+———————–+
| root | localhost | mysql_native_password |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | mysql_native_password |
| hunter | % | mysql_native_password |
+—————+———–+———————–+
4 rows in set (0.00 sec)
sql
复制代码
[8.0.27]>show variables like ‘default_authentication_plugin’;
+——————————-+———————–+
| Variable_name | Value |
+——————————-+———————–+
| default_authentication_plugin | caching_sha2_password |
+——————————-+———————–+
1 row in set (0.03 sec)
–指定插件
[8.0.27]>create user test_user@’%’ identified with mysql_native_password by ‘123456’;
Query OK, 0 rows affected (0.02 sec)
[8.0.27]>select user,host,plugin from mysql.user;
+——————+———–+———————–+
| user | host | plugin |
+——————+———–+———————–+
| hunter | % | caching_sha2_password |
| test_user | % | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | caching_sha2_password |
+——————+———–+———————–+
6 rows in set (0.00 sec
3、密码重用策略
新增3个参数用于控制密码重复使用策略
- password_history:限制修改的密码必须是多少次内不重复,修改的密码信息会记录在mysql.password_history中,修改密码时会与表中的信息对比,默认值为0,即不限制。
延伸阅读:
二、Django 是什么
Django 是一个高级的 Python 网络框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django 负责处理网站开发中麻烦的部分,因此你可以专注于编写应用程序,而无需重新开发。 它是免费和开源的,有活跃繁荣的社区,丰富的文档,以及很多免费和付费的解决方案。
Django 可以使你的应用具有以下优点:
完备性
Django 遵循“功能完备”的理念,提供开发人员可能想要“开箱即用”的几乎所有功能。因为你需要的一切都是一个”产品“的一部分,它们都可以无缝结合在一起,遵循一致性设计原则,并且具有广泛和最新的文档。
通用性
Django 可以(并已经)用于构建几乎任何类型的网站—从内容管理系统和维基,到社交网络和新闻网站。它可以与任何客户端框架一起工作,并且可以提供几乎任何格式(包括 HTML,Rss 源,JSON,XML 等)的内容。你正在阅读的网站就是基于 Django。
在内部,尽管它为几乎所有可能需要的功能(例如几个流行的数据库,模版引擎等)提供了选择,但是如果需要,它也可以扩展到使用其他组件。
安全性
Django 帮助开发人员通过提供一个被设计为“做正确的事情”来自动保护网站的框架来避免许多常见的安全错误。例如,Django 提供了一种安全的方式来管理用户账户和密码,避免了常见的错误,比如将 session 放在 cookie 中这种易受攻击的做法(取而代之的是 cookies 只包含一个密钥,实际数据存储在数据库中)或直接存储密码而不是密码哈希。
密码哈希是通过密码散列函数发送密码而创建的固定长度值。Django 能通过运行哈希函数来检查输入的密码 – 就是 – 将输出的哈希值与存储的哈希值进行比较是否正确。然而由于功能的“单向”性质,即时存储的哈希值受到威胁,攻击者也难以解决原始密码。(但其实有彩虹表 – 译者观点)
默认情况下,Django 可以防范许多漏洞,包括 SQL 注入,跨站点脚本,跨站点请求伪造和点击劫持。