[b]1 mysql簡介[/b]
[quote]mysql是1985幾個瑞典小伙開發的,後來他們成立啦mysql ab公司,他們當時開發mysql的初衷是為零售商提供資料倉儲服務,這也是為什麼mysql擅長查詢而不是事務處理原因啦,所以他們設計啦乙個利用索引順序儲存資料的方法,也就是isam儲存引擎演算法,後來發展為myisam儲存引擎。mysql具有高效能,高可靠性,易用性等特點,主要適合web**系統,日誌記錄系統,資料倉儲系統,和嵌入式系統[/quote]
[b]2.mysql架構組成[/b]
[quote]mysql server的系統架構: sql layer和 storage engine layer[/quote]
[quote]mysql自帶工具介紹mysqladmin命令
#ping 命令檢視server是否正常提夠服務
mysqladmin -uroot -proot -h localhost ping
#status命令檢視當前msyql server的幾個狀態值
mysqladmin -uroot -proot -h localhost status
#processlist命令獲取當前資料庫連線線程資訊
mysqladmin -uroot -proot -h localhost processlist
[/quote]
[b]3.mysql 外掛程式式儲存引擎介紹[/b]
[quote]myisam引擎的每乙個表都被存放為以表名命名的三個物理檔案:tablename.frm,tablename.myd,tablename.myi
支援三種索引: b-tree, r-tree, full-text(b-tree,解決like查詢低效問題)[/quote]
[quote]innodb儲存引擎特點:支援事務安全,資料多版本讀取,外來鍵支援[/quote]
[b]4 mysql安全管理[/b]
[quote]mysql的許可權資訊主要儲存在幾個被稱為grant tables的系統表中,即mysql.user, mysql.db, mysql.host, mysql.table_priv, 和 mysql.column_priv,每次手工修改許可權表之後要執行'flush privileges', 如果通過grant, revoke, create user或者drop user命令調整許可權,不需要呼叫'flush privileges'[/quote]
[quote]#檢視某個使用者目前擁有的許可權,可以使用如下命令檢視或者直接查詢許可權表
root@localhost : mysql> show grants for 'username'@'hostname'[/quote]
[quote]mysql的許可權分為5個級別:global,database,table, column, routine level,許可權優先順序依次下降[/quote]
[quote]global level的許可權控制是指全域性許可權控制,所有許可權資訊儲存在mysql.user表中
建立使用者: create user 'test'@'localhost' identified by 'test';
root@localhost : mysql> grant select, update, delete, insert on *.* to 'test'@'localhost';[/quote]
[quote]database level許可權控制
root@localhost : mysql> grant alter on test.* to 'test'@'localhost'[/quote]
[quote]table level許可權控制:
root@localhost : mysql> grant index on test.t1 to 'test'@%.walmart.com[/quote]
[quote]column level許可權控制,需要在許可權名稱後面將要授權的列名通過括號括起來
root@localhost : mysql> grant select(id,value) on test.t2 to 'test'@'%walmart.com'[/quote]
[quote]routine level 許可權控制只有execute 和alter routine兩種,主要針對procedure 和 fuction
root@localhost : mysql> grant execute on test.p1 to 'test'@'localhost';[/quote]
[b]4.mysql 備份和恢復[/b]
[quote]mysql 備份包括邏輯備份和物理備份[/quote]
[quote][b]邏輯備份:[/b]
1 生成insert語句備份,在mysql執行的狀體下想要取得某個時間點的備份,只有以下兩種情況
(i)同一時刻取出所有資料,需要新增--single-transaction選項
root@localhost : mysql> mysqldump --single-transaction dbname
(ii)是資料庫資料處於靜止狀態,新增--lock-all-tables選項
2 生成特定格式的純文字備份資料檔案
root@localhost:mysql> select * into outfile 'dump.txt' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' from tablename;
或者root@localhost:mysql> mysqldump -uroot -proot -t/d:/mysqldump test test_outfile --fields-enclosed-by=\" --fields--terminated-by=,
[/quote]
[quote][b]還原邏輯備份[/b]
(i)如果是insert語句的邏輯備份
a: mysql -uroot -p < backup.sql
b: root@localhost:mysql> source /tmp/backup.sql
(ii)如果備份是以特殊分割符分割的純資料文字檔案
mysqlimport --user=name -password=pwd test \ --fields-enclosed-by=\" --fields-terminated-by=, /tmp/test_outfile.txt
或者load data infile '/tmp/test_outfile.txt' into table test_outfile fields terminated by '"' enclosed by ',';[/quote]
[quote]物理備份:
1. myisam 儲存引擎的物理備份:
root@localhost:mysql> mysqlhotcopy db_name new_db_name
2. innodb儲存引擎的物理備份: 使用ibbackup
[/quote]
MySQL基本概念和常用命令
1 mysql簡介 引用 mysql是1985幾個瑞典小伙開發的,後來他們成立啦mysql ab公司,他們當時開發mysql的初衷是為零售商提供資料倉儲服務,這也是為什麼mysql擅長查詢而不是事務處理原因啦,所以他們設計啦乙個利用索引順序儲存資料的方法,也就是isam儲存引擎演算法,後來發展為my...
Docker的基本概念和常用命令
1.映象 image docker 映象是 個特殊的 件系統,除了提供容器運 時所需的程式 庫 資源 配置等 件外,還包含了 些為運 時準備的 些配置引數 如匿名卷 環境變數 戶等 映象不包含任何動態資料,其內容在構建之後也不會被改變。映象構建時,會 層層構建,前 層是後 層的基礎。每 層構建完就不...
Linux常用命令與基本概念
複製 檔案的複製 cp原始檔 目標檔案 資料夾的複製 cp r 源資料夾 目標資料夾 刪除刪除檔案 rm檔名 刪除資料夾 rm rf 資料夾 檢視檔案型別 file 檔名 壓縮與解壓 zip 解壓unzip 壓縮檔案 壓縮zip 目標檔案.zip 源資料夾 tar gz解壓 tarzxvf tar原...