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