电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Mysql復制表三種實現方法及grant解析

瀏覽:127日期:2023-10-11 15:24:56

如何快速的復制一張表

首先創建一張表db1.t,并且插入1000行數據,同時創建一個相同結構的表db2.t

假設,現在需要把db1.t里面的a>900的數據行導出來,插入到db2.t中

mysqldump方法

幾個關鍵參數注釋:

?single-transaction的作用是,在導出數據的時候不需要對表db1.t加表鎖,而是使用 START TRANSACTION WITH CONSISTENT SNAPSHOT的方法; ?no-create-info的意思是,不需要導出表結構; ?result-file指定了輸出文件的路徑,其中client表示生成的文件是在客戶端機器上的。

導出csv文件

select * from db1.t where a>900 into outfile ’/server_tmp/t.csv’;

這條語句會將結果保存在服務端。如果你執行命令的客戶端和MySQL服務端不在同一個機器上,客戶端機器的臨時目錄下是不會生成t.csv文件的。

這條命令不會幫你覆蓋文件,因此你需要確保/server_tmp/t.csv這個文件不存在,否則執行語句時就會因為有同名文件的存在而報錯。

得到.csv導出文件后,你就可以用下面的load data命令將數據導入到目標表db2.t中。

load data infile ’/server_tmp/t.csv’ into table db2.t;

打開文件/server_tmp/t.csv,以制表符(t)作為字段間的分隔符,以換行符(n)作為記錄之間的分隔符,進行數據讀??;

啟動事務。

判斷每一行的字段數與表db2.t是否相同:

若不相同,則直接報錯,事務回滾; 若相同,則構造成一行,調用InnoDB引擎接口,寫入到表中。

重復步驟3,直到/server_tmp/t.csv整個文件讀入完成,提交事務。

物理拷貝方法

mysqldump方法和導出CSV文件的方法,都是邏輯導數據的方法,也就是將數據從表db1.t中讀出來,生成文本,然后再寫入目標表db2.t中。有物理導數據的方法嗎?比如,直接把db1.t表的.frm文件和.ibd文件拷貝到db2目錄下,是否可行呢?答案是不行的。

因為,一個InnoDB表,除了包含這兩個物理文件外,還需要在數據字典中注冊。直接拷貝這兩個文件的話,因為數據字典中沒有db2.t這個表,系統是不會識別和接受它們的。

在MySQL 5.6版本引入了可傳輸表空間(transportable tablespace)的方法,可以通過導出+導入表空間的方式,實現物理拷貝表的功能。

假設現在的目標是在db1的庫下,復制一個跟表t相同的表r,具體執行步驟:

執行create table r like t,創建一個相同表結構的空表, 執行alter table r discard tablespace,這時候r.ibd文件會被刪除 執行flush table t for export這時候會生成一個t.cfg 在db1目錄下執行cp t.cfg r.cfg; cp t.ibd r.ibd;這兩個命令; 執行unlock tables,這時候t.cfg文件會被刪除; 執行alter table r import tablespace,將這個r.ibd文件作為表r的新的表空間,由于這個文件的數據內容和t.ibd是相同的,所以表r中就有了和表t相同的數據。

這三種方法的優缺點

物理拷貝的方式速度最快,尤其對于大表拷貝來說是最快的方法。但必須是全拷貝,不能是部分拷貝,需要到服務器上拷貝數據,在用戶無法登錄數據庫主機時無法使用,而且源表和目標表都必須是innodb引擎。

用mysqldump生成包含INSERT語句文件的方法,可以在where參數增加過濾條件,來實現只導出部分數據。這個方式的不足之一是,不能使用join這種比較復雜的where條件寫法。

用select … into outfile的方法是最靈活的,支持所有的SQL寫法。但,這個方法的缺點之一就是,每次只能導出一張表的數據,而且表結構也需要另外的語句單獨備份。

后兩種都是邏輯備份方式,可以跨引擎使用的。

mysql全局權限

SELECT * FROM MYSQL.USER WHERE USER=’UA’G 顯示所有權限

作用域整個mysql,信息保存在mysql的user表里

賦予用戶ua一個最高權限:

grant all privileges on *.* to ’ua’@’%’ with grant option;

這個grant命令做了兩個動作:分別將磁盤中的mysql.user表里將權限的字段都修改為Y,和內存中的acl_user中用戶對應的對象將access值修改為‘全1’

如果有新的客戶端使用用戶名ua登錄成功,mysql會為新連接維護一個線程對象,所有關于全局權限的判斷,都是直接使用線程對象內部保存的權限位。

grant命令對于全局權限,同時更新了磁盤和相應的內存,接下來新創建的連接會使用新的權限對于已經存在的連接,它的全局權限不受grant的影響。如果要回收上面權限:

revoke all privileges on *.* from ’ua’@’%’;

同樣也是相對應的兩個操作,磁盤中權限字段修改位N,內存中對象的access的值修改位0。

mysqlDB權限

grant all privileges on db1.* to ’ua’@’%’ with grant option;

使用SELECT * FROM MYSQL.DB WHERE USER = ’UA’G來查看當前用戶的db權限,同樣的也是對磁盤和內存中的對象修改權限。

db權限存儲在mysql.db表中

注意:和全局權限不同,db權限會對已經存在的連接對象產生影響。

mysql表權限和列權限

表權限放在mysql.tables_priv中,列權限存放在mysql.columns_priv中,這兩類權限組合起來存放在內存的hash結構column_priv_hash中。

跟db權限類似,這兩個權限每次grant的時候都會修改數據表,也會同步修改內存中的hash結構,因此,這兩類權限的操作,也會影響到已經存在的連接。

flush privileges的使用場景

有些文檔里提到,grant之后馬上執行flush privileges命令,才能使賦權語句生效。其實更準確的說法應該是在數據表中的權限跟內存中的權限數據不一致的時候,flush privileges語句可以用來重建內存數據,達到一致狀態。

比如某時刻刪除了數據表的記錄,但是內存的數據還存在,導致了給用戶賦權失敗,因為在數據表中找不到記錄。同時重新創建這個用戶也不行,因為在內存判斷的時候,會認為這個用戶還存在。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | SMN-1/SMN-A ABB抽屉开关柜触头夹紧力检测仪-SMN-B/SMN-C-上海徐吉 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 广西教师资格网-广西教师资格证考试网 | 番茄畅听邀请码怎么输入 - Dianw8.com | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 圆窗水平仪|伊莉莎冈特elesa+ganter | 小小作文网_中小学优秀作文范文大全| 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 楼承板-开闭口楼承板-无锡海逵楼承板| 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 |