MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Khôi phục phiên bản mySQL từ tài khoản người dùng khác (macOS)

Tôi đang tạm thời sử dụng máy mac của bạn tôi cho đến khi máy của tôi được bảo dưỡng. Vì vậy, vào đầu tuần này, tôi đã xóa tài khoản người dùng của mình trên máy mac của anh ấy, nơi có một loạt cơ sở dữ liệu mà tôi cần. Tôi đã sao lưu hầu hết dữ liệu người dùng trước khi xóa tài khoản đó nhưng ngay sau đó tôi nhận ra rằng mình đã bỏ lỡ việc sao lưu cơ sở dữ liệu. Điều may mắn và có thể là lý do cho điều này là thư mục dữ liệu cơ sở dữ liệu thường nằm bên ngoài tài khoản người dùng. Trong bài viết này, tôi sẽ đề cập đến các gạch đầu dòng về cách tôi lấy lại dữ liệu DB này bằng tài khoản người dùng bạn bè của mình (hoặc bạn thậm chí có thể tạo một tài khoản mới và thực hiện các bước tương tự).

  • Đảm bảo mariadb vẫn được cài đặt bằng cách chạy brew install mariadb . Tôi thấy rằng nó có sẵn nhưng homebrew không có quyền truy cập vào thư mục cài đặt vì nó được tạo từ một tài khoản người dùng khác. Vì vậy, trước tiên, chúng tôi khôi phục điều này bằng cách chạy:
sudo chown -R $(whoami) /usr/local/bin

Nếu lệnh ném ra một kết xuất lỗi hiển thị những thư mục nào mà nó không có quyền truy cập, bạn có thể chạy cùng một lệnh cho từng thư mục. Tôi cũng đã chạy brew upgrade mariadb để cập nhật dữ liệu với bản cài đặt mariadb mới hơn (mặc dù tôi không khuyên bạn nên chạy phần mềm này nói chung cho đến khi bạn đã sao lưu cơ sở dữ liệu).

  • Tiếp theo, bạn phải tìm ra thư mục dữ liệu nào mà mariadb sử dụng và chạy chown trên đó. Điều này có thể được thực hiện bằng cách chạy:
brew services list

Thao tác này sẽ cung cấp danh sách các dịch vụ đang chạy và cấu hình đang chạy của chúng. Chỉ cần mở cấu hình tác vụ mariadb và xem tham số --datadir trong XML - phải nằm bên trong khối đối số. Trong trường hợp của tôi, đây là --datadir=/usr/local/var/mysql . Bây giờ sao chép đường dẫn đó và chạy:

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

Tại thời điểm này, bạn có thể tự hỏi, tại sao không chỉ cần sao chép thư mục dữ liệu vào máy Mac của riêng mình và sau đó mở cơ sở dữ liệu trực tiếp? Vấn đề ở đây là thư mục chỉ có .ibd .frm các tệp mà mySQL thực sự không thể nhập được. Vì vậy, tôi phải chạy lại máy chủ mysql với dir dữ liệu này và sau đó xuất nó.

  • Tiếp theo, tôi phải dừng mọi máy chủ mysql đang hoạt động để đảm bảo rằng tôi có thể khởi động mysql một cách suôn sẻ. Tôi làm điều này bằng cách chạy:
Dịch vụ bia
brew services stop mariadb
ps aux | grep mysql

Lệnh cuối cùng là kiểm tra xem không có phiên bản mysql nào khác đang chạy. Nếu lệnh trả về bất kỳ tiến trình nào đang chạy mysql, thì những tiến trình đó cần phải bị giết bằng lệnh kill -9 hoặc nếu không, hãy mở Activity Monitor, sử dụng tìm kiếm để lọc mysql và buộc giết chúng theo cách thủ công.

Bây giờ, phiên bản mysql mới có thể được bắt đầu bằng cách sử dụng:

brew services start mariadb

Ngoài ra, bạn thậm chí có thể gọi chương trình được tìm thấy trong thư mục bin được đề cập trong tệp XML của cấu hình dịch vụ homebrew, tức là lấy chuỗi chương trình đầu tiên và thay thế mysqld_safe đến mysql.server start và chạy lệnh. Trong trường hợp của tôi, tôi đã làm điều này bằng cách chạy:

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

Nó sẽ trở lại THÀNH CÔNG! nếu dịch vụ bắt đầu thành công. Nếu không, bạn sẽ phải kiểm tra nhật ký lỗi (nằm trong /usr/local/var/mysql thư mục cho tôi) để tìm ra sự cố và giải quyết nó bằng một số googling.

Và đó là khá nhiều, bây giờ bạn có thể sao lưu cơ sở dữ liệu như bạn thường làm. Tôi làm điều này bằng cách chạy:

mysql -u root -p<password>
show databases

Và điều này sẽ cung cấp một danh sách tất cả các cơ sở dữ liệu. Và sau đó thực hiện lệnh sao lưu cho từng cơ sở dữ liệu bạn muốn sao lưu như:

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

Và đó là khá nhiều cách nó được thực hiện. Và tôi đã airdrop cơ sở dữ liệu vào máy tính xách tay của chính mình và đã hoàn tất.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cung cấp Công cụ bí mật cơ sở dữ liệu MySQL / MariaDB Vault với Terraform

  2. Viết tối ưu hóa cho Qualcomm Centriq 2400 trong ứng viên phát hành MariaDB 10.3.5

  3. So sánh Amazon RDS Point-in-Time Recovery với ClusterControl

  4. Cách hoạt động của WEEK () trong MariaDB

  5. Ăn thức ăn cho chó của chúng tôi - Chạy JIRA trên MariaDB