Mysql常用命令大全-整理-精

2020-09-03 奮鬥魔都程式設計師的日常

命令大全

net start mySql;

進入:mysql -u root -p/mysql -h localhost -u root -p databaseName;

列出資料庫:show databases;

選擇資料庫:use databaseName;

列出表格:show tables;

顯示表格列的屬性:show columns from tableName;

建立資料庫:source fileName.txt;

匹配字符:可以用通配符_代表任何一個字符,%代表任何字符串;

增加一個欄位:alter table tabelName add column fieldName dateType;

增加多個欄位:alter table tabelName add column fieldName1 dateType,add columns

多行命令輸入:注意不能將單詞斷開;當插入或更改數據時,不能將欄位的字符串展開到

;

增加一個管理員帳戶:grant all on *.* to user@localhost identified by &34;;

每條語句輸入完畢後要在末尾添加分號&39;,或者填加&39;也可以;

查詢時間:select now();

查詢當前用戶:select user();

查詢資料庫版本:select version();

查詢當前使用的資料庫:select database();

1、刪除student_course資料庫種的students數據表:

rm -f student_course/students.*

2、備份資料庫:(將資料庫test備份)

mysqldump -u root -p test>c:\test.txt

備份表格:(備份test資料庫下的mytable表格)

mysqldump -u root -p test mytable>c:\test.txt

將備份數據導入到資料庫:(導回test資料庫)

mysql -u root -p test

3、創建臨時表:(建立臨時表zengchao)

create temporary table zengchao(name varchar(10));

4、創建表是先判斷表是否存在

create table if not exists students(,,);

5、從已經有的表中複製表的結構

create table table2 select * from table1 where 1<>1;

6、複製表

create table table2 select * from table1;

7、對表重新命名

alter table table1 rename as table2;

8、修改列的類型

alter table table1 modify id int unsigned;//修改列id的類型為int unsigned

alter table table1 change id sid int unsigned;//修改列id的名字為sid,而且把屬性修改為


9、創建索引

alter table table1 add index ind_id (id);

create index ind_id on table1 (id);

create unique index ind_id on table1 (id);//建立唯一性索引

10、刪除索引

drop index idx_id on table1;

alter table table1 drop index ind_id;

11、聯合字符或者多個列(將列id與&34;和列name和&34;連接)

select concat(id,&39;,name,&39;) from students;

12、limit(選出10到20條)<第一個記錄集的編號是0>

select * from students order by id limit 9,10;

13、MySQL不支持的功能

事務,視圖,外鍵和引用完整性,存儲過程和觸發器


14、MySQL會使用索引的操作符號

<,<=,>=,>,=,between,in,不帶%或者_開頭的like

15、使用索引的缺點

1)減慢增刪改數據的速度;

2)佔用磁碟空間;

3)增加查詢優化器的負擔;

當查詢優化器生成執行計劃時,會考慮索引,太多的索引會給查詢優化器增加工作量,


16、分析索引效率

方法:在一般的SQL語句前加上explain;

分析結果的含義:

1)table:表名;

2)type:連接的類型,(ALL/Range/Ref)。其中ref是最理想的;

3)possible_keys:查詢可以利用的索引名;

4)key:實際使用的索引;

5)key_len:索引中被使用部分的長度(字節);

6)ref:顯示列名字或者&34;(不明白什麼意思);

7)rows:顯示MySQL認為在找到正確結果之前必須掃描的行數;

8)extra:MySQL的建議;

17、使用較短的定長列

1)儘可能使用較短的數據類型;

2)儘可能使用定長數據類型;

a)用char代替varchar,固定長度的數據處理比變長的快些;

b)對於頻繁修改的表,磁碟容易形成碎片,從而影響資料庫的整體性能;

c)萬一出現數據表崩潰,使用固定長度數據行的表更容易重新構造。使用固定長度的

每個記錄的開始位置都是固定記錄長度的倍數,可以很容易被檢測到,但是使用可

d)對於MyISAM類型的數據表,雖然轉換成固定長度的數據列可以提高性能,但是佔


18、使用not null和enum

儘量將列定義為not null,這樣可使數據的出來更快,所需的空間更少,而且在查詢時,

不需要檢查是否存在特例,即null值,從而優化查詢;

如果一列只含有有限數目的特定值,如性別,是否有效或者入學年份等,在這種情況下

