使用者連線到mysql,並做各種查詢,在使用者和伺服器中間分為兩個階段:
1:使用者是否有權連線上來
2:使用者是否有權執行此操作(如select,update等等)
先看第乙個階段:伺服器如何判斷使用者是否有權連線上來
依據三個引數:
你從哪來? host
你是誰? user
你的密碼是多少? password
使用者的這3個資訊,儲存在mysql庫中的user表下
修改host域,使ip可以連線
update user set host='ip位址' where user='root';
flushprivileges;#沖刷許可權
我們也可以刪除使用者使此使用者無法連線:
delete from user where user='';
flushprivileges;
如何修改使用者的密碼:
在mysql8.0版本以上修改密碼的話使用如下語句完成:
usemysqlalter user 'root'@'localhost' identified with mysql_native_password by '你的密碼';
flushprivileges;
新增乙個使用者並授權:
mysql8.0以下的使用下面的語句
grant [許可權1,許可權2,許可權3......]on 哪個庫.哪張表 to 使用者@'host' identfied by 'password';
mysql8.0以上需要將建立使用者和授權分開進行:
#建立新使用者:create user 'lisi'@'192.168.3.110' identified by'111111';
#給新使用者授權:grant all privileges on *.* to 'lisi'@'192.168.3.110';
常用許可權有all,create,drop,insert,delete,update,select
我們來檢視一下lisi使用者的全域性許可權:
可以看到他的許可權是非常大的;那麼現在我們要收回許可權:
#收回許可權revoke all on *.* form 'lisi'@'192.168.3.110';
那麼我們授權lisi使用者的test庫許可權:
grant all on test.* to 'lisi'@'192.168.3.110';
然後我們再看lisi使用者的全域性許可權:
我們看到它的全域性許可權變成了no,但是他真的就沒有任何許可權嗎?
其實不是的,他在db表的記錄裡還有許可權:
select * from db where user='lisi'\g
而且我們show databases;可以發現他還有操作test庫的權力:
同樣的,我們使用grant all on test.goods to 'lisi'@'192.168.3.110';這條語句還能賦予lisi操作goods表的權力。
mysql 多少列合適 MySQL 請選擇合適的列
字串型別 1 varchar 1 儲存可變長字串。理解 比固定長度占用更少的儲存空間,因為它只占用自己需要的空間。例外情況 使用row format fixed建立的myisam表,它為每行使用固定長度的空間,可能會造成浪費。2 儲存長度資訊。如果定義的列小於或等於255,則使用1個位元組儲存長度值...
執行緒數設多少合適??
提問 工作執行緒數是不是設定的越大越好?回答 肯定不是的 1 一來伺服器cpu核數有限,同時併發的執行緒數是有限的,1核cpu設定10000個工作執行緒沒有意義 2 執行緒切換是有開銷的,如果執行緒切換過於頻繁,反而會使效能降低 提問 如果cpu是單核,設定多執行緒有意義麼,能提高併發效能麼?回答 ...
到底工資要多少合適?
大部分剛開始工作的時候大都聽過這樣乙個觀點 剛開始工作的工資不重要,重要的是能學到東西就行。我卻不認可這個觀點,我覺得就是扯淡,這就是小氣老闆騙騙應屆生的小把戲而已,工資不重要給你每月1000塊,能學到一堆的東西,你幹不?傻子才幹,你連飯都吃不飽,連最基本的日常開銷都維持不了,你還有心思有精力工作學...