本文目錄一覽:
- 1、怎樣用命令行把MySQL數據庫遷移到另一台Linux服務器
- 2、怎麼linux本地mysql放到docker中?
- 3、linux環境下通過軟鏈接變更mysql數據存儲路徑
- 4、請教linux下mysql遷移問題
- 5、linux怎麼將mysql數據移動到掛載的硬盤上
怎樣用命令行把MySQL數據庫遷移到另一台Linux服務器
1、用dump命令備份數據庫。
# mysqldump -u root -p dbfile dbfile.sql
2、用rsync從新服務器獲得備份的文件(SCP或WGET也可以)。
# rsync -avr root@myolddbserver:/home/mydumpfolder/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命令提示符下使用mysqldump命令進行備份.
如下:
C:\Documents and Settings\Administratormysqldump yinshi c:\\backup.txt -uroot
-p12142022
說明:yinshi是我的數據庫名,裡面有5張表; c:\\backup.txt 是我備份出來文件名和路徑;
-u,-p參數後面跟的分別是用戶名和密碼.
將你備份出來的文件我這裡是backup.txt拷貝到另一台機上,再在dos命令提示符下用mysql命令,進行恢復,如下:
C:\Documents and Settings\Administratormysql c:\\backup.txt -uroot -p12142022
or
mysqlsource backup.txt;(這裡backup.txt在放在data目錄下)
—————————————————————
如果另一台機器上也安裝了mysql,可以直接導入
C:\mysql\binmysqldump -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’
怎麼linux本地mysql放到docker中?
如果對MySQL比較熟悉,那麼可以使用MySQL異機遷移的方法:
先確定MySQL的運行系統、發行版、版本號,以前的配置文件。
根據以上信息在Docker環境下新建一台全新的MySQL。
根據業務需要實施停機遷移/在線遷移,將數據遷入Docker內的MySQL。
停機遷移:直接拷貝數據文件(物理遷移)、全量Dump導出(邏輯備份遷移)、xtraback備份(物理備份遷移)
在線遷移:將新庫作為從庫加入集群,完成同步後fo切換,原主庫下線。
如果對Docker比較熟悉,可以使用Docker整機遷移的方法:
整機虛擬化直接作為一個鏡像在Docker內運行。
這種方法雖然簡單,但過程漫長而且運行時性能損耗非常大,也容易出問題,不是很推薦。
linux環境下通過軟鏈接變更mysql數據存儲路徑
想要改變mysql數據存儲路徑的想法最初是在生產服務器上mysql的數據放到了系統盤上,導致系統盤滿額,沒有足夠的內存交換空間而死機。
將mysql數據存儲到其他目錄下有兩種方法,方法一修改my.cnf配置文件,不過經過筆者通過網上的配置資料嘗試總是不成功,環境是在centos7下操作的。後來想到一個簡單的方法,通過linux的軟鏈接將實際數據放到另外的目錄裡面就可以了。
操作系統是centos7
mysql是通過二進制包裡面的rpm方式安裝的。相當於全自動了。
先關閉mysql
默認情況下,rpm安裝好的mysql會將數據放置在 /var/lib/mysql 目錄當中,我們像將數據遷移到/mnt/data目錄當中在terminal當中輸入:
mv命令會直接將 /var/lib/mysql 文件夾直接剪切到 /mnt/data 目錄當中。
這時我們需要回到/var/lib目錄當中,
在這個目錄當中建立軟鏈接。
軟鏈接相當於windows裡面創建目錄快捷方式是一樣的,這個時候你應該可以看到mysql文件夾回到了 /var/lib 目錄當中,要進去查看一下mysql的路徑是否和my.cnf一致。
這時候我們再啟動mysql
以上我們就將數據遷移到其他目錄下,並且還沒有修改和變更my.cnf文件。
請教linux下mysql遷移問題
第一 你要確定 你的是哪個存儲引擎。
第二:
myisam 直接copy 即可
第三:
innodb 假設數據不大用工具mysqldump 備份 拷貝過去還原 ,數據大 用mydumper 或者 innobackupex
其中 mydumper mysqldump 都可以在 你要遷移的目的主機上面操作(遠程備份) 就省下 cp過程 但是這個需要主要影響是帶寬 io
innobackupex 也可以備份文件放到遠程
第四 :直接做主從也是一種,但是 備份在還原快點
第五:啟動mysql 測試
linux怎麼將mysql數據移動到掛載的硬盤上
linux下,mysql安裝後,數據庫的數據默認存放在/var/lib/mysql目錄下,如果該目錄下掛載的磁盤空間很少,不夠用。需要遷移到其他的目錄位置。
方法一:
參照windows下的方法,把/var/lib/mysql移到需要的目錄,再修改/etc/my.cnf文件,指定數據目錄。這方面的教程網上很多,大家可以去搜索一下。
方法二:
使用linux下的軟連接方法,具體操作如下:(以遷移到/home/mysql/目錄為例)
先停止mysql:
/etc/init.d/mysqld stop
移動數據:
mv /var/lib/mysql/* /home/mysql/
創建軟連接:
ln -s /home/mysql/ /var/lib/mysql/
啟動mysql:
/etc/init.d/mysqld start
即可。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/283257.html