enum列的值,MySQL處理的更快,因為所有的enum值在系統內都是


19、使用optimize table

對於經常修改的表,容易產生碎片,使在查詢資料庫時必須讀取更多的磁碟塊,降低查

blob數據類型更為突出,因為

optimize table來整理碎片,保證資料庫性能不下降,優

optimize table可以用於MyISAM和BDB類型的數據表。實際

mysqldump來轉存數據表,然後使用轉存後的文件並重新建數


20、使用procedure analyse()

可以使用procedure analyse()顯示最佳類型的建議,使用很簡單,在select語句後面加

procedure analyse()就可以了;例如:

select * from students procedure analyse();

select * from students procedure analyse(16,256);

第二條語句要求procedure analyse()不要建議含有多於16個值,或者含有多於256位元組

enum類型,如果沒有限制,輸出可能會很長;

21、使用查詢緩存

1)查詢緩存的工作方式:

第一次執行某條select語句時,伺服器記住該查詢的文本內容和查詢結果,存儲在緩存

該數據表的任何緩存

2)配置緩存參數:

變量:query_cache _type,查詢緩存的操作模式。有3中模式,0:不緩存;1:緩存查

select sql_no_cache開頭;2:根據需要只緩存那些以select sql_cache開頭的查

query_cache_size:設置查詢緩存的最大結果集的大小,比這個值大的不會被緩存。

22、調整硬體

1)在機器上裝更多的內存;

2)增加更快的硬碟以減少I/O等待時間;

尋道時間是決定性能的主要因素,逐字地移動磁頭是最慢的,一旦磁頭定位,從磁軌讀

3)在不同的物理硬碟設備上重新分配磁碟活動;

如果可能,應將最繁忙的資料庫存放在不同的物理設備上,這跟使用同一物理設備的不

瀏覽 (1442) 評論 (1) 分類: 資料庫 相關推薦 評論

培訓

培訓目的

MySQL 資料庫方面的基礎培訓,為了使項目組成員能夠達到使用MySQL 數

培訓對象

常用詞及符號說明

:一種免費的跨平臺的資料庫系統

:表示是在dos 命令窗口下面

表示是在mysql 的命令行下

參考信息


連接MYSQL

mysql -h主機地址 -u用戶名 -p用戶密碼


:u與root可以不用加空格,其它也一樣)

path 裡面要設定mysql的bin的路徑:

修改密碼

mysqladmin

mysqladmin -u用戶名 -p舊密碼 password 新密碼

1:E:\mysql>mysqladmin -uroot password root

root沒有密碼,所以-p舊密碼一項就可以省略了。

2:再將root的密碼改為root123。

user 表


grant

grant 權限 on 資料庫.表格| 其他 to 用戶@主機 IDENTIFIED BY 口令

1:給test用戶在本地localhost 所有權限(除了GRANT OPTION),口令為 test

相當於修改了test 用戶的口令)


all on *.* to test @localhost identified by PASSWORD &34; Identified by &34;;

顯示命令

:


:

:

:


index:

:


MySQL資料庫的版本:


:

:


INNODB 狀態


..

創建.修改.刪除

創建資料庫


:

如果不存在,則創建.

設定字符集

創建表


:


設定主健

設定字符集

默認存儲引擎

MyISAM 存儲引擎的表,在硬碟上存在3個文件


MEMORY 歸檔 ARCHIVE 等等

不再使用了

創建索引


customer 表的name 欄位前十個字符作為索引

特性

MyISAM, InnoDB, or BDB 的表格上,可以在有null值的欄位上創建索引

MyISAM, InnoDB, or BDB 的表格上,可以在BLOB TEXT 上創建索引

MyISAM 類型表格上,可以在CHAR, VARCHAR, and TEXT 欄位類型上創建FULLTEXT 索


修改表


忽略主健重複的錯誤,如果重複,採用第一條,其餘刪除

:同時多個操作

, 重命名 INTEGER 欄位,從 a 到 b:

修改欄位類型,仍然需要新舊欄位名稱,即使欄位名稱相同:

modify

mysql 5.0 可以使用FIRST or AFTER 欄位來添加add 欄位,默認是在最後

也可以使用

mysql 5.0 InnoDB 存儲引擎支持 ALTER TABLE 刪除外掛:

:


