遷移數(shù)據(jù)庫(kù)需要用什么方法_數(shù)據(jù)庫(kù)遷移有哪些方法
美國(guó)Microsoft公司推出的一種關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。那么數(shù)據(jù)庫(kù)如何遷移呢?下面由學(xué)習(xí)啦小編為大家整理的數(shù)據(jù)庫(kù)遷移的方法,希望大家喜歡!
數(shù)據(jù)庫(kù)遷移的方法
方法一:腳本法
如果你的數(shù)據(jù)庫(kù)每天都有更新,而且今天改動(dòng)量不大,可以將你所有的改動(dòng)弄成腳本,放到本地?cái)?shù)據(jù)庫(kù)執(zhí)行即可。就行一般公司開發(fā)寫數(shù)據(jù)庫(kù)發(fā)布腳本一樣。
方法二:備份與還原法
在服務(wù)器的數(shù)據(jù)庫(kù)中選中要轉(zhuǎn)移的數(shù)據(jù)庫(kù),按鼠標(biāo)右鍵,選所有任務(wù)->備份數(shù)據(jù)庫(kù);將備份copy到本地,選中本地已有的數(shù)據(jù)庫(kù)(沒有需要新建)右鍵→任務(wù)→還原數(shù)據(jù)庫(kù)。
找到你copy下來(lái)的.bak文件即可,值得提醒是,有時(shí)候會(huì)出現(xiàn)錯(cuò)誤:2個(gè)數(shù)據(jù)庫(kù)不是一個(gè)數(shù)據(jù)庫(kù)。這種情況點(diǎn) →選項(xiàng) 勾上 覆蓋現(xiàn)有數(shù)據(jù)庫(kù)即可。
方法三:如果只是將服務(wù)器上的數(shù)據(jù)庫(kù)copy到本地?cái)?shù)據(jù)庫(kù)
則右鍵→導(dǎo)出數(shù)據(jù),按照向?qū)?dǎo)到對(duì)應(yīng)的本地?cái)?shù)據(jù)庫(kù)(前提是本地?cái)?shù)據(jù)庫(kù)沒有數(shù)據(jù),如果有數(shù)據(jù),他不會(huì)覆蓋會(huì)出現(xiàn)2條相同的記錄),而且完了之后還得到處所有的函數(shù)和存儲(chǔ)過(guò)程,所以該方法不推薦。
方法四:附加法
首先分離數(shù)據(jù)庫(kù)連接,然后將數(shù)據(jù)庫(kù)文件(.mdf文件)copy到本地,然后右鍵→附加 找到該.mdf文件即可
保護(hù)MySQL數(shù)據(jù)庫(kù)
一、刪除授權(quán)表中的通配符
MySQL訪問(wèn)控制系統(tǒng)通過(guò)一系列所謂的授權(quán)表運(yùn)行,從而對(duì)數(shù)據(jù)庫(kù)、表格或欄目級(jí)別的用戶訪問(wèn)權(quán)利進(jìn)行定義。但這些表格允許管理員為一名用戶設(shè)定一攬子許可,或一組應(yīng)用通配符的表格。這樣做會(huì)有潛在的危險(xiǎn),因?yàn)楹诳涂赡軙?huì)利用一個(gè)受限的賬戶來(lái)訪問(wèn)系統(tǒng)的其他部分。由于這一原因,在設(shè)置用戶特權(quán)時(shí)要謹(jǐn)慎,始終保證用戶只能訪問(wèn)他們所需的內(nèi)容。在給個(gè)別用戶設(shè)定超級(jí)特權(quán)時(shí)要尤其小心,因?yàn)檫@種級(jí)別允許普通用戶修改服務(wù)器的基本配置,并訪問(wèn)整個(gè)數(shù)據(jù)庫(kù)。
建議:對(duì)每個(gè)用戶賬戶應(yīng)用顯示特權(quán)命令,以審查授權(quán)表,了解應(yīng)用通配符許可是否恰當(dāng)。
二、要求使用安全密碼
用戶賬號(hào)的安全與用來(lái)保護(hù)它們的密碼密切相關(guān)。因此,在安裝MySQL時(shí)第一件事就應(yīng)該設(shè)置MySQL根賬號(hào)的密碼(默認(rèn)為空)。修復(fù)這一漏洞后,接下來(lái)就應(yīng)要求每個(gè)用戶賬號(hào)使用一個(gè)密碼,且不要使用生日、用戶名或字典中的單詞這些容易識(shí)別的啟發(fā)式密碼。
建議:應(yīng)用MySQL-安全-授權(quán)選項(xiàng)避免使用舊的,不大安全的MySQL密碼格式。
三、檢查配置文件許可
一般來(lái)說(shuō),要使服務(wù)器連接更為快速方便,單個(gè)用戶和服務(wù)器管理員必須把他們的用戶賬號(hào)密碼存儲(chǔ)在單用戶MySQL選項(xiàng)文件中。但是,這種密碼是以純文本形式存儲(chǔ)在文件中的,很容易就可以查閱。因此,必須保證這樣的單用戶配置文件不被系統(tǒng)中的其他用戶查閱,且將它存儲(chǔ)在非公共的位置。理想情況下,你希望單用戶配置文件保存在用戶的根目錄,許可為0600。
四、加密客戶與服務(wù)器之間數(shù)據(jù)傳送 :
MySQL(及其它)客戶與服務(wù)器構(gòu)架的一個(gè)重要問(wèn)題就是通過(guò)網(wǎng)絡(luò)傳送數(shù)據(jù)時(shí)的安全問(wèn)題。如果客戶與服務(wù)器間的交互以純文本形式發(fā)生,黑客就可能“嗅出”被傳送的數(shù)據(jù)包,從而獲得機(jī)密信息。你可以通過(guò)激活MySQL配置中的SSL,或應(yīng)用一個(gè)OpenSSH這樣的安全應(yīng)用來(lái)為傳送的數(shù)據(jù)建立一個(gè)安全的加密“通道”,以關(guān)閉這一漏洞。以這種形式加密客戶與服務(wù)器連接可使未授權(quán)用戶極難查閱往來(lái)的數(shù)據(jù)。
五、禁止遠(yuǎn)程訪問(wèn)
如果用戶不需要遠(yuǎn)程訪問(wèn)服務(wù)器,你可以迫使所有MySQL連接通過(guò)UNIX插槽文件來(lái)完成,從而大大減少網(wǎng)絡(luò)受攻擊的風(fēng)險(xiǎn)。這一過(guò)程可通過(guò)跳過(guò)網(wǎng)絡(luò)選項(xiàng)啟動(dòng)服務(wù)器來(lái)完成。這樣可以阻止TCP/IP網(wǎng)絡(luò)連接到MySQL上,保證沒有用戶可以遠(yuǎn)程連接系統(tǒng)。
建議:可以在MySQL服務(wù)器配置中添加捆綁地址127.0.0.1指令來(lái)增強(qiáng)這一功能,迫使MySQL捆綁當(dāng)?shù)貦C(jī)器的IP地址來(lái)保證只有同一系統(tǒng)中的用戶可以連接到MySQL。
六、積極監(jiān)控MySQL訪問(wèn)記錄
MySQL中帶有很多不同的日志文件,它們記錄客戶連接,查詢和服務(wù)器錯(cuò)誤。其中,最重要的是一般查詢?nèi)罩?,它用時(shí)間標(biāo)簽記錄每名客戶的連接和中斷時(shí)間,并記錄客戶執(zhí)行的每個(gè)查詢。如果你懷疑發(fā)生了不尋常的行為,如網(wǎng)絡(luò)入侵,那么監(jiān)控這個(gè)日志以了解行為的來(lái)源是個(gè)好方法。
修改解除MYSQL密碼的方法
方法一
使用phpmyadmin,這是最簡(jiǎn)單的了,修改mysql庫(kù)的user表,不過(guò)別忘了使用PASSWORD函數(shù)。
方法二
使用mysqladmin,這是前面聲明的一個(gè)特例。
mysqladmin -u root -p password mypasswd
輸入這個(gè)命令后,需要輸入root的原密碼,然后root的密碼將改為mypasswd。
把命令里的root改為你的用戶名,你就可以改你自己的密碼了。
當(dāng)然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執(zhí)行mysqladmin,那么這種方法就是無(wú)效的,而且mysqladmin無(wú)法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root權(quán)限:
方法三
mysql> Insert INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(biscuit));
mysql> FLUSH PRIVILEGES
確切地說(shuō)這是在增加一個(gè)用戶,用戶名為jeffrey,密碼為biscuit。在《mysql中文參考手冊(cè)》里有這個(gè)例子,注意要使用PASSWORD函數(shù),然后還要使用FLUSH PRIVILEGES。
方法四
和方法三一樣,只是使用了REPLACE語(yǔ)句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(biscuit));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD語(yǔ)句
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD(biscuit);
擬也必須使用PASSWORD()函數(shù),但是不需要使用FLUSH PRIVILEGES。
方法六
使用GRANT ... IDENTIFIED BY語(yǔ)句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY biscuit;
這里PASSWORD()函數(shù)是不必要的,也不需要使用FLUSH PRIVILEGES。
注意:PASSWORD() [不是]以在Unix口令加密的同樣方法施行口令加密。