當前位置:首頁 » 數據倉庫 » mysql資料庫整體遷移
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql資料庫整體遷移

發布時間: 2023-05-10 19:20:05

① 搬遷MYsql資料庫的幾種方法介紹

在網站搬遷的過程中,最重要也是最麻煩的就是資料庫了,資料庫文件一旦丟失而備份又不靈光時,網站會面臨滅頂之災。那麼搬遷資料庫有些什麼辦法呢?現在一起來探討。 通過phpmyadmin備份由於mysql資料庫是通過phpmyadmin在進行管理,因此用phpmyadmin進行備份也是順理成章。但通過phpmyadmin導出的備份文件還只能通過phpmyadmin軟體還原回去,而且這個軟體默認只允許還原小於2M的備份來源。因此如果網站數據少,小於2M可以直接備份還原;數據較多備份文件過大時,有兩種方法解決:第一種是分段備份,在phpmyadmin的備份選項中設置為每個備份文件大小不超過2M,第二種是在還原空間的phpmyadmin中修改軟體源文件進行設置,改為對還原文件沒有大小限制,相應的方法可以在網上搜索。應該說此種備份方法相對麻煩,且需要自己購有伺服器或vps,否則根本沒有相關許可權,一般情況下不建議選擇。 通過網站程序自帶功能進行備份還原現在使用到mysql資料庫的網站程序有DZ,PW,DEDE等,這些程序後台都有備份還原功能,因為是自帶的功能,兼容性好,方便快捷。不過有一個問題是要先重新安裝網站程序,再進入後台選擇還原已經保存的備份文件進行還原,目前所有的主流程序都提倡這種方法。 通過備份王等軟體進行備份用備份王等軟體進行備份方便快捷,只要上傳備份軟體到空間按提示一步步操作就可以了。但是要注意新老空間資料庫用戶名和密碼不統一,網站文件打包過來後因沒有修改連接文件,還原資料庫是好了,可是前台會提示資料庫連接錯誤,網站從而出現打不開的情況。所以要學會修改網站配置文件,大多是由config和data.php文件來控制,將這些文件中的連接信息設置為正確的連接信息,避免網站不能打開。 直接在mysql文件夾中復制文件如果是獨立伺服器,可以直接進入伺服器mysql文件夾下的DATA文件夾找到資料庫文件復制後再粘貼到新空間。但這樣有個很大的隱患:備份的目標資料庫如果正在被使用,粘貼到新空間後會出錯。不提倡這種方法。

② centos 7.2 遷移 mysql 資料庫文件

原目錄:/var/lib/mysql

新目錄:/data/mysql

1.將/smp/mysql/mysql.sock文件復制到/data/db/mysql.sock,並停止運行mysql(注意,需將

mysql.sock文件復制後,才能停止mysql)

/smp/mysql/bin/mysqladmin -uroot -p shutdown

2.data目錄遷移

