Myhli MySQL maglumat bazalaryny köne-täze serwere nädip geçirmeli


MySQL/MariaDB maglumat bazasyny serwerleriň arasynda geçirmek ýa-da göçürmek, adatça, diňe birnäçe aňsat ädim ätýär, ýöne maglumat geçirmek isleýän maglumatlaryňyzyň mukdaryna baglylykda birnäçe wagt alyp biler.

Bu makalada ähli MySQL/MariaDB maglumat bazalaryňyzy köne Linux serwerinden täze serwere geçirmegi ýa-da göçürmegi, üstünlikli import etmegiňizi we maglumatlaryň bardygyny tassyklamagy öwrenersiňiz.

  • Iki serwerde birmeňzeş paýlanyş bilen MySQL-iň birmeňzeş wersiýasynyň bardygyna göz ýetiriň.
  • Maglumat bazasynyň zibil faýlyny we import edilýän maglumatlar binýadyny saklamak üçin iki serwerde ýeterlik boş ýeriň bardygyna göz ýetiriň.
  • Maglumatlar bazasynyň maglumatlary katalogyny başga bir serwere geçirmegi hiç wagt pikir etmäň. Maglumatlar bazasynyň içerki gurluşy bilen hiç wagt bulaşmaň, geljekde kynçylyklar bilen ýüzbe-ýüz bolarsyňyz.

Faýly taşlamak üçin MySQL maglumat bazalaryny eksport ediň

Ilki bilen köne serweriňize girip başlaň we görkezilişi ýaly systemctl buýrugyny ulanyp mysql/mariadb hyzmatyny duruzyň.

# systemctl stop mariadb
OR
# systemctl stop mysql

Soňra ähli MySQL maglumat bazalaryňyzy mysqldump buýrugyny ulanyp bir faýla taşlaň.

# mysqldump -u [user] -p --all-databases > all_databases.sql

Zyňyndy gutaransoň, maglumat bazalaryny geçirmäge taýyn.

Dataeke-täk maglumat bazasyny zyňmak isleseňiz, ulanyp bilersiňiz:

# mysqldump -u root -p --opt [database name] > database_name.sql

MySQL maglumat bazalary zyňylýan faýly täze serwere geçiriň

Indi maglumat bazalaryňyzyň zibil faýlyny görkezilişi ýaly öý katalogynyň aşagyndaky täze serwere geçirmek üçin scp buýrugyny ulanyň.

# scp all_databases.sql [email :~/       [All Databases]
# scp database_name.sql [email :~/       [Singe Database]

Birikdirilenden soň maglumatlar bazasy täze serwere geçiriler.

MySQL Maglumatlar bazalarynyň zibil faýlyny täze serwere import ediň

MySQL zibil faýly täze serwere geçirilenden soň, ähli maglumat bazalaryňyzy MySQL-a import etmek üçin aşakdaky buýrugy ulanyp bilersiňiz.

# mysql -u [user] -p --all-databases < all_databases.sql   [All Databases]
# mysql -u [user] -p newdatabase < database_name.sql      [Singe Database]

Import tamamlanandan soň, mysql gabygyndaky aşakdaky buýrugy ulanyp, iki serwerdäki maglumat bazalaryny barlap bilersiňiz.

# mysql -u user -p
# show databases;

MySQL maglumat bazalaryny we ulanyjylaryny täze serwere geçiriň

MySQL maglumat bazalaryňyzyň, ulanyjylaryňyzyň, rugsatlaryňyzyň we maglumat gurluşynyň köne serwerini täze birine geçirmek isleseňiz, mysql/mariadb maglumat katalogyndan ähli mazmuny görkezilişi ýaly täze serwere göçürmek üçin rsync buýrugyny ulanyp bilersiňiz.

# rsync -avz /var/lib/mysql/* [email :/var/lib/mysql/ 

Geçiriş tamamlanandan soň, mysql/mariadb maglumat katalogynyň eýeçiligini ulanyjy we mysql toparyna belläp bilersiňiz, soňra ähli faýllaryň geçirilendigini barlamak üçin katalog sanawyny düzüp bilersiňiz.

# chown mysql:mysql -R /var/lib/mysql/
# ls  -l /var/lib/mysql/

Bu hemmesi! Bu makalada ähli MySQL/MariaDB maglumat bazalaryny bir serwerden beýlekisine aňsatlyk bilen göçürmegi öwrendiňiz. Beýleki usullar bilen deňeşdirilende bu usuly nädip tapyp bilersiňiz? Bize ýetmek üçin aşakdaky teswir formasy arkaly sizden eşitmek isleýäris.