mysqldump error?

mysqldump

導出表結構

mysqldump -hHost -PPort -uUser -pPassword -d Database TableName

導出表結構和數據

# 直接導出,User 必須有 Table Lock 權限
mysqldump -hHost -PPort -uUser -pPassword --default-character-set=utf8 Database TableName

# mysqldump: Got error: 1044: Access denied for user 'User'@'%' to database 'Database' when doing LOCK TABLES
# User 沒有 Table Lock 權限, 當執行mysqldump命令時,是一次性鎖定當前庫的所有表。而不是鎖定當前導出表
mysqldump -hHost -PPort -uUser -pPassword --default-character-set=utf8 --skip-lock-tables Database TableName

# mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'Database' AND TABLE_NAME = 'TableName';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
# 禁用新標誌
mysqldump -hHost -PPort -uUser -pPassword --default-character-set=utf8 --skip-lock-tables --column-statistics=0 Database TableName

表上鎖

LOCK TABLES爲當前線程鎖定表。

如果一個線程獲得在一個表上的一個READ鎖,該線程和所有其他線程只能從表中讀。 如果一個線程獲得一個表上的一個WRITE鎖,那麼只有持鎖的線程READ或WRITE表,其他線程被阻止。

lock table TableName [READ|WRITE];

解鎖表

UNLOCK TABLES釋放被當前線程持有的任何鎖,當線程發出另外一個LOCK TABLES時,或當服務器的連接被關閉時,當前線程鎖定的所有表會自動被解鎖

UNLOCK TABLES;

查看上鎖表

show open table from Database where In_use > 0;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章