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

Nhập tệp .frm và .opt vào MySQL

Khi nhập bất kỳ dữ liệu MySQL nào, ba (3) điều cần phải xem xét.

MyISAM

Nhập bảng MyISAM đơn giản bằng cách di chuyển ba tệp với phần mở rộng .frm , .MYD.MYI các tệp cho bảng đã cho vào một thư mục MySQL. Ví dụ:nếu tên bảng là mydata thì ba (3) tệp

  • mydata.frm
  • mydata.MYD
  • mydata.MYI

Sau đây có thể là cơn ác mộng của những cơn ác mộng. Nhập khẩu InnoDB hoàn toàn phụ thuộc vào nhiều yếu tố thuộc một trong hai loại:

InnoDB ( innodb_file_per_table đã tắt [mặc định])

Tất cả dữ liệu InnoDB và các trang chỉ mục đều nằm trong /var/lib/mysql/ibdata1 . Tệp này phải được chuyển từ máy nguồn của bạn (Server-S) sang máy đích (Server-T) và được đặt trong cùng một đường dẫn tuyệt đối. Trên thực tế, đây là điều gây sốc:Server-S và Server-T phải giống nhau. Nói cách khác, bạn không thể nhập và xuất InnoDB .ibd tệp vào các máy khác. Chúng chỉ có thể được nhập và xuất trên cùng một máy .ibd được tạo vào.

Bạn cũng sẽ phải di chuyển / var / ib / mysql / ib_logfile0 và / var / ib / mysql / ib_logfile1 từ Server-S và đặt chúng trong cùng một đường dẫn tuyệt đối trên Server-T.

Bạn cũng phải đảm bảo rằng mọi biến InnoDB được đặt trong /etc/my.cnf từ Server-S phải được đặt trong /etc/my.cnf trên Server-T.

InnoDB ( innodb_file_per_table đã bật)

Đối với mỗi bảng InnoDB, sẽ có hai tệp. Ví dụ:nếu bảng InnoDB trong cơ sở dữ liệu mydata được gọi là mytable, bạn sẽ có /var/lib/mysql/mydata/mytable.frm và /var/lib/mysql/mydata/mytable.ibd. .ibd tệp chứa dữ liệu và các trang chỉ mục cho bảng. Để nhập từng bảng, bạn phải

  1. Đặt mytable.frm trong thư mục /var/lib/mysql/mydata folder trên Server-T
  2. Đặt mytable.ibd trong thư mục /var/lib/mysql/mydata folder trên Server-T
  3. Chạy ALTER TABLE mydata.mytable IMPORT TABLESPACE;

Đảm bảo bạn có /var/lib/mysql/ibdata1 ở cùng một nơi mà nó đã được nhập từ đó.

Đạo đức của câu chuyện

Vui lòng không sử dụng kỹ thuật IMPORT TABLESPACE trên các máy chủ khác nhau. Chỉ cần thực hiện mysqldump của mọi thứ và nhập mysqldump. Bãi rác hợp lý luôn là cách an toàn nhất để đi !!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cập nhật mysql với regexp

  2. MySql Proccesslist chứa đầy các Mục nhập Ngủ dẫn đến Quá nhiều Kết nối?

  3. Lô mùa xuân với bí danh cột làm khóa sắp xếp - câu lệnh where không đúng định dạng

  4. trình tạo / tạo trình lặp SqlAlchemy tích hợp hiệu quả bộ nhớ?

  5. MySqli:Có thể tạo cơ sở dữ liệu không?