a 欄位為 TINYINT NOT NULL , 並且 change 欄位 b,從 CHAR(10) 到 CHAR(20) 並

c:

d:

a d 上增加索引:

c:

c ,並且添加c 為主健:


修改外鍵

:


:


刪除


: mysql>drop DATABASE IF EXISTS testdb;


: mysql>drop TABLE IF EXISTS testTable;


: mysql>drop index testIndex on testTable;


:RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

資料庫備份恢復


--opt --user=用戶名 --password=密碼 --default_character-set=字符集 -B資料庫>

sql文件

:

--user=ptsdb --password=ptsdb --default_character-set=ujis --opt


--user=用戶名 --password=密碼 --default_character-set=字符集 [資料庫]<導入的sql


對於InnoDB(沒有設定字符集)

mysqldump import example for InnoDB tables is at least 100x faster than previous


DATABASE IF NOT EXISTS db_name and USE db_name statements are included in the


表數據備份


Mysqldump


mysql


select into OUTFILE

select * from imptest where id=101 into OUTFILE &39; FIELDS

LOAD DATA INFILE


mysqlimport:


新數據導入數據表中之前刪除數據數據表中的所有信息

不管是否遇到錯誤,mysqlimport將強制繼續插入數據

跳過或者忽略那些有相同唯一

這個選項與-i選項的作用相反;此選項將替代 表中有相同唯一關鍵字的記錄

數據管道導入導出

-h10.5.1.66 -uroot -proot --default-character-set=name

輸出的sql 語句)

在新的server上建立空的資料庫)

在舊的伺服器上導出資料庫)

在新的伺服器上導入*.sql)

.

各種欄位的取值範圍


即0-(28-1)

即-215至(215-1)

即0至(216-1)

即?223至(223-1)

即0至(224-1)

或 INTEGER 4 bytes

即?231至(231-1)

或 INTEGER UNSIGNED 4 bytes

即0至(232-1)

即?263至(263-1)

即0至(264-1)


或 DOUBLE PRECISION 或 REAL 8 bytes


或 NUMERIC(M,D) 不定

M(整個數字的長度,包括小數點,小數點左邊的位數,小數點右邊的位數,但不包括負號)和

小數點右邊的位數)來決定,M預設為10,D預設為0


4位格式,4位格式取值範圍為1901 - 2155,0000,2位格式取值範圍為70-69(1970-2069)

或 NCHAR(M) [BINARY] M bytes

的範圍為1 - 255,如果沒有BINARY項,則不分大小寫,NCHAR表示使用預設的字符集.在數據

中以空格補足,但在取出來時末尾的空格將被去掉.

的範圍為0?255 L+1 bytes L<=M

以及以後 M 範圍為 0-65535


.

或 TINYTEXT L+1 bytes

個字符

或 TEXT L+2 bytes

個字符

或 MEDIUMTEXT L+3 bytes

個字符

或 LONGTEXT L+4 bytes

個字符

65535個不同的值

64個成員

查詢

子句可以用來限制由SELECT語句返回過來的數據數量,它有一個或兩個參數,如果給

0開始(注意不是1),第二個參數


返回第6-15行數據

返回前5行

返回前5行

詳解

Create table 吧


挑出左邊的 table emp 中的所有資料,即使 emp_dept 中沒有的資料也挑出來,沒有的就

NULL 來顯示,

也即顯示資料是以左邊的 table emp 中的資料為基礎


挑出 table emp 中有二 table emp_dept 中沒有的人員資料


把 table emp_dept 放在左邊的情形(當然以 emp_dept 中的數據為基礎來顯示資料,emp

emp_dept 中多的資料也就不會顯示出來了):


挑資料時以右邊 table emp_dept 中的資料為基礎來顯示資料


我們再把 table 的位置交換一下,再用 right join 試試


是不是和 left join 一樣了?


別名 alias

GROUP BY、ORDER BY或在HAVING部分中使用別名引用列。別名也可以用來為列


你的 ANSI SQL 不允許你在一個WHERE子句中引用一個別名。這是因為在WHERE代


語句被執行以確定哪些行應該包括GROUP BY部分中,而HAVING用來決定應該只用

正則

regex)是定義複雜查詢的一個強有力的工具。


hello只和字符串「hello」匹配。

hello|word既能匹配字符串「hello」也能匹配字符串「word」。

B[an]*s可以匹配字符串「Bananas」、「Baaaaa

