MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Възстановяване на екземпляр на mySQL от друг потребителски акаунт (macOS)

Използвах временно Mac на моя приятел, докато моят не беше обслужен. Така че по-рано тази седмица изтрих потребителския си акаунт на неговия Mac, който имаше куп бази данни, от които имах нужда. Бях архивирал повечето потребителски данни, преди да изтрия този акаунт, но скоро осъзнах, че съм пропуснал да архивирам базата данни. Щастието и вероятно причината за това е, че директорията с данни на базата данни обикновено се намира извън потребителския акаунт. В тази статия ще спомена точките за това как върнах тези DB данни, използвайки потребителския акаунт на приятелите си (или дори можете да създадете нов и да направите същите стъпки).

  • Уверете се, че mariadb все още е инсталиран, като изпълните brew install mariadb .Открих, че е наличен, но homebrew няма достъп до директорията за инсталиране, тъй като е създаден от различен потребителски акаунт. Така че първо възстановяваме това, като изпълним:
sudo chown -R $(whoami) /usr/local/bin

Ако командата изведе дъмп за грешка, показващ до кои папки няма достъп, можете да изпълните същата команда за всяка от папките. Пуснах също brew upgrade mariadb за да останете в крак с данните с по-новата инсталация на mariadb (въпреки че не бих посъветвал да изпълнявате това като цяло, докато не архивирате базите данни).

  • След това трябва да разберете коя директория с данни използва mariadb и да стартирате chown и върху нея. Това може да стане, като изпълните:
brew services list

Това ще даде списък на работещите услуги и техните конфигурации за изпълнение. Просто отворете конфигурацията на задачите на mariadb и вижте параметъра --datadir в XML--трябва да е вътре в блока с аргументи. В моя случай това беше --datadir=/usr/local/var/mysql . Сега копирайте този път и стартирайте:

sudo chown -R $(whoami) /usr/local/var/mysql

В този момент може да се чудите защо просто не копирате директорията с данни в собствен Mac и след това да отворите базата данни директно? Проблемът тук е, че папката има само .ibd и .frm файлове, които наистина не се импортират от mySQL. Така че трябва да стартирам mysql сървъра отново с тази директория с данни и след това да я експортирам.

  • След това трябваше да спра всеки текущ mysql сървър, за да гарантирам, че мога да стартирам mysql гладко. Правя това, като стартирам:
brew services stop mariadb
ps aux | grep mysql

Последната команда е да проверите дали няма други работещи екземпляри на mysql. Ако командата върне процеси, изпълняващи mysql, тогава те трябва да бъдат убити с командата kill -9 или в противен случай отворете Activity Monitor, използвайте търсене, за да филтрирате mysql и ги убийте принудително ръчно.

Сега новият екземпляр на mysql може да се стартира с помощта на:

brew services start mariadb

Като алтернатива, можете дори да извикате програмата, намерена в папката bin, спомената в XML файла на конфигурацията на услугата homebrew, т.е. да вземете първия програмен низ и да замените mysqld_safe към mysql.server start и изпълнете командата. В моя случай направих това, като изпълних:

/usr/local/opt/mariadb/bin/mysql.server start

Ще върне УСПЕХА! ако услугата стартира успешно. В противен случай ще трябва да проверите регистрационните файлове за грешки (беше в /usr/local/var/mysql папка за мен), за да разбера какво се е объркало и да го разреши чрез малко гугъл.

И това е почти всичко, вече можете да архивирате базите данни, както обикновено правите. Правя това като стартирам:

mysql -u root -p<password>
show databases

И това ще даде списък на всички бази данни. След това изпълнете командата за архивиране за всяка база данни, която искате да архивирате като:

mysqldump -u root -p<password> dbname > dbname.sql

И почти така се прави. И прехвърлих базите данни на собствения си лаптоп и беше готово.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB Server 10.0.33 вече е наличен

  2. Как да съкратите текст с многоточие в MariaDB

  3. Как TO_BASE64() работи в MariaDB

  4. Как MAKE_SET() работи в MariaDB

  5. Внедряване в множество облаци за репликация на MariaDB с помощта на WireGuard