前提:商品表-商品分類表-商品品牌表已存在
要求1:
????????????注冊:輸入姓名顶燕、密碼凑保、電話、地址
????????????插入顧客表
要求2:
????????????登錄:姓名涌攻、密碼
????????????數(shù)據(jù)庫查詢
????????????登錄成功(id保存一下)/登錄失敗
要求3:
? ? ? ? ? ? ? ---商城---
????????????1欧引、所有商品
????????????2、分類管理
????????????3恳谎、品牌管理
????????????4芝此、購物
要求4:
????????????輸入id:22
????????????插入訂單表:用戶id憋肖,獲取訂單id
????????????插入訂單詳情:訂單id、22婚苹、數(shù)量
知識點
1.? ??獲取最新訂單的id:elf.cursor.lastrowid
2.? ??加密:password(%s)
3.? ??用列表傳參來防止SQL注入:
????????sql = "select * from goods where name=%s"
????????self.cursor.execute(sql,[find_name])?
????????print(self.cursor.fetchall())
在命令行輸入
在sublime輸入
插入10萬條數(shù)據(jù)
賬戶管理(一)授予權(quán)限
1. 查看所有用戶
-- 所有用戶及權(quán)限信息存儲在mysql數(shù)據(jù)庫的user表中
-- 查看user表的結(jié)構(gòu)
desc user;
user這一列:可以登錄的MySQL用戶(表示用戶名)
host這一列:可以通過哪里登錄(表示允許訪問的主機)
? ? ? ? ? ? 1)當出現(xiàn)%岸更,表示可以在任何地方登錄? ?
? ? ? ? ? ? 2)localhost,表示只能在本地登錄膊升,有密碼也不好使
authentication_string表示密碼怎炊,為加密后的值
-- 查看所有用戶
select?user, host,authentication_string from user;
不是明文密碼,否則數(shù)據(jù)庫被盜密碼就知道了(密碼要用加鹽的方式加密廓译,登錄注冊時也要用password(%s)進行加密)
2. 創(chuàng)建賬戶评肆、授權(quán)
需要使用實例級賬戶登錄后操作,以root為例
常用權(quán)限主要包括:create非区、alter瓜挽、drop、insert征绸、update秸抚、delete、select
如果分配所有權(quán)限歹垫,可以使用all privileges
-- 創(chuàng)建賬戶&授權(quán)
grant 權(quán)限列表 on 數(shù)據(jù)庫 to '用戶名'@'訪問主機' identified by '密碼';
grant:授權(quán)? ? on:哪一個數(shù)據(jù)庫的哪一個表? ? to:給誰?????'用戶名':新的用戶名????
'訪問主機':如果是localhost剥汤,表示只能在本地登錄,有密碼也不好使排惨;如果是%吭敢,表示可以在任何地方登錄
創(chuàng)建前提:
step1:使用root登錄
mysql -uroot -p
step2:創(chuàng)建賬戶并授予所有權(quán)限(在cw數(shù)據(jù)庫執(zhí)行)
-- localhost:表示只能在本地登錄,有密碼也不好使
grant select on cw.* to 'laoweng'@'localhost' identified by '2361559775';
--?%:表示可以在任何地方登錄
grant select on cw.* to 'laoweng'@'%' identified by '2361559775';
-- 查看所有的數(shù)據(jù)庫 (\q)
show databases;
-- 查看用戶有哪些權(quán)限
show grants for laoweng@localhost;?
step3:退出root的登錄
\q?
step4:使用laoweng賬戶登錄
mysql -ulaoweng -p?
就兩個暮芭,除了自己的cw鹿驼,還有一個是自帶的,因為這個賬戶只有cw數(shù)據(jù)庫的查詢權(quán)限
-- 再次創(chuàng)建用戶 (創(chuàng)建一個laoli的賬號辕宏,密碼為12345678畜晰,可以任意電腦進行鏈接訪問, 并且對cw數(shù)據(jù)庫中的所有表擁有所有權(quán)限)
grant all privileges on cw.* to "laoli"@"%" identified by "12345678";
laoli????|? ? %:表示只要跟我一個局域網(wǎng)就可以使用laoli這個賬號登錄我現(xiàn)在的數(shù)據(jù)庫
賬戶管理?(二)賬戶操作
1. 修改權(quán)限
grant 權(quán)限名稱 on 數(shù)據(jù)庫 to 賬戶@主機with grant option;
-- 刷新權(quán)限
flush privileges;
2. 修改密碼
使用root登錄,修改mysql數(shù)據(jù)庫的user表
使用password()函數(shù)進行密碼加密(authentication_string表示密碼)
update user set authentication_string=password('新密碼') where user='用戶名';
eg:修改mysql數(shù)據(jù)庫user表里的laoweng這個賬戶的密碼瑞筐,將其改成123
update user set authentication_string=password('123') where user='laoweng';
?注意修改完成后需要刷新權(quán)限刷新權(quán)限:
flush privileges?
3. 遠程登錄(危險慎用)
為什么危險慎用凄鼻??
只要允許遠程登錄,就可以掃描你的IP和端口聚假,然后在網(wǎng)上下載字典块蚌,對你的root賬戶進行暴力登錄,從而導(dǎo)致脫庫?
如果授權(quán)了(有%)膘格,還登不上峭范,通過Linux系統(tǒng)sudo vim修改/etc/mysql/mysql.conf.d/mysqld.cnf 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf?
然后重啟msyql(Linux版)
sudo service mysql restart
重啟mysql(windows版)
?home鍵——>搜索服務(wù)——>找到MySQL57——>右鍵——>重新啟動
重啟之后,在另外的一臺機器上進行連接測試
不用遠程登錄瘪贱,可以用SSH
如果依然連不上纱控,可能原因:
1) 網(wǎng)絡(luò)不通
通過 ping xxx.xxx.xx.xxx可以發(fā)現(xiàn)網(wǎng)絡(luò)是否正常
2)查看數(shù)據(jù)庫是否配置了bind_address參數(shù)
本地登錄數(shù)據(jù)庫查看my.cnf文件和數(shù)據(jù)庫當前參數(shù)show variables like 'bind_address';
如果設(shè)置了bind_address=127.0.0.1 那么只能本地登錄
3)查看數(shù)據(jù)庫是否設(shè)置了skip_networking參數(shù)
如果設(shè)置了該參數(shù)辆毡,那么只能本地登錄mysql數(shù)據(jù)庫
4)端口指定是否正確
4. 刪除賬戶(推薦使用語法1,如果刪不掉甜害,再用語法2)
語法1:使用root登錄
dropuser'用戶名'@'主機';
eg:
dropuser'laoweng'@'%';
語法2:使用root登錄舶掖,刪除mysql數(shù)據(jù)庫的user表中數(shù)據(jù)
delete from user where user='用戶名';
eg:(刪除mysql數(shù)據(jù)庫user表中l(wèi)aoweng用戶的數(shù)據(jù))
delete from user where user='laoweng';
操作結(jié)束之后需要刷新權(quán)限
flush privileges
5. 忘記 root 賬戶密碼怎么辦 !!
一般也輪不到我們來管理 root 賬戶,所以別瞎操賣白粉的心了
萬一呢? 到時候再來查http://blog.csdn.net/lxpbs8851/article/details/10895085