「Bs」以及其他任何以B開頭以s結尾的字符串,中間可以包括任意個a和任意個n的組


(表示不匹配)

(表示匹配)


(表示匹配)

(表示不匹配)


(表示匹配)

(表示匹配)

0-n多個a(包括空串)

(表示匹配)

(表示匹配)

(表示匹配)

1-n多個a(不包括空串)

(表示匹配)

(表示不匹配)

0-1個a

(表示匹配)

(表示匹配)

(表示不匹配)

de或abc

(表示匹配)

(表示不匹配)

(表示匹配)

(表示匹配)

(表示匹配)

(表示不匹配)

0-n個)abc(包括空串)

(表示匹配)

(表示不匹配)

(表示匹配)


a{0,}

a{1,}

a{0,1}

{}內只有一個整型參數i,表示字符只能出現i次;在{}內有一個整型參數i,

」,表示字符可以出現i次或i次以上;在{}內只有一個整型參數i,

」,再跟一個整型參數j,表示字符只能出現i次以上,j次以下

i次和j次)。其中的整型參數必須大於等於0,小於等於 RE_DUP_MAX(默認是25

)。


a」、「b」、「c」、「d」或「X」

a」、「b」、「c」、「d」、「X」以外的任何字符。

[」、「]」必須成對使用

(表示匹配)

(表示不匹配)

(表示匹配)

(表示不匹配)

(表示匹配)

(表示不匹配)


,

[[.ch.]]*c匹配chchcc的前五個字符


o和(+)是

[[=o=]]、[[=(+)=]]和[o(+)]是完全等價的。

[:和:]中間是字符類的名字,可以代表屬於這個類的所有字符。

: alnum、digit、punct、alpha、graph、space、blank、lower、uppe

、cntrl、print和xdigit

(表示匹配)

(表示不匹配)


alnum中

(表示匹配)

(表示不匹配)

(表示

中使用 IF Statement


女&39;男&39; else &39; end) as sex,name from test;


女 | wang |

男 | zhang |

女 | li |


: 相當於Oracle 中的decode 和case when

存儲過程和函數


hello,顯示問候語


2: 查詢t表的記錄總數


補充:trigger


,


刪除 DELETE Syntax


,不能使用order by 和limit

: ,只是在刪除 在from 前面的表格中匹配的記錄

t1,t2,t3 表選出要刪除的記錄,只是刪除t1,t2 表中所匹配的這些記錄.

: 在from 列出的表中刪除選中的記錄.

t1,t2,t3 表選出要刪除的記錄(使用using ),只是刪除t1,t2 表中所匹配的這些記錄.

: 如果您使用一個別名,您必須使用別名.

,但是在這種情況下,你必須指定表,而不能使用別名:

,您不能從相同表的子查詢中,刪除同一表的數據

1 星期前

錯誤:文件無法打開,使用後臺修復或者使用phpmyadmin進行修復。

錯誤:資料庫用戶權限不足,請聯繫空間商解決

錯誤:資料庫伺服器/資料庫用戶名/資料庫名/資料庫密碼錯誤,請聯繫空間商檢查帳

錯誤:程序文件跟資料庫有衝突,請使用正確的程序文件上傳上去覆蓋。

錯誤:數據表缺失,請恢復備份數據.

:創建表失敗

:創建資料庫失敗

:資料庫已存在,創建資料庫失敗

:資料庫不存在,刪除資料庫失敗

:不能刪除資料庫文件導致刪除資料庫失敗

:不能刪除數據目錄導致刪除資料庫失敗

:刪除資料庫文件失敗

:不能讀取系統表中的記錄

:記錄已被其他用戶修改

:硬碟剩餘空間不足,請加大硬碟可用空間

:關鍵字重複,更改記錄失敗

:關閉時發生錯誤

:讀文件錯誤

:更改名字時發生錯誤

:寫文件錯誤

:記錄不存在

:數據表是只讀的,不能對它進行修改

:系統內存不足,請重啟資料庫或重啟伺服器

:用於排序的內存不足,請增大排序緩衝區

:已到達資料庫的最大連接數,請加大資料庫可用連接數

:系統內存不足

:無效的主機名

:無效連接

:當前用戶沒有訪問資料庫的權限

:不能連接資料庫,用戶名或密碼錯誤

:欄位不能為空

