MySQL基本概念和常用命令

2021-08-31 16:56:46 字數 3427 閱讀 1584

[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原...