linux元素據(檔案屬性)儲存在inode
忘記本地管理員密碼(未忘記密碼,直接使用mysqladmin -uroot -p password 新密碼)
1關閉資料庫
2維護模式啟動:mysqld_safe --skip-grant-tables --skip-networking & //重置密碼以後使用/etc/init.d/mysqld stop(restart)關閉
說明:--skip-grant-tables跳過授權表,--skip-networking跳過遠端登陸
3執行mysql連線客戶端,select user,host,authentication_string from mysql.user;查詢使用者
desc mysql.user;查詢表字段,5.7版本密碼是authentication_string欄位
mysql.session和mysql.sys是系統內建使用者
修改密碼:
flush privileges; //必須先執行這句,因為--skip-grant-tables在啟動時跳過了授權,所以這裡要手動從磁碟載入授權表記憶體
grant all on . to root@'localhost' identified by '新密碼'; //也可以用alter user root@'localhost' identified by '新密碼';
mysql連線支援兩種,遠端tcp/ip,本地socket,不依賴網路(mysql -uroot -p密碼 [-s /tmp/mysql.sock])
核心程式mysqld,資料檔案ibd,例項(後台執行、守護執行的程序),啟動時預分配記憶體大小(獨佔記憶體)
例項組成 = mysqld + master thread + work thread(s) + 預分配記憶體
mysqld伺服器程序結構,客戶端通過tcp/ip或socket請求連線到mysqld,由內部執行緒處理,經過連線層->sql層(sql_mode,sql92標準)->儲存引擎層->磁碟、記憶體、網路
檢視連線線程命令:show processlist;終端使用mysql命令連線就是乙個會話,在show processlist;能查到,預設能連151給會話,由引數max_connections控制,會話沒有動作8小時斷開,由引數wait_timeout控制
基於代價的最優執行方法:cpu,記憶體,io,時間消耗最少
邏輯結構的資料庫,在物理儲存上是資料檔案目錄下的乙個資料夾,所以在/data/mysql下mkdir 資料夾,在mysql客戶端執行show databases;能夠查到
8.0版本不太支援myisam引擎
myisam的表,3個檔案構成,表名.frm儲存表結構(列、列屬性),表名.myd儲存資料記錄,表名.myi儲存索引,沒有單獨存放表的元資料(表屬性)
innodb的表,2給檔案構成,表名.frm儲存表結構(列、列屬性),表名.ibd儲存資料記錄和索引,資料字典資訊(表的元資料即表屬性)存在基表(資料目錄下ibdata1檔案,類似linux的inode)
innodb非分割槽表:頁是最小io單元,區是最小分配單元,多個區構成段(乙個表也稱為乙個段)
ibd檔案,每頁(page)16k(建庫的時候可以調整),每次申請空間分配64頁連續空間,即1m(如果page調整為32k,則每次分配32頁,即1m),索引按頁為單位
64頁空間(1m)稱為乙個區
mysql的使用者定義:使用者名稱@'白名單'
舉例(新增注釋的3種指定網段的較常用,不建議用%,沒有起到過濾的作用):
root@'%'
root@'localhost'
root@'127.0.0.1'
root@'10.0.0.%' 代表10.0.0.%/255.255.255.0,即10.0.0.1-10.0.0.255
root@'10.0.0.5%' 代表10.0.0.50-10.0.0.59
root@'10.0.0.0/255.255.254.0' 代表。。。
root@'10.0.%'
建立使用者並授權(並設定密碼):
create user 使用者名稱@'白名單' identified by '密碼'; 不指定identified by則只建立使用者
select user,host from mysql.user; 查詢使用者
grant all on . to 使用者@'白名單' identified by '密碼'; 授權
8.0之前的版本可以不建立使用者,直接授權就能自動建立使用者:grant all on . to 使用者@'白名單' identified by '密碼';
修改使用者密碼:
alter user 使用者名稱@'白名單' identified by '新密碼';
刪除使用者(生產環境一般遮蔽該功能):
drop user 使用者名稱@'白名單';
許可權管理(all+with grant option構成管理員許可權,普通使用者一般只授予select,update,insert,delete許可權):
8.0之前,按命令(select、delete、update、insert、drop等)
8.0之後,設定角色,授權角色
許可權列表:all(普通管理員)、。。。、with grant option(可以給別的使用者授權的許可權,本地管理員具備)
授權命令:
grant 許可權(多給用逗號隔開) on 作用目標(庫名.表名,都可以為*) to 使用者@'白名單' identified by '密碼' [with grant option];
查詢許可權:
show grants for 使用者名稱@'白名單'; 若查詢結果的許可權是usage,表示只能登陸
**分配的許可權列表中的某些許可權:
revoke 許可權(如delete) on 作用目標 from 使用者@'白名單';
參考:
mysql配置使用者許可權 mysql使用者許可權配置
mysql使用者許可權配置 有什麼不對的地方請各位大神多多指教!1,檢視使用者表 mysql select user,password,host from mysql.user user 使用者名稱 password 密碼 加密 host 連線ip 2,開放遠端連線 vim etc mysql ma...
mysql使用者許可權時間 Mysql使用者許可權管理
1.檢視mysql使用者 select user,host,authentication string from mysql.user user host authentication string root localhost root b7d0cf7b6e2f root 127.0.0.1 ro...
mysql使用者和許可權 MySQL使用者及許可權知識梳理
一 賬號使用者賬號mysql使用者賬號組成 user host user 使用者名稱。mysql create user user host identified by pwd 使用者重新命名 mysql rename user old username to new username 刪除使用者 ...