在Linux上遷移MySQL數(shù)據(jù)庫(kù),通常有兩種方法:使用mysqldump
工具或直接復(fù)制數(shù)據(jù)庫(kù)文件
方法一:使用mysqldump
工具
首先,確保你已經(jīng)安裝了MySQL服務(wù)器和客戶端。如果沒有安裝,可以使用以下命令進(jìn)行安裝:
對(duì)于Debian/Ubuntu系統(tǒng):
sudo apt-get update
sudo apt-get install mysql-server mysql-client
對(duì)于CentOS/RHEL系統(tǒng):
sudo yum install mysql-server mysql-client
使用mysqldump
命令導(dǎo)出源數(shù)據(jù)庫(kù)的備份文件。假設(shè)源數(shù)據(jù)庫(kù)名為source_db
,目標(biāo)數(shù)據(jù)庫(kù)名為destination_db
,用戶名和密碼分別為source_user
和source_password
:
mysqldump -u source_user -p source_password source_db > source_db_backup.sql
這將在當(dāng)前目錄下生成一個(gè)名為source_db_backup.sql
的文件,其中包含了源數(shù)據(jù)庫(kù)的所有表結(jié)構(gòu)和數(shù)據(jù)。
使用mysql
命令將導(dǎo)出的備份文件導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中。假設(shè)目標(biāo)數(shù)據(jù)庫(kù)的用戶名和密碼分別為destination_user
和destination_password
:
mysql -u destination_user -p destination_password destination_db < source_db_backup.sql
輸入目標(biāo)數(shù)據(jù)庫(kù)的密碼后,所有數(shù)據(jù)將被導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中。
方法二:直接復(fù)制數(shù)據(jù)庫(kù)文件
首先,找到源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的數(shù)據(jù)目錄。通常情況下,它們分別位于以下路徑:
/var/lib/mysql/source_db
/var/lib/mysql/destination_db
請(qǐng)注意,這些路徑可能因系統(tǒng)和MySQL安裝方式的不同而有所差異。你可以通過運(yùn)行mysqladmin -u root -p status
命令來查看當(dāng)前MySQL實(shí)例的數(shù)據(jù)目錄。
在源數(shù)據(jù)庫(kù)數(shù)據(jù)目錄中找到ibdata1
文件,這是MySQL用于存儲(chǔ)元數(shù)據(jù)和鎖信息的文件。請(qǐng)確保在復(fù)制過程中不要修改此文件。
將整個(gè)源數(shù)據(jù)庫(kù)數(shù)據(jù)目錄(包括ibdata1
文件)復(fù)制到目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)目錄。例如,使用cp
命令:
sudo cp -R /var/lib/mysql/source_db/* /var/lib/mysql/destination_db/
重啟MySQL服務(wù)器以使更改生效。這可以通過以下命令完成:
對(duì)于Debian/Ubuntu系統(tǒng):
sudo systemctl restart mysql
對(duì)于CentOS/RHEL系統(tǒng):
sudo service mysqld restart
完成上述步驟后,源數(shù)據(jù)庫(kù)將被遷移到目標(biāo)數(shù)據(jù)庫(kù)中。請(qǐng)注意,這種方法可能會(huì)導(dǎo)致一些權(quán)限和配置問題,因此在執(zhí)行此操作之前,請(qǐng)確保備份所有相關(guān)數(shù)據(jù)。