2013-09-02 49 views
16

Tôi đã cài đặt Drupal trên máy chủ XAMPP cục bộ của mình. Nó làm việc tốt, không có vấn đề với bao gồm và làm việc với cơ sở dữ liệu/trang web cho đến khi tôi khởi động lại XAMPP. Kể từ đó tôi nhận được sau tại logfile của tôi:XAMPP/MySQL: không thể mở tệp bảng không gian bảng đơn. Mysql innodb_index_stats.ibd sau khi khởi động lại MySQL

2013-09-02 16:18:46 2544 [Note] Plugin 'FEDERATED' is disabled.

2013-09-02 16:18:46 3e8 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.

2013-09-02 16:18:46 2544 [Note] InnoDB: The InnoDB memory heap is disabled

2013-09-02 16:18:46 2544 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions

2013-09-02 16:18:46 2544 [Note] InnoDB: Compressed tables use zlib 1.2.3

2013-09-02 16:18:46 2544 [Note] InnoDB: Not using CPU crc32 instructions

2013-09-02 16:18:46 2544 [Note] InnoDB: Initializing buffer pool, size = 16.0M

2013-09-02 16:18:46 2544 [Note] InnoDB: Completed initialization of buffer pool

2013-09-02 16:18:46 2544 [Note] InnoDB: Highest supported file format is Barracuda.

2013-09-02 16:18:47 2544 [Note] InnoDB: The log sequence numbers 1600614 and 1600614 in ibdata files do not match the log sequence number 1600644 in the ib_logfiles!

2013-09-02 16:18:47 2544 [Note] InnoDB: Database was not shutdown normally!

2013-09-02 16:18:47 2544 [Note] InnoDB: Starting crash recovery.

2013-09-02 16:18:47 2544 [Note] InnoDB: Reading tablespace information from the .ibd files...

2013-09-02 16:18:47 2544 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace drupal/variable uses space ID: 2 at filepath: .\drupal\variable.ibd. Cannot open tablespace mysql/innodb_index_stats which uses space ID: 2 at filepath: .\mysql\innodb_index_stats.ibd

InnoDB: Error: could not open single-table tablespace file .\mysql\innodb_index_stats.ibd

InnoDB: We do not continue the crash recovery, because the table may become

InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.

InnoDB: To fix the problem and start mysqld:

InnoDB: 1) If there is a permission problem in the file and mysqld cannot

InnoDB: open the file, you should modify the permissions.

InnoDB: 2) If the table is not needed, or you can restore it from a backup,

InnoDB: then you can remove the .ibd file, and InnoDB will do a normal

InnoDB: crash recovery and ignore that table.

InnoDB: 3) If the file system or the disk is broken, and you cannot remove

InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf

InnoDB: and force InnoDB to continue crash recovery here.

tôi đã tìm kiếm một giải pháp thông qua google nhưng nó dường như là một vấn đề chỉ với cơ sở dữ liệu drupal vì nó có thể kết nối với MySQL nếu tôi loại bỏ các cơ sở dữ liệu.

Tôi hy vọng ai đó có thể giúp tôi :(

+0

Ok, tôi nghĩ tôi đã hiểu. Đó là một vấn đề với đặc quyền người dùng cho cơ sở dữ liệu. Người dùng có quyền nhưng sau khi tắt MySQL, những thay đổi mà người dùng của tôi đã làm, đều bị hủy. Bây giờ người dùng của tôi chỉ có các đặc quyền hạn chế ở cơ sở dữ liệu này và - nhìn - nó hoạt động :). – leiseliesel

Trả lời

7

dev_khan, thử khởi động lại MySQL trong chế độ Read-Only với các tùy chọn innodb_force_recovery được kích hoạt:

  1. Sửa my.cnf - tìm dòng: # innodb_force_recovery = 2
  2. Comment dòng trong (xóa #)
  3. Khởi động lại MySQL để cho phép cơ chế sửa lỗi của MySQL tự động.
  4. Nhận xét lại dòng innodb_force_recovery (thêm #)
  5. Khởi động lại MySQL lần nữa và bạn có toàn quyền truy cập lại mà không có Hạn chế chỉ đọc.

Chúc mừng từ Đức

33

Move (KHÔNG DELETE) các tập tin, vào một thư mục khác:.

innodb_index_stats.frm 
innodb_table_stats.frm 
slave_master_info.frm 
slave_relay_log_info.frm 
slave_worker_info.frm 

và .ibd file có cùng tên tệp:

innodb_index_stats.ibd 
innodb_table_stats.ibd 
slave_master_info.ibd 
slave_relay_log_info.ibd 
slave_worker_info.ibd 

Hãy thử bắt đầu MySQL.

+0

Tôi đã thử điều này trước nhưng tôi đã nhận được cùng một vấn đề một lần nữa và một lần nữa. Chỉ cần thay đổi các đặc quyền của người dùng cơ sở dữ liệu của tôi đã làm việc tốt :) Vì lý do nào đó, tất cả các thay đổi mà người dùng của tôi đã bị ghi đè bằng 0 sau khi tắt hệ thống, nhưng cảm ơn bạn đã trả lời! – leiseliesel

+0

Xin chào, tôi có cùng một vấn đề .. làm cách nào tôi có thể thay đổi các đặc quyền của cơ sở dữ liệu của mình? –

+0

Hãy xem tại đây (http: // serverfault.com/questions/115950/how-do-i-thay đổi-the-đặc quyền-cho-mysql-người dùng-đó-là-đã-đã-được tạo) và ở đây (http://stackoverflow.com/questions/5016505/mysql-grant -all-privile-on-database). –

19

Bạn có thể giải quyết vấn đề này bằng cách thêm dòng trong cấu hình mysql f ile: my.cnf hoặc my.ini (phụ thuộc vào distro của bạn)

chỉ dưới [mysqld] thêm dòng này: innodb_force_recovery = 1

.. 
[mysqld] 
innodb_force_recovery = 1 
.. 

Sau đó khởi động lại MySql Server của bạn. Bạn có thể đã mất một số dữ liệu nhưng bạn sẽ nhận được máy chủ hoạt động trở lại với dữ liệu của bạn.

Kính trọng,

+0

Điều này cố định nó cho tôi mặc dù nó cảnh báo tôi rằng nó có thể gây ra vấn đề. Vì vậy, hãy đảm bảo bạn tạo bản sao lưu trước khi thực hiện việc này. Tôi đoán nó có thể buộc chính nó để phục hồi phá vỡ các db trong quá trình – Crecket

+0

Charles P. Sau khi làm điều này các bảng của tôi chỉ có quyền chỉ đọc. Không thể chèn/cập nhật bất kỳ ý tưởng nào? –

+0

Xin chào, dev_khan. Nó không xảy ra với tôi, nhưng hãy cố gắng thêm vào tập tin cấu hình dòng này: bỏ qua cấp-bảng Sau đó khởi động lại mysql và thử lại. –

0

Điều này xảy ra với Wordpress quá. Nó dường như chỉ xảy ra với phiên bản mới nhất khi tôi đã quay lại các phiên bản trước của AMPPS và nó hoạt động tốt mà không vứt bỏ vấn đề innodb này.

Các vấn đề liên quan