Puncte:0

Migrare server: mysql

drapel mx

Care este cel mai bun și mai rapid mod de a muta mysql la schimbarea serverelor?

Momentan o fac prin phpmyadmin, fac backup db-ului pe vechiul server, deschid un utilizator nou pe noul server, creez o nouă bază de date și încarc/restaurează backup-ul.

(Folosesc așa ceva pentru a accelera restaurarea bazei de date cu terminalul mysql.)

mysql -u nume utilizator -p bază de date < /var/www/html/mysql_dump/nomedb.sql

O operațiune lungă și plictisitoare... se poate face într-un mod mai bun și mai rapid pentru a copia baza de date și utilizatorii mysql pe noul server?

Am acces ssh și server root, ubuntu 20.04 server, apache, php8.1

----------Actualizați---------

Doar pentru a fi complet, folosesc în mod regulat acest script pentru a face copii de rezervă mysql și descarc totul cu rsync pe un disc local, așa că backupul bazelor de date nu este o problemă. Partea plictisitoare este restaurarea lor una câte una... https://www.alebalweb-blog.com/66-backup-automatico-mysql-su-server-ubuntu.html (Ne pare rău, descrierea este în italiană, dar este aproape tot cod...)

drapel in
Utilizator+Parolă+Permisiuni poate fi dificil dacă noul server nu este aceeași versiune cu sursa. Cunoașteți fiecare parolă pentru conturile de utilizator? Sau acestea sunt folosite de oameni (spre deosebire de sisteme) care își schimbă parolele?
alebal avatar
drapel mx
Cred că serverul va fi același... mai mult sau mai puțin... îl instalez... știu toată parola, nu este o problemă.
raj avatar
drapel cn
raj
Cel mai sigur mod de a copia o bază de date MySQL este prin mysqldump, așa cum o faci deja. Nu este recomandat să copiați doar fișierele bazei de date. Numai că, în schimb, creând un dump de bază de date în phpMyAdmin, puteți doar să utilizați mysqldump direct și să copiați fișierele rezultate pe noul server.
Puncte:1
drapel in

âBestâ este mai degrabă subiectivă, ceea ce duce la opinii, dar aceasta este, în general, metoda pe care o urmez atunci când setez la o nouă bază de date MySQL:

Pe noul server â¦

  1. Creați toate bazele de date
    CREAȚI BAZĂ DE DATE `{dbname}` DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    CREAȚI BAZĂ DE DATE â¦
    CREAȚI BAZĂ DE DATE ⦠
    
  2. Creați toate conturile de utilizator și setați privilegiile:
    CREAȚI UTILIZATOR '{user}'@'localhost' IDENTIFICAT CU mysql_native_password DE 'superSecretPassword!123';
    Acordați TOTUL PE `{dbname}`.* LA '{user}'@'localhost';
    CREAȚI UTILIZATOR â¦
    ACCORDĂ TOATE â¦
    

Pe serverul sursă â¦

  1. Exportați bazele de date una câte una:

    sudo mysqldump {dbname} -n --routines --triggers > dbname.sql
    

    Notă: Nu trebuie să utilizați linia de comandă pentru aceasta dacă preferați phpMyAdmin sau un alt instrument.

    -n ⢠Suprimați instrucțiunea CREATE DATABASE ... IF EXISTS

    --rutine ⢠Eliminați rutinele stocate (funcții și proceduri)

    --declanșatoare ⢠Declanșatoarele de descărcare pentru fiecare tabel de descărcare

  2. Împachetați și comprimați depozitele bazei de date pentru un transport mai ușor:

    sudo tar -czvf dbs.tar.gz *.sql
    
  3. Copiați/Trimiteți fișierul comprimat pe noul server

Pe noul server â¦

  1. Extrageți bazele de date din fișierul comprimat:
    tar -xvf dbs.tar.sql
    
  2. Importă bazele de date:
    sudo mysql dbname < dbname.sql
    sudo mysql dbname â¦
    
  3. (Opțional) Reporniți MySQL pentru a șterge tampoanele:
    sudo service mysql restart
    
  4. Bucurați-vă de o scurtă pauză

Există și alte moduri de a face acest lucru, dar urmez acest proces, deoarece îmi permite să evit problemele de suprascriere a diferitelor versiuni ale mysql tabel de sistem (dacă noul server nu este exact aceeași versiune), asigurându-vă, de asemenea, că toate datele, conturile, permisiunile și funcțiile/procedurile/declanșatoarele sunt la locul lor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.