cp -a /var/lib/mysql/* /data/mysql

3.修改/etc/my.cnf

socket=/data/db/mysql.sock(注意將原來的socket文件注釋掉,方便回滾)

datadir=/data/db/data

4.建立軟鏈接

ln -s /data/db/mysql.sock /var/lib/mysql/mysql.sock

③ 如何遷移MySQL資料庫

MySQL資料庫遷移
MySQL資料庫遷移(數據文件直接遷移)
在今年10月下旬的時候,公司的伺服器需要遷移,其中涉及到了MySQL資料庫遷移。查看了一下MySQL數據文件的大小,接近60G的大小(實際數據並沒用那麼多)。由於伺服器上業務需要,要盡量減少伺服器遷移時的損失。所以遷移時間選在了晚上零點開始,而且要盡量減少遷移所用的時間。
在遷移之前有三種方案:
資料庫直接導出,拷貝文件到新伺服器,在新伺服器上導入。
使用【MySQL
GUI
Tools】中的
MySQLMigrationTool。
數據文件和庫表結構文件直接拷貝到新伺服器,掛載到同樣配置的MySQL服務下。
我在我的電腦上用虛擬機測試後,選中了佔用時間最少的第三種方案。下面是三種方案的對比:
第一種方案的優點:會重建數據文件,減少數據文件的佔用空間。
第一種方案的缺點:時間佔用長。(導入導出都需要很長的時間,並且導出後的文件還要經過網路傳輸,也要佔用一定的時間。)
第二種方案的優點:設置完成後傳輸無人值守
第二種方案的缺點:
設置繁瑣。
傳輸中網路出現異常,不能及時的被發現,並且會一直停留在數據傳輸的狀態不能被停止,如不仔細觀察不會被發現異常。
傳輸相對其他fang時間長。
異常後很難從異常的位置繼續傳輸。
第三種方案的優點:時間佔用短,文件可斷點傳輸。操作步驟少。(絕大部分時間都是在文件的網路傳輸)
第三種方案的缺點:可能引起未知問題,暫時未發現。
下面介紹一下第三種方案d遷移步驟:
保證Mysql版本一致,安裝配置基本一致(注意:這里的數據文件和庫表結構文件都指定在同一目錄data下)
停止兩邊的Mysql服務(A伺服器--遷移-->B伺服器)
刪除B伺服器Mysql的data目錄下所有文件
拷貝A伺服器Mysql的data目錄下除了ib_logfile和.err之外的文件到B伺服器data下
啟動B伺服器的Mysql服務,檢測是否發生異常
遷移完成後,服務啟動正常,未發現其他異常問題。
備註:經測試,源mysql的安裝目錄及數據文件目錄
可以與
目標Mysql的安裝目錄及數據文件目錄
不一致。
此時,只需要拷貝您所需移動的dbname(如上:pa、testdb)及'mysql'和'ibdata1',即可。

④ CentOS7下mysql資料庫的遷移

想知道你的mysql裝在哪裡嗎?CentOS7一般是裝在/var/lib/mysql中的

在完成遷移之前,先用下面的指令來停止mysqld服務

service mysqld stop,或者直接點sudo systemctl stop mysqld

然後用df-h指令看伺服器上剩餘空間是多少,假設我們新掛了一塊500G的硬碟到/data上

那麼請把mysql整個文件夾拷貝到/data中,像下面這樣:

sudo cp -rf /var/lib/mysql /data/mysql,拷完以後原來的mysql文件夾就可以刪除了

然後再修改/etc/my.cnf,這個也是需要su的:

sudo vi /etc/my.cnf

裡面有一個欄位叫[mysqld],將datadir和socket修改成這樣:

datadir=/data/mysql

socket=/data/mysql/mysql.sock

接下來,有的人說要修改/etc/init.d/mysqld,但我的伺服器不需要,直接通過

service mysqld start就可以啟動SQL服務了,遠程也可以連接上,但是:

當你使用終端mysql -u root -p的時候,就會報下面這個錯:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

這個時候,你有兩種解決辦法,一種是造一個軟連接

ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock,原因是你已經刪掉之前的mysql目錄了

另外一種辦法,是在/etc/my.cnf下面新建一個新欄位:

[mysql]

socket=/data/mysql/mysql.sock

第一種方法不需要重啟mysql server,第二種方法需要重啟mysql server,

然後,你就可以成功地從終端里進入mysql了

敲黑板,不要在[mysql]下面自做主張地寫上datadir=/data/mysql,這樣會導致本地命令行登錄時報錯:Unknown Variable: datadir=/data/mysql

⑤ 怎樣用命令行把MySQL資料庫遷移到另一台Linux伺服器

1、用mp命令備份資料庫。
# mysqlmp -u root -p dbfile > dbfile.sql
2、用rsync從新伺服器獲得備份的文件(SCP或WGET也可以)。
# rsync -avr root@myolddbserver:/home/mympfolder/dbfile.sql
3、登陸新伺服器的mysql客戶端。
# mysql -u root -p
4. 建立資料庫。
mysql> create database dbfile;
5. 選擇新資料庫;
mysql> use dbfile;
6. 載入數據;
mysql> source dbfile.sql

或者
在Mysql程序中有我自己的一個資料庫共5張表,里邊數據不算太多。我現在想把他們全部弄到另一台電腦中去,該怎麼弄,如果不用其它的軟體工具,只用Mysql自已的程序不知可否?
註:不用考慮操作系統。
---------------------------------------------------------------

在dos命令提示符下使用mysqlmp命令進行備份.
如下:
C:\Documents and Settings\Administrator>mysqlmp yinshi >c:\\backup.txt -uroot
-p12142022
說明:yinshi是我的資料庫名,裡面有5張表; c:\\backup.txt 是我備份出來文件名和路徑;

-u,-p參數後面跟的分別是用戶名和密碼.
將你備份出來的文件我這里是backup.txt拷貝到另一台機上,再在dos命令提示符下用mysql命令,進行恢復,如下:
C:\Documents and Settings\Administrator>mysql < c:\\backup.txt -uroot -p12142022
or
mysql>source backup.txt;(這里backup.txt在放在data目錄下)

---------------------------------------------------------------

如果另一台機器上也安裝了mysql,可以直接導入

C:\mysql\bin>mysqlmp -h172.20.6.250 -udeveloper -p123456 --opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename

172.20.6.250源伺服器ip
developer源伺服器連接用戶名
---------------------------------------------------------------

有兩種辦法。
1、在B機器上裝mysql。
將A機器上的mysql/data下的你的資料庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢復數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE | DUMPFILE} 』file_name』 FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 』file_name.txt』 [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT ... INTO OUTFILE 』file_name』

⑥ mysql把一個資料庫中的數據復制到另一個資料庫中的表 2個表結構相同

1、使用軟體Navicat就可遷移復制資料庫,打開Navicat,右鍵點擊左邊空白的地方,點擊New Connection下的MySQL,創建一個伺服器的連接,下面將演示把本地的數據遷移到伺服器:

⑦ mysql5.1的資料庫如何遷移至mysql5.7

安全的辦法是在舊環境導出表數、在新環境建立資料庫後導入表,可以使用SQL或者TXT為中間文件。

⑧ 如何遷移MySQL資料庫

  • caching_sha2_password認證插件提供更多的密碼加密方式,並且在加密方面具有更好的表現,目前MySQL8.0選用caching_sha2_password作為默認的認證插件,MySQL5.7的認證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL8.0的加密認證方式,最終導致連接問題。

  • MySQL存儲引擎現在負責提供自己的分區處理程序,而MySQL伺服器不再提供通用分區支持,InnoDB和NDB是唯一提供MySQL8.0支持的本地分區處理程序的存儲引擎。如果分區表用的是別的存儲引擎,存儲引擎必須進行修改。要麼將其轉換為InnoDB或NDB,要麼刪除其分區。通過MySQLmp從5.7獲取的備份文件,在導入到8.0環境前,需要確保創建分區表語句中指定的存儲引擎必須支持分區,否則會報錯。

  • MySQL8.0的默認字元集utf8mb4,可能會導致之前數據的字元集跟新建對象的字元集不一致,為了避免新舊對象字元集不一致的情況,可以在配置文件將字元集和校驗規則設置為舊版本的字元集和校驗規則。

  • MySQL8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設置重新啟動伺服器會引入與標識符的排序和比較方式不一致的問題。

  • <lower_case_table_names>

    https://dev.mysql.com/doc/refman/8.0/en/server-systemvariables.html#sysvar_lower_case_table_names

  • 要避免MySQL8.0上的啟動失敗,MySQL配置文件中的sql_mode系統變數不能包含NO_AUTO_CREATE_USER。返碰

  • 從MySQL5.7.24和MySQL8.0.13開始,MySQLmp從存儲程序定義中刪除了NO_AUTO_CREATE_USER。必須手動修改使用早期版本的MySQLmp創建的轉儲文件,以刪除NO_AUTO_CREATE_USER。

  • 在MySQL8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的復制場景中,如果語句使用到廢棄的SQL Mode會導致復制異常。

  • 在執漏檔談行到MySQL8.0.3或更高版本的in-place升級時,BACKUP_ADMIN許可權自動授予具有RELOAD許可權的用戶。

  • 本文對MySQL 5.7到MySQL 8.0的升級過程中出現部分易出現問題進行整理:升級對MySQL版本的要求、升級都做了哪些內容、資料庫升級做了哪些步驟以及注意事項,希望對大家版本升級有蠢迅幫助。

⑨ 怎麼將mysql資料庫轉移到另一台電腦上。可以整個mysql安裝目錄一起轉移么

mysql要轉換到另一台機器上面,最重要的要考慮以下幾個問題

1、資料庫使用什麼存儲引擎,如果是myisam的話,可以把data目錄復制移走。但如果是innodb的話,千萬不要用這種方法,會存在種種問題的。至於innodb引myisam的區別,網路一下詳細點。

2、本地的操作系統是否引目標操作系統相同,如果是linux與windows之間的轉移,因為平台的的不台,注意大小寫表名欄位的兼容性。也可以在my.ini或者my.cnf中忽略大小寫。

3、比較安全的做法,還是用mysqlmp的方法導出來,再用mysqlmp的方法導進去,這是一種比較保險安全兼容性高的做法,請考慮。

如果還有什麼疑問,歡迎追問。

⑩ mysql資料庫如何轉移呢

mysql標准化的遷移工具是mysqlmp.exe、mysqlimport.exe,你運行這兩個工具,使用--help就可以知道怎麼使用了,他們用來把MYSQL資料庫轉換為文本文件,以及把文本文件導入到新的MYSQL資料庫中。事實上這個文本文件可以導入到其它非MYSQL資料庫裡面,比如INFORMIX、DB2等,需要簡單寫一下SQL語句即可。

不過,我的伺服器多次升級和遷移中測試發現,MYSQL資料庫文件是可以拷貝的,也就是二進制兼容的,包括我在FreeBSD、LINUX、WINDOWS之間遷移數據都是成功的。