:資料庫不存在

:數據表已存在

:數據表不存在

:欄位不存在

:無效的SQL語句,SQL語句為空

:不能建立Socket連接

:數據表已滿,不能容納任何記錄

:打開的數據表太多

:資料庫出現異常,請重啟資料庫

:連接資料庫失敗,沒有連接資料庫的權限

:資料庫用戶不存在

:當前用戶無權訪問資料庫

:當前用戶無權訪問數據表

:當前用戶無權訪問數據表中的欄位

:數據表不存在

:未定義用戶對數據表的訪問權限

:SQL語句語法錯誤

:網絡錯誤,出現讀錯誤,請檢查網絡連接狀況

:網絡錯誤,讀超時,請檢查網絡連接狀況

:網絡錯誤,出現寫錯誤,請檢查網絡連接狀況

:網絡錯誤,寫超時,請檢查網絡連接狀況

:欄位值重複,入庫失敗

:欄位值重複,更新記錄失敗

:打開數據表失敗

:提交事務失敗

:回滾事務失敗

:當前用戶和資料庫建立的連接已到達資料庫的最大連接數,請增大可用的資料庫連接

:加鎖超時

:當前用戶沒有創建用戶的權限

:外鍵約束檢查失敗,更新子表記錄失敗

:外鍵約束檢查失敗,刪除或修改主表記錄失敗

:當前用戶使用的資源已超過所允許的資源,請重啟資料庫或重啟伺服器

:權限不足,您無權進行此操作

:MySQL版本過低,不具有本功能

:Can't connect to ...通常意味著沒有一個MySQL伺服器運行在系統上或當試圖連接

伺服器時,你正在使用一個錯誤的套接字文件或TCP/IP埠。

以上只是常見錯誤號,並且解決辦法也不一定肯定管用!具體請參考MYSQL手冊(各


/ 錯誤代碼 SQL狀態


1 星期前

備份和恢復

/譯者:葉金榮(Email: ),來源:http://imysql.cn,轉載請註明作/譯者和出處,並且不能

2006/10/01

MySQL 的備份和恢復機制,以及如何維護數據表,包括最主要的兩種表類型:

和 Innodb,文中設計的 MySQL 版本為 5.0.22。

MySQL 支持的免費備份工具有:mysqldump、mysqlhotcopy,還可以用 SQL 語法進行

BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者備份二進位日誌(binlog),還可以

MyISAM 表是保存成文件的形式,因此相對比較容

Innodb 所有的表都保存在同一個數據文件

中(也可能是多個文件,或者是獨立的表空間文件),相對來說比較不好備份,免

binlog,或者用 mysqldump。

、mysqldump

備份

是採用SQL級別的備份機制,它將數據表導成 SQL 腳本文件,在不同的 MySQL

mysqldump 的一些主要參數:

mysqldump,導出的數據將和哪種資料庫或哪個舊版本的 MySQL 伺服器相兼容。

ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、

、no_field_options 等,要使用幾個值,用逗號將它們隔開。當然了,它並

,-c

INSERT 方式,也就是把所有的值都寫在一行。這麼做能

max_allowed_packet 參數的影響而導致插入失敗。因此,


latin1 字符集的話,那麼導


mysqldump 在 INSERT 語句的開頭和結尾增加 /*!40000 ALTER TABLE table DISABLE

和 /*!40000 ALTER TABLE table ENABLE KEYS */; 語句,這能大大提高插入語句的速

MyISAM 表。

mysqldump 開啟 --complete-insert 模式,因此不想用它的的話,就使用本選

false 即可。

如果有二進位數據就必須使用本選項。影響到的

BINARY、VARBINARY、BLOB。

,-x

提交請求鎖定所有資料庫中的所有表,以保證數據的一致性。這是一個全

--single-transaction 和 --lock-tables 選項。

--lock-all-tables 類似,不過是鎖定當前導出的數據表,而不是一下子鎖定全部庫下的

MyISAM 表,如果是 Innodb 表可以用 --single-transaction 選項。

,-t

CREATE TABLE 語句。

,-d


只是一個快捷選項,等同於同時添加 --add-drop-tables --add-locking --create-option

--extended-insert --lock-tables --quick --set-charset 選項。本選項能讓

很快的導出數據,並且導出的數據能很快導回。該選項默認開啟,但可以用

禁用。注意,如果運行 mysqldump 沒有指定 --quick 或 --opt 選項,則會將整個

,-q

它強制 mysqldump 從伺服器查詢取得記錄直接輸出而不是取

,-R


BEGIN SQL語句,BEGIN 不會阻塞任何應用程式且能保證

InnoDB 和 BDB。

--lock-tables 選項是互斥的,因為 LOCK TABLES 會使任何掛起的事務隱含提交。

--quick 選項。

--skip-triggers 禁用它。

SQL 來備份 MyISAM 表:


SQL 來備份 Innodb 表:


--master-data 參數來實現,如下:


binlog了,而後在導出的文件中加入CHANGE

語句來指定當前備份的binlog位置,如果要把這個文件恢復到slave裡去,就可以

還原

mysqldump 備份出來的文件是一個可以直接倒入的 SQL 腳本,有兩種方法可以將數據

直接用 mysql 客戶端


用 SOURCE 語法

SQL 語法,而是 mysql 客戶端提供的功能,例如:

mysqld 運行用戶(例如 nobody)有權限讀取的

、 mysqlhotcopy

備份

是一個 PERL 程序,最初由Tim Bunce編寫。它使用 LOCK TABLES、FLUSH

和 cp 或 scp 來快速備份資料庫。它是備份資料庫或單個表的最快的途徑,但它只

只能用於備份 MyISAM,並且只能運行在 類Unix 和 NetWare 系統上。

支持一次性拷貝多個資料庫,同時還支持正則表達。以下是幾個例子:

把資料庫目錄 db_name 拷貝到 /tmp 下)


