該錯(cuò)誤提示的意思是:sha256_password和caching_sha2_password兩種加密方式需要cryptography。
所以只需要安裝一下cryptography包就可以了: pip install cryptography
]]>首先,您需要停止正在運(yùn)行的MySQL服務(wù)。在終端中執(zhí)行如下命令:
sudo /etc/init.d/mysql stop
接下來(lái),您需要以跳過(guò)權(quán)限表的方式來(lái)啟動(dòng)MySQL,這樣就可以繞過(guò)密碼驗(yàn)證:
sudo mysqld_safe --skip-grant-tables &
這行命令會(huì)在后臺(tái)啟動(dòng)MySQL服務(wù),并且不會(huì)加載權(quán)限表,因此您可以無(wú)需密碼直接訪問(wèn)MySQL。
現(xiàn)在,您可以用root用戶(hù)登錄到MySQL,而不需要輸入密碼:
mysql -u root
進(jìn)入MySQL后,選擇mysql
數(shù)據(jù)庫(kù):
use mysql;
然后,更新root用戶(hù)的密碼。這里假設(shè)您想要將密碼設(shè)置為new_password
:
update user set authentication_string=PASSWORD('new_password') where User='root';
注意:如果您使用的是MySQL 5.7或更高版本,authentication_string
字段可能已經(jīng)被password
字段所取代。在這種情況下,您應(yīng)該使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
完成上述操作后,刷新權(quán)限:
flush privileges;
退出MySQL:
exit;
最后,正常重啟MySQL服務(wù)以應(yīng)用更改:
sudo /etc/init.d/mysql restart
或者
sudo systemctl restart mysql
現(xiàn)在,您應(yīng)該能夠使用新設(shè)置的密碼登錄MySQL了。
SELECT VERSION();
來(lái)查看。Got a packet bigger than ‘max_allowed_packet’ bytes
replace into ……
提示意思是:導(dǎo)入的一個(gè)數(shù)據(jù)大于服務(wù)器默認(rèn)設(shè)置大小,所以我們只要修改max_allowed_packet,使其數(shù)據(jù)變大些就好了。
解決方法:
1.打開(kāi)mysql的配置文件(通常是 my.cnf 或 my.ini
2.查找到max_allowed_packet(我的默認(rèn)設(shè)置是max_allowed_packet = 1M
3.把max_allowed_packet = 1M,改成max_allowed_packet = 10M
4.重啟服務(wù)器
再次導(dǎo)入數(shù)據(jù)成功
]]>1.在騰訊控制臺(tái)點(diǎn)擊防火墻,點(diǎn)擊添加規(guī)則把3306端口放行,效果如果
2.登錄服務(wù)器執(zhí)行下面2個(gè)命令:
1.iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
2.iptables-save
3.登錄phpmyadmin,把需要遠(yuǎn)程的數(shù)據(jù)庫(kù)的主機(jī)名:localhost改成%
4。重啟服務(wù)器
這樣我們就能直接訪問(wèn)操作mysql數(shù)據(jù)庫(kù)了
]]>解決的方法:
1、找到mysql安裝目錄;
2、找到my.ini文件;
3、在文件的最后添加: max_allowed_packet = 32M (也可以設(shè)置自己需要的大小)。
max_allowed_packet 參數(shù)的作用是,用來(lái)控制其通信緩沖區(qū)的最大長(zhǎng)度。
]]> 表操作
表不能脫離字段存在,字段也不能脫離表,所謂的表操作就是表和字段同時(shí)操作。
新增表:create table 表名(字段1 字段類(lèi)型,字段2 字段類(lèi)型)[表選項(xiàng)]
1.字段必須要有字段類(lèi)型:字段 字段類(lèi)型
2.字段與字段之間使用逗號(hào)分隔
3.最后一個(gè)字段不需要使用逗號(hào)
表選項(xiàng)
字符集:當(dāng)前表的數(shù)據(jù)采用什么字符集保存,字符集以表的字符集為標(biāo)準(zhǔn)
存儲(chǔ)引擎:當(dāng)前表的數(shù)據(jù)采用什么樣的存儲(chǔ)引擎來(lái)存儲(chǔ)
存儲(chǔ)引擎:不同存儲(chǔ)和處理數(shù)據(jù)的方式
創(chuàng)建數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題
注意:數(shù)據(jù)表必須存儲(chǔ)在數(shù)據(jù)庫(kù)的內(nèi)部。
兩種方式解決以上問(wèn)題
2.隱式的指定數(shù)據(jù):事先進(jìn)入到某個(gè)數(shù)據(jù)庫(kù)的環(huán)境:use 數(shù)據(jù)庫(kù)名字
創(chuàng)建表語(yǔ)句執(zhí)行之后的結(jié)果:在對(duì)應(yīng)的數(shù)據(jù)庫(kù)文件夾下創(chuàng)建兩個(gè)對(duì)應(yīng)的數(shù)據(jù)表的結(jié)構(gòu)文件
該結(jié)構(gòu)與選定的存儲(chǔ)引擎有關(guān)系
存儲(chǔ)引擎:InnoDB和Myisam
InnoDB:只會(huì)創(chuàng)建一個(gè)表結(jié)構(gòu)文件,其他的索引和數(shù)據(jù)存放在ibdata1文件中
Myisam:會(huì)創(chuàng)建三個(gè)文件,一個(gè)是結(jié)構(gòu)文件,一個(gè)是數(shù)據(jù)文件,一個(gè)是索引文件
查看表:
2.查看表的創(chuàng)建語(yǔ)句:show create table表名;
3.查看表結(jié)構(gòu):desc|describe 表名/show columns from 表名
修改表
可以修改表的名字,表的字段的增刪改查,字段的屬性的修改,字段的位置的修改
語(yǔ)法:alter table 表名 [add/modify/drop] [column] 字段名字 [字段類(lèi)型] [字段位置]
增加字段
alter table 表名 add column 字段名字 字段類(lèi)型 [位置]
字段默認(rèn)在表最后增加
位置:first表示在最前面,after表示在某個(gè)字段之后(默認(rèn)其實(shí)是after在最后一個(gè)字段之后)
修改字段
修改字段位置,修改字段的類(lèi)型,修改字段的名字
修改字段類(lèi)型+字段位置
修改字段名字
alter table 表名 change 舊字段 new字段 字段類(lèi)型 字段位置
注意:不管是修改字段的那部分都應(yīng)該跟上字段類(lèi)型。
刪除字段
alter table 表名 drop 字段名字
語(yǔ)法:rename table 舊表名 to 新表名
刪除表:drop table 表名
刪除表還會(huì)對(duì)表文件進(jìn)行刪除
注意:
2.刪除表的過(guò)程中,不知道表是否已經(jīng)存在:if exists
3.數(shù)據(jù)庫(kù)和數(shù)據(jù)表都不能隨意的刪除,刪除具有不可逆性。如果確定要?jiǎng)h除數(shù)據(jù)庫(kù)或者數(shù)據(jù)表,那么必須要事先備份。
都看到這里了順手關(guān)注下吧!
]]>
數(shù)據(jù)操作
新增數(shù)據(jù):insert into 表名 (字段列表) values(值列表)
字段列表可以沒(méi)有,意味著值列表里的字段數(shù)必須與表中的字段數(shù)完全一致
插入數(shù)據(jù)必須注意
1.插入的值類(lèi)型必須與數(shù)據(jù)字段定義的數(shù)據(jù)類(lèi)型一致,除了整型可以不加引號(hào)之外,其他的都要加上引號(hào)
2.整型也可以加上引號(hào)
在嚴(yán)格模式下,只能將數(shù)值字符串轉(zhuǎn)化成數(shù)值
在嚴(yán)格模式下,自增不能使用空字符串來(lái)代替
3.允許一次性插入多條記錄,在values字段后面使用逗號(hào)分隔即可
查看數(shù)據(jù):select 字段列表 from 表名 [where 條件]
修改(更新)數(shù)據(jù):update 表名 set 字段 = 值 [where條件]
刪除數(shù)據(jù):delete from 表名 [where條件]
注意:一定要小心刪除數(shù)據(jù),切記需要使用where條件,在刪除之前需要對(duì)數(shù)據(jù)進(jìn)行備份
行(row)和記錄(record):行和記錄表示的意思是完全一樣的,行是站在表結(jié)構(gòu)的角度上定義,而記錄是站在數(shù)據(jù)的角度上去定義
列(column)和字段(Field):與行和記錄的區(qū)別是一樣的。
都看到這里了就順手點(diǎn)擊下關(guān)注唄!
]]>
數(shù)據(jù):data,凡是能攜帶信息的媒介都是數(shù)據(jù)
硬盤(pán)數(shù)據(jù):保存在磁盤(pán)中,以二進(jìn)制形式保存
內(nèi)存數(shù)據(jù):運(yùn)行在內(nèi)存中
數(shù)據(jù)庫(kù):Database,高效存儲(chǔ)和處理數(shù)據(jù)的媒介(凡是存放數(shù)據(jù)的地方都可以稱(chēng)之為數(shù)據(jù)庫(kù)),數(shù)據(jù)庫(kù)分為兩大陣營(yíng):關(guān)系型數(shù)據(jù)庫(kù),非關(guān)系型數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)系統(tǒng):Database System = DBMS +DB,DBMS(Database Management System)管理數(shù)據(jù)庫(kù)
DBA:Database Administrator,DBA待遇非常好。
關(guān)系型數(shù)據(jù)庫(kù)SQL
定義:建立在關(guān)系模型上的數(shù)據(jù)庫(kù)。
關(guān)系模型:通過(guò)各種關(guān)系來(lái)體現(xiàn)數(shù)據(jù)與數(shù)據(jù)之間的聯(lián)系的模型。
關(guān)系型數(shù)據(jù)庫(kù):大型(ORACLE,DB2),中型(mysql,SqlServer),小型(access)
mysql:最高并發(fā)量千萬(wàn)級(jí),免費(fèi)
ORACLE:收費(fèi)
通俗:關(guān)系型數(shù)據(jù)庫(kù)就是一張二維表(具有行和列,還有表頭),用來(lái)管理表內(nèi)的數(shù)據(jù)關(guān)系和表與表之間的關(guān)系。
非關(guān)系型數(shù)據(jù)庫(kù)
定義:所有不是關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)都是非關(guān)系型數(shù)據(jù)庫(kù)
NOSQL:Not Only SQL。
非關(guān)系型數(shù)據(jù)庫(kù)保存數(shù)據(jù)的方式:鍵值對(duì)
特點(diǎn):
1. 運(yùn)行在內(nèi)存
2. 使用鍵值對(duì)來(lái)保存和表示數(shù)據(jù)
3. 運(yùn)行之后,會(huì)進(jìn)行數(shù)據(jù)同步(將內(nèi)存的數(shù)據(jù)寫(xiě)入到磁盤(pán))
關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)對(duì)比
1. 保存數(shù)據(jù)的介質(zhì)不同(關(guān)系型在磁盤(pán),非關(guān)系型在內(nèi)存)
2. 非關(guān)系型數(shù)據(jù)庫(kù)效率比關(guān)系型數(shù)據(jù)庫(kù)高得多
3. 關(guān)系型數(shù)據(jù)庫(kù)比非關(guān)系型數(shù)據(jù)庫(kù)安全
SQL是一種關(guān)系型數(shù)據(jù)庫(kù)操作語(yǔ)言,也是一種編程語(yǔ)言
SQL:Structured Query Language,結(jié)構(gòu)化查詢(xún)語(yǔ)言。
SQL包含三個(gè)部分:
DDL:Data Defin DML:Data manipulation Language,數(shù)據(jù)操作語(yǔ)言(DQL:Data Query Language),數(shù)據(jù)的查詢(xún),select
DCL:Data Control Language,數(shù)據(jù)控制語(yǔ)言,用于數(shù)據(jù)庫(kù)的權(quán)限管理,grant,revoke
SQL的基本操作
CRUD:create(創(chuàng)建:增),read/retrieve(讀?。翰椋?,update(更新:改),delete(刪除:刪)
登陸和基本語(yǔ)法
mysql是一種c/s軟件結(jié)構(gòu)。在運(yùn)行之前,必須保證服務(wù)端和客戶(hù)端同時(shí)運(yùn)行才能正常工作。
工作流程
1. 客戶(hù)端發(fā)送連接請(qǐng)求,建立連接:mysql –h –P –u –p
a) h:host,ip地址或者域名,默認(rèn)可以沒(méi)有代表localhost
b) P:大寫(xiě),端口默認(rèn)為3306
c) u:username,用戶(hù)名
d) p:password,用戶(hù)密碼
登錄成功
2. 準(zhǔn)備SQL語(yǔ)句:逐行執(zhí)行,以分號(hào)為結(jié)束符
3.發(fā)送SQL語(yǔ)句:發(fā)送給服務(wù)器
4.服務(wù)器接收SQL并執(zhí)行
5.服務(wù)器發(fā)送執(zhí)行結(jié)果給客戶(hù)端
6.客戶(hù)端解析結(jié)果
7. 關(guān)閉連接
a) exit
b) quit
c) q
數(shù)據(jù)庫(kù)基本操作
數(shù)據(jù)庫(kù)基本操作包含三個(gè)部分:庫(kù)操作,表操作(字段操作),數(shù)據(jù)操作
庫(kù)操作
SQL語(yǔ)句是以行為執(zhí)行單位,每行結(jié)束都應(yīng)該有結(jié)束符號(hào)分號(hào)(有特例:建議每行語(yǔ)句都有分號(hào))
新增數(shù)據(jù)庫(kù):create database 數(shù)據(jù)庫(kù)名字 [庫(kù)選項(xiàng)];
庫(kù)選項(xiàng):
字符集設(shè)置(charset):表示以后在當(dāng)前數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù),默認(rèn)采用utf-8的字符集存儲(chǔ)
校對(duì)集設(shè)置(collate):如何比較大小
執(zhí)行以上語(yǔ)句,數(shù)據(jù)庫(kù)管理系統(tǒng)做了哪些事情?
1. 創(chuàng)建了一個(gè)叫做mydatabase的數(shù)據(jù)庫(kù)(默認(rèn)使用utf8來(lái)存儲(chǔ)數(shù)據(jù))
2. 會(huì)在磁盤(pán)里開(kāi)辟一塊空間來(lái)存儲(chǔ)數(shù)據(jù)(對(duì)應(yīng)外部體現(xiàn)就是創(chuàng)建一個(gè)文件夾,文件夾的名字叫做mydatabase)
文件夾的路徑可以通過(guò)my.ini查看
新建的數(shù)據(jù)庫(kù)
庫(kù)選項(xiàng)在數(shù)據(jù)庫(kù)文件夾下有一個(gè)對(duì)應(yīng)的文件db.opt
數(shù)據(jù)庫(kù)命名規(guī)范
1. 使用字母,下劃線和數(shù)字構(gòu)成
2. 不能是關(guān)鍵字,如果是關(guān)鍵字,需要使用反引號(hào)將名字包裹
a) 反引號(hào):esc下面的波浪線按鍵對(duì)應(yīng)的英文狀態(tài)下的輸出
可以使用中文作為數(shù)據(jù)庫(kù)名字,但是也需要使用反引號(hào)(強(qiáng)烈建議:不用使用中文)
查看數(shù)據(jù)庫(kù):
查看數(shù)據(jù)庫(kù)基本信息:show databases;||模糊查詢(xún):show databases like ‘pattern’
查看所有
模糊匹配:%匹配任何內(nèi)容,_表示匹配一個(gè)字符
修改數(shù)據(jù)庫(kù):
數(shù)據(jù)庫(kù)名稱(chēng)不可修改,只能修改數(shù)據(jù)庫(kù)的庫(kù)選項(xiàng)
語(yǔ)法:alter database 數(shù)據(jù)庫(kù)名字 [庫(kù)選項(xiàng)]
刪除數(shù)據(jù)庫(kù):drop Database 數(shù)據(jù)庫(kù)名字;
為了避免篇幅過(guò)長(zhǎng),這里先介紹了庫(kù)的操作,后續(xù)文章介紹表和數(shù)據(jù)的CRUD操作,還是那句,都看到這里了就點(diǎn)下關(guān)注吧! ]]>