一、為什么mysql從8.0.0版本開始,zip方式安裝就不支持32位
目前mysql支持win32的版本最新只到5.7.33,具體如下圖,打開下載頁面之后點擊紅框里的Looking for previous GA versions。然后你會看到彈出一個新的下拉框,這里選擇x86,32-bit。得出結(jié)論,最新的32bit支持版本。
MySQL 8.0 是一個里程碑式的版本,引入了大量新特性,如性能優(yōu)化、安全性改進和改進的用戶體驗等,可以更好地支持企業(yè)級應(yīng)用程序的需求。同時,MySQL 8.0 還支持多線程、并行查詢和外部鍵等新功能,可以更好地支持高并發(fā)訪問,提高應(yīng)用程序的性能。
1、用戶創(chuàng)建于授權(quán)
MySQL 8.0 創(chuàng)建用戶和用戶授權(quán)命令需要分開執(zhí)行,MySQL 5.7之前直接直接使用 grant 命令實現(xiàn)兩步操作。
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
插件升級后,破解密碼難度增大,安全性大大增強,但是,在遠程訪問時,需要指定目標服務(wù)器mysql的RSA公鑰,否則,使用明文密碼進行訪問,會報錯。可以想象到,在遠程管理大量的服務(wù)器時,這明顯會降低辦事效率,所以目前還是建議使用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個參數(shù)用于控制密碼重復使用策略
password_history:限制修改的密碼必須是多少次內(nèi)不重復,修改的密碼信息會記錄在mysql.password_history中,修改密碼時會與表中的信息對比,默認值為0,即不限制。延伸閱讀:
二、Django 是什么
Django 是一個高級的 Python 網(wǎng)絡(luò)框架,可以快速開發(fā)安全和可維護的網(wǎng)站。由經(jīng)驗豐富的開發(fā)者構(gòu)建,Django 負責處理網(wǎng)站開發(fā)中麻煩的部分,因此你可以專注于編寫應(yīng)用程序,而無需重新開發(fā)。 它是免費和開源的,有活躍繁榮的社區(qū),豐富的文檔,以及很多免費和付費的解決方案。
Django 可以使你的應(yīng)用具有以下優(yōu)點:
完備性
Django 遵循“功能完備”的理念,提供開發(fā)人員可能想要“開箱即用”的幾乎所有功能。因為你需要的一切都是一個”產(chǎn)品“的一部分,它們都可以無縫結(jié)合在一起,遵循一致性設(shè)計原則,并且具有廣泛和最新的文檔。
通用性
Django 可以(并已經(jīng))用于構(gòu)建幾乎任何類型的網(wǎng)站—從內(nèi)容管理系統(tǒng)和維基,到社交網(wǎng)絡(luò)和新聞網(wǎng)站。它可以與任何客戶端框架一起工作,并且可以提供幾乎任何格式(包括 HTML,Rss 源,JSON,XML 等)的內(nèi)容。你正在閱讀的網(wǎng)站就是基于 Django。
在內(nèi)部,盡管它為幾乎所有可能需要的功能(例如幾個流行的數(shù)據(jù)庫,模版引擎等)提供了選擇,但是如果需要,它也可以擴展到使用其他組件。
安全性
Django 幫助開發(fā)人員通過提供一個被設(shè)計為“做正確的事情”來自動保護網(wǎng)站的框架來避免許多常見的安全錯誤。例如,Django 提供了一種安全的方式來管理用戶賬戶和密碼,避免了常見的錯誤,比如將 session 放在 cookie 中這種易受攻擊的做法(取而代之的是 cookies 只包含一個密鑰,實際數(shù)據(jù)存儲在數(shù)據(jù)庫中)或直接存儲密碼而不是密碼哈希。
密碼哈希是通過密碼散列函數(shù)發(fā)送密碼而創(chuàng)建的固定長度值。Django 能通過運行哈希函數(shù)來檢查輸入的密碼 – 就是 – 將輸出的哈希值與存儲的哈希值進行比較是否正確。然而由于功能的“單向”性質(zhì),即時存儲的哈希值受到威脅,攻擊者也難以解決原始密碼。(但其實有彩虹表 – 譯者觀點)
默認情況下,Django 可以防范許多漏洞,包括 SQL 注入,跨站點腳本,跨站點請求偽造和點擊劫持。