本文目錄一覽:
- 1、mysql root無法修改用戶許可權,root無法操作資料庫
- 2、mysql的特點是什麼?
- 3、設計一個log類,需要用到mysql中的curd操作,是應該使用繼承呢還是組合
- 4、MySQL中MyISAM和InnoDB的區別
mysql root無法修改用戶許可權,root無法操作資料庫
因為之前root安全設置問題,把root的select_priv, update_priv, insert_priv, delete_priv許可權都給下掉了。
現在要grant 修改非root用戶許可權的時候發現修改不了,才發現是root許可權的問題。
修改mysql配置文件
mysqld新增skip-grant-tables,wq保存退出
重啟mysql服務
進入mysql
查看mysql用戶表信息,發現root沒有CURD的許可權
發現問題直接update,修改它,如果其它許可權沒了,也可以修改
修改my.cnf,注釋掉skip-grant-tables
重啟mysql服務
登錄root賬號,就可以用了
其實和伺服器的修改方法一樣
查看my.cnf掛載情況,如果已經知道了my.cnf的掛載位置,就不用執行這一步。
找到my.cnf配置文件,這邊的掛載到宿主機的配置在/opt/mysql/config/my.cnf
注意 5d15960f2861 是我自己的 CONTAINER ID
如果my.cnf沒有掛載出來,那就進容器裡面改my.cnf了,注意 5d15960f2861 是我自己的 CONTAINER ID
my.cnf 中的mysqld新增skip-grant-tables,wq保存退出
重啟docker mysql服務
進入docker mysql容器的mysql服務
查看mysql用戶表信息,發現root沒有CURD的許可權
發現問題直接update,修改它,如果其它許可權沒了,也可以修改
修改my.cnf,注釋掉skip-grant-tables
重啟docker mysql服務
登錄root賬號,就可以用了
mysql的特點是什麼?
一、MySQL資料庫的特點和優勢:
(1)功能強大
MySQL 中提供了多種資料庫存儲引擎,各引擎各有所長,適用於不同的應用場合,用戶可以選擇最合適的引擎以得到最高性能,可以處理每天訪問量超過數億的高強度的搜索 Web 站點。MySQL5 支持事務、視圖、存儲過程、觸發器等。
(2)支持跨平台
MySQL 支持至少 20 種以上的開發平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。這使得在任何平台下編寫的程序都可以進行移植,而不需要對程序做任何的修改。
(3)運行速度快
高速是 MySQL 的顯著特性。在 MySQL 中,使用了極快的 B 樹磁碟表(MyISAM)和索引壓縮;通過使用優化的單掃描多連接,能夠極快地實現連接;SQL 函數使用高度優化的類庫實現,運行速度極快。
(4)支持面向對象
PHP 支持混合編程方式。編程方式可分為純粹面向對象、純粹面向過程、面句對象與面向過程混合 3 種方式。
(5)安全性高
靈活和安全的許可權與密碼系統,允許基本主機的驗證。連接到伺服器時,所有的密碼傳輸均採用加密形式,從而保證了密碼的安全。
(6)成本低
MySQL 資料庫開放源代碼且無版權制約,是一種完全免費的產品,用戶可以直接通過網路下載,自主性及使用成本低。體積小,安裝方便。歷史悠久,用戶使用活躍,遇到問題可以尋求幫助,易於維護。
(7)支持各種開發語言
MySQL 為各種流行的程序設計語言提供支持,為它們提供了很多的 API 函數,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 語言等。
(8)資料庫存儲容量大
MySQL 資料庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由 MySQL 內部限制決定的。InnoDB 存儲引擎將 InnoDB 表保存在一個表空間內,該表空間可由數個文件創建,表空間的最大容量為 64TB,可以輕鬆處理擁有上千萬條記錄的大型資料庫。
(9)支持強大的內置函數
PHP 中提供了大量內置函數,幾乎涵蓋了 Web 應用開發中的所有功能。它內置了資料庫連接、文件上傳等功能,MySQL 支持大量的擴展庫,如 MySQLi 等,可以為快速開發 Web 應用提供便利。
二、相比其他資料庫的特點和優勢:
(1) 對事務的提交
MySQL默認是自動提交,不需要在寫commit指令或者點擊commit按鈕。
(2) 分頁查詢
MySQL是直接在SQL語句中寫”select… from …where…limit m, n”,有limit就可以實現分頁。PHP里還可以用SEEK定位到結果集的位置。
(3) 事務隔離級別
MySQL是read commited的隔離級別。
一個session讀取數據時,其他session不能更改數據,但可以在表最後插入數據。session更新數據時,要加上排它鎖,其他session無法訪問數據。
(4) 複製簡單
MySQL複製伺服器配置簡單。
(5) 自動增長的數據類型處理
MYSQL有自動增長的數據類型,插入記錄時不用操作此欄位,會自動獲得數據值。
(6) 單引號的處理
MYSQL里可以用雙引號包起字元串。
(7) 日期欄位的處理
MYSQL日期欄位分DATE和TIME兩種。
(8) 空字元的處理
MYSQL的非空欄位也有空的內容,NULL或空字元。
設計一個log類,需要用到mysql中的curd操作,是應該使用繼承呢還是組合
原則一:如果類A 和類B 毫不相關,不可以為了使B 的功能更多些而讓B 繼承A 的功能
原則二:如果類B 有必要使用A 的功能,則要分兩種情況考慮
a、若在邏輯上B 是A 的「一種」(a kind of ),則允許B 繼承A 的功能。
b、若在邏輯上A 是B 的「一部分」(a part of),則不允許B 繼承A 的功能,而是要用A和其它東西組合出B。
MySQL中MyISAM和InnoDB的區別
MYISAM 表是典型的數據與索引分離存儲,主鍵和二級索引沒有本質區別。比如在 MYISAM 表裡主鍵、唯一索引是一樣的,沒有本質區別。
MYISAM 表的索引存儲方式最大的缺點沒有按照物理數據行順序存儲,這樣無論對主鍵的檢索還是對二級索引的檢索都需要進行二次排序。
INNODB 表本身是索引組織表,也就是說索引就是數據。下圖表T1的數據行以聚簇索引的方式展示,非葉子節點保存了主鍵的值,葉子節點保存了主鍵的值以及對應的數據行,並且每個頁有分別指向前後兩頁的指針。
INNODB 表不同於 MYISAM,INNODB 表有自己的數據頁管理,默認 16KB。MYISAM 表數據的管理依賴文件系統,比如文件系統一般默認 4KB,MYISAM 的塊大小也是 4KB,MYISAM 表的沒有自己的一套崩潰恢復機制,全部依賴於文件系統。
INNODB 表這樣設計的優點有兩個:
1. 數據按照主鍵順序存儲。主鍵的順序也就是記錄行的物理順序,相比指向數據行指針的存放方式,避免了再次排序。
2. 兩個葉子節點分別含有指向前後兩個節點的指針,這樣在插入新行或者進行頁分裂時,只需要移動對應的指針即可。
但是也有缺點:
1. 二級索引由於同時保存了主鍵值,體積會變大。特別是主鍵設計不合理的時候,比如用 UUID 做主鍵。
2. 對二級索引的檢索需要檢索兩次索引樹。第一次通過檢索二級索引葉子節點,找到過濾行對應的主鍵值;第二次通過這個主鍵的值去聚簇索引中查找對應的行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286588.html