在新服務器安裝好環(huán)境和做好安全,然后遷移數據過去就可以了。
你所需要的網站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產品質量的保證,主要從事網站設計、網站制作、企業(yè)網站建設、手機網站開發(fā)、網頁設計、品牌網站設計、網頁制作、做網站、建網站。創(chuàng)新互聯擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。
如果不會,可以在阿里云云市場購買網站遷移服務。
于項目升級或者服務器更換,需要將數據從一個數據庫服務轉移到另一個數據庫服務中。兩個數據庫所在的服務器的公網IP分別為x.x.x.x和y.y.y.y。
進行MySQL數據遷移之前,需要做一些準備工作,即兩臺服務器上配置相同環(huán)境。需要在公網IP分別為x.x.x.x和y.y.y.y的服務器上都安裝mysql-5.7.37。
準備工作
第一步,下載mysql-5.7.37。
第二步,配置mysql。
第三步,安裝mysql-5.7.37。
第四步,遠程連接另一臺服務器上的mysql。
第五步,不進入mysql根目錄即可進行相應的操作。
MySQL數據遷移常用方法
MySQL數據遷移一般可分為物理遷移和邏輯遷移。
物理遷移適用于海量數據整體遷移,可以直接復制數據文件或使用navicat來進行備份遷移。不同的服務器之間采用物理遷移需要將兩臺服務器中的MySQL server保持完全一樣的版本、配置和權限。這種物理遷移優(yōu)點是速度快,缺點是要求新服務器與原服務器配置完全一致,即便如此也有可能引起一些未知錯誤。
如果規(guī)模較小,業(yè)務也并不繁忙,推薦使用mysqldump即邏輯遷移法,它相對來說更輕巧、穩(wěn)健一些。mysqldump的原理是在導入到新數據庫時,先將原數據庫表結構使用CREATE TABLE 'table'語句創(chuàng)建,然后在使用INSERT將原數據導入至新表中??梢岳斫鉃橐粋€批量導入腳本。這樣按照規(guī)范命令導入數據,大幅減少奇怪的未知錯誤出現。
第一種方案:物理遷移-使用navicat
第一步,下載并安裝Navicat。
到網址下載需要的Navicat軟件,之后在Windows系統(tǒng)中安裝。安裝成功后,然后進行數據庫連接。
第二步,選擇要導出的數據庫ZJZK2022,格式為.sql。
具體操作:選中ZJZK2022,然后右鍵:轉儲SQL - 結構+數據 - 選擇路徑。得到需要的.sql文件。
第三步,將.sql文件導入新服務器數據庫中。
如果根據已有的SQL文件執(zhí)行數據導入,那么可以直接在打開一個數據庫后,新建一個查詢窗口,然后將sql文件中的內容粘貼到窗口中執(zhí)行即可,這種方式同時適用于單表數據導入與數據庫整體導入。
如果想要進行整個數據庫的數據導入,也可以直接選中新服務器IP,右鍵:運行SQL。然后選擇之前導出的數據庫sql文件,最后點擊“開始”??梢缘玫脚c之前服務器數據庫中相同的數據。
第二種方案:邏輯遷移-使用mysqldump
登錄遠程服務器,在服務器中導出數據庫
第一步,登錄公網IP為x.x.x.x的阿里云ECS服務器。
第二步,將需要遷移的原數據庫ZJZK2022中的數據導出,生成*.sql文件。
命令:service mysql start
/mnt/mysql/mysql-5.7.37/bin/mysqldump -u root -p --opt ZJZK2022 /tmp/ZJZK2022-data-export.sql
然后輸入登錄密碼“123456”。
執(zhí)行mysqldump命令后,若沒有報錯,則shel不會有任何結果顯示。
注釋:ZJZK2022——本次準備遷移的數據庫;
/tmp/ZJZK2022-data-export.sql——導出時生成的數據文件存放的位置與文件名;
--opt——此命令參數開啟代表著同時激活了quick、add-drop-table、add-locks、extended-insert和lock-tables 參數;
quick——忽略緩存,直接將數據導出到*.sql文件中;
add-drop-table——在每個CREATE TABEL命令之前增加DROP-TABLE IF EXISTS語句,防止數據表重名;
add-locks——在備份數據表前后添加表鎖定與解鎖 SQL 語句;
extended-insert——此參數表示可以多行插入,提高導入效率,開啟與否導入效率相差數倍,推薦開啟。
第三步,進入導出目錄查看導出結果。
命令:cd /tmp
ls
若結果顯示ZJZK2022-data-export.sql,則說明文件已經生成。
無服務器,獨立MySQL數據庫遠程導出至本地計算機
如果在阿里云購買的不是一臺服務器,而是一個獨立MySQL數據庫的話,那也可以將數據庫導出至本地計算機。
命令:service mysql start
/mnt/mysql/mysql-5.7.37/bin/mysqldump -h y.y.y.y -u ZJZK2022-remote -p -P3306 --default-character-set=utf8 --set-gtid-purged=OFF --column-statistics=0 ZJZK2022 /Desktop/ZJZK2022-data-export.sql
注釋:y.y.y.y——遠程數據庫ip地址;
ZJZK2022-remote——擁有遠程訪問權限的數據庫賬號;
-P 3306——數據庫訪問端口,可根據自己情況修改;
default-character-set=utf8——導出時指定字符集;
set-gtid-purged=OFF——全局事務 ID (GTID) 來強化數據庫的主備一致性,故障恢復,以及容錯能力。開啟這個功能導入導出時,可能會出錯,故關閉;
/Desktop/ZJZK2022-data-export.sql——本地計算機保存路徑及保存文件名。
提示:mysqldump常見報錯:mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
可在命令中添加column-statistics=0參數。因MySQL數據庫早期版本information_schema數據庫中沒有名為COLUMN_STATISTICS的數據表,新版mysqldump默認啟用,我們可以通過此命令禁用它。
執(zhí)行命令后,若沒有報錯,則shel不會有任何結果顯示,但已經可以在桌面上看到導出后生成的文件。
復制 *.sql 至新數據庫/新服務器
使用WinSCP將導出的*.sql文件傳送到內網IP為y1.y1.y1.y1的新服務器對應的路徑中。
命令:scp /tmp/ZJZK2022-data-export.sql root@y1.y1.y1.y1:/tmp/
輸入連接root@y1.y1.y1.y1的密碼“654321”。
若結果顯示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”,則說明出現錯誤??梢允褂妹睢皊sh-keygen -R y1.y1.y1.y1”,然后重新嘗試連接,輸入yes,按下回車,成功連接。
若結果顯示“ZJZK2022.sql 100% 7191 2.6MB/s 00:00”,則說明數據傳送成功。
如果購買的是獨立MySQL數據庫的話,也可以直接在阿里云服務器中直接向新服務器MySQL數據庫導入數據。
導入數據庫
方法一:本地數據庫*.sql文件導入
第一步,當數據傳輸到公網IP為y.y.y.y的服務器后,可以在此服務器上新建一個名為ZJZK2022_new數據庫,然后使用mysql命令直接導入數據庫。
要將*.sql導入到數據庫中,首先以root或有足夠權限的賬號登錄MySQL。
命令:service mysql start
cd /mnt/mysql/mysql-5.7.37/bin
./mysql -u root -p
然后輸入登錄密碼“123456”,就可以進入MySQL shell狀態(tài)。
接著創(chuàng)建一個名為ZJZK2022_new的新數據庫。
命令:mysql CREATE DATABASE ZJZK2022_new;
若執(zhí)行命令后返回內容顯示“Query OK, 1 row affected (0.00 sec)”,則說明新數據庫創(chuàng)建成功。
然后使用“CTRL+D”退出MySQL shell。
最后導入數據庫文件/tmp/ZJZK2022-data-export.sql。
命令:/mnt/mysql/mysql-5.7.37/bin/mysql -u root -p ZJZK2022_new /tmp/ZJZK2022-data-export.sql
若運行成功,則命令行不會有任何提示。
若運行失敗,則命令行會提示失敗原因。
注釋:root——可以登錄數據庫的用戶名;
ZJZK2022_new——剛剛新建的空數據庫,數據會導入到該數據庫中;
/tmp/ZJZK2022-data-export.sql——之前導出的sql文件,把它再導入到新數據庫中。
第二步,要檢測是否導入成功,可以登錄到MySQL查看并檢查數據庫中的數據。
命令:cd /mnt/mysql/mysql-5.7.37/bin
./mysql -u root -p
然后輸入登錄密碼“123456”,就可以進入MySQL shell狀態(tài)。
# 選擇剛剛導入數據的新建數據庫
mysql USE ZJZK2022_new;
# 查看數據庫中包含的表
mysql SHOW TABLES;
# 打開表查看內容
mysql SELECT * FROM users;
若結果顯示的內容與公網IP為x.x.x.x的服務器中的數據庫的內容一致,則說明mysql數據遷移成功。
方法二:在阿里云服務器中,直接遠程將數據導入至新服務器
如果購買的是獨立數據庫的話,那么就沒辦法先把*.sql存過去,再導入。所以我們可以直接在阿里云服務器上發(fā)起導入操作,直接導入至新服務器。
命令:/mnt/mysql/mysql-5.7.37/bin/mysql -h ZJZK2022_new -u root -p -P10010 ZJZK2022_new /tmp/ZJZK2022-data-export.sql
注釋:ZJZK2022_new——新服務器MySQL數據庫地址;
-P——數據庫端口。
數據導入至新服務器MySQL,命令執(zhí)行成功后,并不會有任何提示。登錄新服務器數據庫可以看到遷移結果。
遠程登錄新服務器MySQL,查看導入情況。
公網IP分別為x.x.x.x和y.y.y.y的服務器都已經安裝好了mysql數據庫。
忘記MySQL的登錄密碼,通過重置密碼解決
命令:cd /mnt/mysql/mysql-5.7.37/bin
./mysql -u root -p123456
若結果顯示“ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)”,則說明mysql的root用戶密碼錯誤,需要重置密碼,然后用新密碼重新登錄數據庫。具體做法如下:
1)停止mysql數據庫。
命令:service mysql stop
2)新建文件夾/usr/local/mysql/data。
命令:mkdir -p /usr/local/mysql/data
3)啟動mysql,并以不檢查權限的情況下啟動。
命令:mysqld --skip-grant-tables
mysqld --user=root --skip-grant-tables
4)登錄mysql,修改密碼,刷新權限。
命令:mysql -uroot
mysql UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';
mysql flush privileges;
mysql exit
5)重啟之后輸入“mysql -uroot -p123456”即可進入mysql。
不進入mysql根目錄即可進行相應的操作
第一步,在兩臺服務器上都配置環(huán)境變量。
在文件/etc/profile中添加下面的代碼:
export PATH=$PATH:/mnt/mysql/mysql-5.7.37/bin
# 使profile文件生效
命令:source /etc/profile
# 導出數據
mysqldump -u root -p --opt ZJZK2022 /tmp/ZJZK2022-data-export.sql
# 導入數據
mysql -uroot -p123456
mysql -u root -p ZJZK2022_new /tmp/ZJZK2022-data-export.sql
mysql -h ZJZK2022_new -u root -p -P10010 ZJZK2022_new /tmp/ZJZK2022-data-export.sql
第二步,在公網IP為y.y.y.y的服務器中將需要遷移的原數據庫ZJZK2022中數據導出,生成*.sql文件,生成的文件仍在本服務器中。
1)可以在文件夾/mnt/mysql中創(chuàng)建一個名為mysql_export的腳本。
腳本代碼如下:
# 執(zhí)行MySQL命令 #!/bin/bash export MYSQL_PWD='123456' /mnt/mysql/mysql-5.7.37/bin/mysqldump -u root -p --opt ZJZK2022 /tmp/ZJZK2022-data-export.sql
2)把啟動腳本放到開機初始化目錄
命令:cp /mnt/mysql/mysql_export /etc/init.d/mysql_export
#賦予可執(zhí)行權限
命令:chmod +x /etc/init.d/mysql_export
#添加服務
命令:chkconfig --add mysql_export
#啟動mysql_sign服務
命令:service mysql_export start
展開閱讀全文
你好,大的步驟有以下三個:
購買或搭建新的服務器;
將老網站的服務器部署的web應用拷貝到新的服務器上,當然拷貝之前需要按轉好一些必備軟件的
域名解析指向新的服務器
針對第二步,你需要了解清楚,你的網站用的什么應用服務器(比如tomcat,weblogic等),你的項目是是什么語言開發(fā)(比如java,php等)的,你的數據庫安裝在哪里(如果有單獨得數據庫服務器,則可以不用考慮),確定好這些 你需要在新服務器上安裝相應的軟件環(huán)境,比如如果是java語言開發(fā)的項目 必須得有jdk環(huán)境,這些東西,建議你找一個有部署經驗得開發(fā)者來協(xié)助你實現。
如果是阿里云服務器之間的切換,你可以通過阿里云ECS中的好像叫拷貝什么的(忘了什么名詞了)將你老服務器上的所有東西都弄到新的服務器上,你只需做的就是第三步。
祝你好運
把源碼備份拷貝到新服務器,之后直接按照原來的服務器目錄布置站點就行了,