mysqlhotcopy 的幫助:

mysqlhotcopy,必須要有 SELECT、RELOAD(要執行 FLUSH TABLES) 權限,

datadir/db_name 目錄的權限。

還原

備份出來的是整個資料庫目錄,使用時可以直接拷貝到 mysqld 指定的

在這裡是 /usr/local/mysql/data/)目錄下即可,同時要注意權限的問題,如下例:

-R nobody:nobody /usr/local/mysql/data/ (將 db_name 目錄的屬主改成 mysqld

)

、 SQL 語法備份

備份

TABLE 語法其實和 mysqlhotcopy 的工作原理差不多,都是鎖表,然後拷貝數據文

但是效果不理想,因此不推薦使用。它只拷貝表結構文件和數據文


必須要有 FILE 權限才能執行本SQL,並且目錄 /tmp/db_name/ 必須能被 mysqld 用

則是把數據導出來成為普通的文本文件,可以自定義欄位間隔的方式,


FILE 權限才能執行本SQL,並且文件 /tmp/db_name/tbl_name.txt 必須能

mysqld 用戶可寫,導出的文件不能覆蓋已經存在的文件,以避免安全問題。

恢復

BACKUP TABLE 方法備份出來的文件,可以運行 RESTORE TABLE 語句來恢復數據表。


SELECT INTO OUTFILE 方法備份出來的文件,可以運行 LOAD DATA INFILE 語句來恢復數


倒入數據之前,數據表要已經存在才行。如果擔心數據會發生重複,

REPLACE 關鍵字來替換已有記錄或者用 IGNORE 關鍵字來忽略他們。

、 啟用二進位日誌(binlog)

binlog 的方法相對來說更靈活,省心省力,而且還可以支持增量備份。

binlog 時必須要重啟 mysqld。首先,關閉 mysqld,打開 my.cnf,加入以下幾行:


mysqld 就可以了。運行過程中會產生 binlog.000001 以及 binlog.index,前面的

mysqld 記錄所有對數據的更新操作,後面的文件則是所有 binlog 的索引,都不能

binlog 的信息請查看手冊。

可以先執行一下 SQL 語句,讓 mysqld 終止對當前 binlog 的寫入,就可以把


master.info 和 relay-log.info 文件。

binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 來查看,如:

SQL 語句,並且還可以限定時間範圍,相當的方


mysqlbinlog 輸出的 SQL 語句直接作為輸入來執行它。

不妨採用這種方式來備份。由於作為 slave 的機器性能要求相對不是

因此成本低,用低成本就能實現增量備份而且還能分擔一部分數據查詢壓力,何樂

、 直接備份數據文件

SQL 語句:

同時鎖定數據表,以保證拷貝過程中不會有新的數

