標籤:檔案中 需要 另一個 ror inno 使用 持久性 mit nod
MySQL系統管理使用者管理
CREATE USER username IDENTIFIED BY ‘password‘; 建立使用者CREATE USER@’%’ IDENTIFIED BY ‘password‘;GRANT ALL PRIVILEGES ON *.* TO [email protected]‘%‘; 賦予對應的許可權FLUSH PRIVILEGES;
建立使用者之後可以使用如下命令來刪除使用者:
DROP USER username; 刪除使用者DELETE FROM user where User=‘username‘; 刪除使用者,需要首先use mysql
grant語句賦予使用者相應的許可權,通俗的講,grant相當於以下sql語句:
grant priv_set on dbname to username;
如何查看使用者的相應許可權呢?
SHOW GRANTS FOR username;
如何撤銷使用者對應的許可權?
REVOKE ALL PRIVILEGES ON dbname.table FROM username;REVOKE INSERT ON dbname.table FROM username; 撤銷建立表許可權
使用者管理更新過後請使用FLUSH PRIVILEGES,否則可能會出現ERROR 1396錯誤。
表資料複製
利用select可以實現表結構與資料的同步複製。
CREATE TABLE tablename SELECT * FROM oldtablename;CREATE TABLE tablename SELECT * FROM oldtablename where id < 10;CREATE TABLE tablename LIKE oldtablename; 利用linke語句也可以實現表的複製
Database Backup與恢複
資料庫的匯出:
mysqldump -h x.x.x.x -u root database > backup.sql -p; 輸入資料密碼後資料庫匯出到backup.sql檔案中mysql -h x.x.x.x -u root database < backup.sql -p; 執行資料恢複操作
執行資料庫的恢複操作時database必須存在,否則恢複資料時找不到對應的資料庫。
利用source命令,也可以執行資料恢複操作:
mysql> use xxx;mysql> source backup.sql
MySQL的儲存引擎
儲存引擎就是表的類型,MySQL有多種儲存引擎,不同的儲存引擎有不同的儲存機制、索引技術和鎖定水平。
MySQL儲存引擎分為事務安全表的引擎和非事務安全表的引擎,事務是資料庫中一個重要概念,事務具有原子性、一致性、隔離性和持久性4中特性。事務是為了保護資料的安全性,防止資料庫出現故障而導致資料庫中資料不一致。事務安全表可以使用COMMIT語句合并多條語句,適合需要經常更新的表;非事務安全表由於沒有事務支援,處理速度較快,儲存時佔用記憶體較小,資料表執行更新佔用記憶體少。
MyISAM引擎
MyISAM適合讀操作次數遠大於寫操作的資料庫,不支援事務操作,由於不需要處理事務記錄,其佔用記憶體較小,查詢效率較高。每個MyISAM表對應兩個磁碟檔案:一個是用於儲存資料的資料檔案,其相對路徑為dbname/tablename.MYD;另一個是儲存索引的索引檔案,其相對路徑為dbname/tablename.MYI。
InnoDB引擎
InnoDB是MySQL的預設儲存引擎,InnoDB引擎管理事務安全表,使用多版本並發控制和行級鎖來提供對事務的支援,除了提供事務支援外,InnoDB還支援外鍵約束,擁有故障恢複能力。InnoDB設計目標是以最大的效率處理海量資料,其CPU利用率是基於所有磁碟的關聯式資料庫引擎中最高的,因此,InnoDB引擎非常適合支援事務且並發讀寫頻率較高的資料庫。
InnoDB和MyISAM對比
InnoDB和MyISAM是MySQL中最常用的兩個儲存引擎,這兩個儲存引擎各有優劣,對儲存引擎的選擇應該根據具體應用來選擇,只有這樣才能最大限度發揮MySQL資料庫的效能優勢。
InnoDB和MyISAM區別總結如下:
- MyISAM不支援交易處理和外鍵約束等進階處理,而InnoDB儲存引擎支援
- MyISAM強調的是效能,其執行速度比InnoDB更快,而InnoDB儲存引擎則強調的是資料安全性。
- MyISAM支援表級鎖定,而InnoDB支援行級鎖定。
- MyISAM支援全文索引,而InnoDB不支援。
MySQL進階特性