對於 Innodb 類型表來說,還需要備份其日誌文件,即 ib_logfile* 文件。因為當 Innodb

、 備份策略

備份策略可以這麼定:第一次全量備份,每天一次增量備

而對於重要的且繁忙的系統來說,則可能需要

每小時一次增量備份,甚至更頻繁。為了不影響線上業務,實現在線備

並且能增量備份,最好的辦法就是採用主從複製機制(replication),在 slave 機器上做備

、 數據維護和災難恢復

DBA(我目前還不是,呵呵),最重要的工作內容之一是保證數據表能安全、穩定、

SQL 語句就很有用:

或 REPAIR TABLE,檢查或維護 MyISAM 表

,優化 MyISAM 表

,分析 MyISAM 表

myisamchk 來完成,在這裡不作詳述。

表則可以通過執行以下語句來整理碎片,提高索引速度:

NULL 操作,表面上看什麼也不做,實際上重新整理碎片了。

MyISAM 表可以用上面提到的恢復方法來完成。如果是索引壞了,可以用

工具來重建索引。而對於 Innodb 表來說,就沒這麼直接了,因為它把所有的表

Innodb 有一個檢查機制叫 模糊檢查點,只要保存了日誌文

my.cnf 文件中,增加以下參數,讓 mysqld 在


、 總結

定只好合適的備份策略,這是一個DBA所做事情的一小部分,萬事開頭難,

相關焦點

  • mysql常用命令手冊
    來源:SQL資料庫開發之前介紹了一系列的mysql基礎知識,今天我們將MySQL常用的功能命令整理出來>A:常用source 命令 進入mysql資料庫控制臺, 如mysql -u root -p mysql>use 資料庫 然後使用source命令,後面參數為腳本文件(如這裡用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username
  • MySQL常用命令
    ​一、連接MySQL格式:mysql -h主機地址 -u用戶名 -p用戶密碼1、連接到本機上的MySQ:首先在打開cmd窗口,輸入mysql -uroot -p ,然後空格進入MySQL控制臺,MySQL的提示符是: 。
  • MySQL資料庫常用命令詳解
    (1)登錄MySQL資料庫用SSH客戶端連接CentOS伺服器,打開終端命令輸入窗口,在終端輸入窗口輸入命令:mysql -uroot –p 該命令用root帳號以密碼方式登錄MySQL,回車後提示輸入密碼,輸入MySQL的登錄密碼。登錄成功後,終端窗口會進入MySQL命令方式。如圖3-44所示。
  • MYSQL命令大全,如果你是學習編程的,那麼要收藏哦
    MYSQL命令大全一、連接MySQL 格式: mysql -h主機地址 -u用戶名 -p用戶密碼 1、例1:連接到本機上的MYSQL。則鍵入以下命令: mysql -h110.110.110.110 -uroot -pabcd123 (注:u與root可以不用加空格,其它也一樣) 3、退出MYSQL命令: exit (回車)。
  • docker常用命令整理
    7.1、docker search mysql 用 docker search mysql 命令來查看可用版本7.2、拉取 MySQL 鏡像 docker pull mysql:latest7.3、查看本地鏡像 使用以下命令來查看是否已安裝了 mysql:docker images7.4、運行容器 安裝完成後,我們可以使用以下命令來運行
  • 新手入門MYSQL資料庫命令大全
    一、命令行連接資料庫Windows作業系統進入CMD命令行,進入mysql.exe所在目錄,運行命令mysql.exe -h主機名 -u用戶名 -p密碼注意:參數名與值之間沒有空格 , 如:-h127.0.0.1二、資料庫命令1.
  • MySQL - mysqldump常用命令 - linux運維菜
    導出數據1、備份全部資料庫的數據和表結構mysqldump -uroot -ppassword -A >all.sql2、只備份表結構,不備份數據mysqldump -uroot -ppassword -A -d > database.sql
  • Mysql資料庫備份和還原常用的命令
    備份MySQL資料庫的命令mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql備份MySQL資料庫為帶刪除表的格式備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫
  • mysql常用命令,保存一下,以後查詢方便了
    -u root -p123456 password abc1234、如果想去掉密碼:mysqladmin -u root -pabc123 password ""5、root連接資料庫有密碼和無密碼mysql -u root(-uroot) -pmysql6、增加用戶test1密碼 abc,讓它可以在任何主機上登錄,並對所有資料庫有查詢,插入,修改,刪除的權限
  • MySQL技術資料庫基礎操作命令大全,建議收藏
    創建視圖create view my_view as select statement1刪除視圖drop view my_view1常用的資料庫1.連結資料庫$conn=@mysql_connect(&34;,&34;,&34;);if(!
  • MacOS 常用終端命令大全
    不管是 Mac 還是 Linux 命令,都是由英文單詞組成,只要稍微懂些英文,通常從命令名稱就可以看出其功能。但是常用終端命令很多,不可能熟練掌握所有命令。下面就從網絡上總結了一些非常實用的 MacOS 常用終端命令大全,分享給大家。
  • Linux用戶必看:Linux常用操作命令大全
    川北在線核心提示:原標題:Linux用戶必看:Linux常用操作命令大全 Linux常用操作命令有哪些?Linux是一個性能穩定的多用戶網絡作業系統,現在越來越多的用戶關注起了Linux系統,linux是利用命令來操作電腦,和Windows是不一樣的哦。
  • 成都php工程師培訓整理了mysql語句,對你有幫助的!
    成都php工程師培訓整理了mysql語句,對你有幫助的!MySQL語句大全,每天跟著操作一遍,不信你不懂!文章正文整理了mysql語句,每天練習一遍,對你有幫助的!MySQL服務的配置和使用修改MySQL管理員的口令:mysqladmin –u root password 密碼字符串如:mysqldmin –u root password 111111連接MySQL伺服器,使用命令: mysql [-h 主機名或IP位址] [-u 用戶名] [-p]如:mysql –u root –p
  • 花費三個月整理的MySQL系列文檔 誠意之作 看完不虧
    第1篇:MySQL的一些基礎知識這是mysql系列第1篇。本文主要內容1. 背景介紹2. 資料庫基礎知識介紹3. mysql的安裝4. mysql常用的一些命令介紹5.環境:mysql5.7.25,cmd命令中進行演示。主要內容1. 介紹mysql中常用的數據類型2. mysql類型和java類型對應關係3.
  • 高大上的windows的命令行大全,都在這裡了!
    其實windows也是有命令行的模式的,只是很多人不知道罷了,今天蟈蟈就來給大家整理一下windows的命令行大全,希望對你有幫助!ls*.zip  MYSQL 命令  mysql -h主機地址 -u用戶名 -p密碼 連接MYSQL;如果剛安裝好MYSQL,超級用戶root是沒有密碼的。
  • 匯總:MySQL 8.0 運維便捷命令
    下面選出日常運維常用的最便捷的4個命令:RESTART,PERSIST,RETAIN CURRENT PASSWORD,EXPLAIN。shutdown,客戶端shutdwon,kill 等命令。8.0支持命令行restart命令:mysql> RESTART;Query OK, 0 rows affected (0.00 sec)Error 日誌信息:
  • MySQL - mysqldump 命令參數
    mysqldump是MySQL自帶的用於轉存儲資料庫的程序。mysqldump有很多參數,但是常用的就那麼幾個。--all-databases , -A導出所有的庫裡面的數據。設置為1時,將會以CHANGE MASTER命令輸出到數據文件;設置為2時,在命令前增加說明信息。該選項將會打開--lock-all-tables,除非--single-transaction被指定。該選項會自動關閉--lock-tables選項。默認值為0。--events, -E導出事件。
  • Docker安裝及命令整理
    dockers ps -l查看停止的容器docker ps -f status=exited創建容器及常用參數,docker通過讀取Dockerfile中的指令按步自動生成鏡像根據Dockerfile構建鏡像命令docker build -t 機構/鏡像名<:tags> Dockerfile目錄常用命令FROM image_name
  • CAD快捷鍵命令大全,當你熟練掌握後,3天成為CAD高手
    學習CAD最重要的就是熟練掌握快捷鍵,下面為大家整理出了,CAD快捷鍵命令大全,當你熟練掌握後,3天就能成為CAD高手。1、工具欄快捷鍵CAD工具欄是我們繪圖都要用到的,這些工具欄快捷鍵集合,記得收藏。
  • mysql備份及恢復常用命令
    # ---------------------------------------備份指定表----------------------------------------------------mysqldump -uroot -p"password" 資料庫 表1 表2 > /data/backup/order.sql.0526# ----