2016-06-14 5 views
0

mysql-5.5データを持つmysql-5.6サーバを起動します。次のエラーが表示されます。どのように私はそのテーブルを修復することができますmysql.userテーブルを修復するには?

2016-06-14 11:07:54 5827 [Note] InnoDB: Using atomics to ref count buffer pool pages 
2016-06-14 11:07:54 5827 [Note] InnoDB: The InnoDB memory heap is disabled 
2016-06-14 11:07:54 5827 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 
2016-06-14 11:07:54 5827 [Note] InnoDB: Memory barrier is not used 
2016-06-14 11:07:54 5827 [Note] InnoDB: Compressed tables use zlib 1.2.8 
2016-06-14 11:07:54 5827 [Note] InnoDB: Using Linux native AIO 
2016-06-14 11:07:54 5827 [Note] InnoDB: Using CPU crc32 instructions 
2016-06-14 11:07:54 5827 [Note] InnoDB: Initializing buffer pool, size = 128.0M 
2016-06-14 11:07:54 5827 [Note] InnoDB: Completed initialization of buffer pool 
2016-06-14 11:07:54 5827 [Note] InnoDB: Highest supported file format is Barracuda. 
2016-06-14 11:07:54 5827 [Note] InnoDB: 128 rollback segment(s) are active. 
2016-06-14 11:07:54 5827 [Note] InnoDB: Waiting for purge to start 
2016-06-14 11:07:54 5827 [Note] InnoDB: 5.6.30 started; log sequence number 1600607 
2016-06-14 11:07:54 5827 [Note] Server hostname (bind-address): '*'; port: 3306 
2016-06-14 11:07:54 5827 [Note] IPv6 is available. 
2016-06-14 11:07:54 5827 [Note] - '::' resolves to '::'; 
2016-06-14 11:07:54 5827 [Note] Server socket created on IP: '::'. 
2016-06-14 11:07:54 5827 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect key file for table 'user'; try to repair it 
160614 11:07:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
--skip-助成金・テーブルの使用を開始

mysqld --skip-grant-tables & 
[1] 6534 
[email protected]:/var/lib/mysql# 2016-06-14 11:16:17 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. 
2016-06-14 11:16:17 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 
2016-06-14 11:16:17 0 [Note] mysqld (mysqld 5.6.30-0ubuntu0.14.04.1) starting as process 6534 ... 
2016-06-14 11:16:18 6534 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 
2016-06-14 11:16:18 6534 [Note] Plugin 'FEDERATED' is disabled. 
2016-06-14 11:16:18 6534 [Note] InnoDB: Using atomics to ref count buffer pool pages 
2016-06-14 11:16:18 6534 [Note] InnoDB: The InnoDB memory heap is disabled 
2016-06-14 11:16:18 6534 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 
2016-06-14 11:16:18 6534 [Note] InnoDB: Memory barrier is not used 
2016-06-14 11:16:18 6534 [Note] InnoDB: Compressed tables use zlib 1.2.8 
2016-06-14 11:16:18 6534 [Note] InnoDB: Using Linux native AIO 
2016-06-14 11:16:18 6534 [Note] InnoDB: Using CPU crc32 instructions 
2016-06-14 11:16:21 6534 [Note] InnoDB: Initializing buffer pool, size = 128.0M 
2016-06-14 11:16:21 6534 [Note] InnoDB: Completed initialization of buffer pool 
2016-06-14 11:16:21 6534 [Note] InnoDB: Highest supported file format is Barracuda. 
2016-06-14 11:16:21 6534 [Note] InnoDB: 128 rollback segment(s) are active. 
2016-06-14 11:16:21 6534 [Note] InnoDB: Waiting for purge to start 
2016-06-14 11:16:21 6534 [Note] InnoDB: 5.6.30 started; log sequence number 1600617 
2016-06-14 11:16:21 6534 [Note] Server hostname (bind-address): '*'; port: 3306 
2016-06-14 11:16:21 6534 [Note] IPv6 is available. 
2016-06-14 11:16:21 6534 [Note] - '::' resolves to '::'; 
2016-06-14 11:16:21 6534 [Note] Server socket created on IP: '::'. 
2016-06-14 11:16:21 6534 [Note] mysqld: ready for connections. 
Version: '5.6.30-0ubuntu0.14.04.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 

[email protected]:/var/lib/mysql# mysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.6.30-0ubuntu0.14.04.1 (Ubuntu) 

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> select TABLE_NAME,ENGINE from information_schema.tables where TABLE_SCHEMA='mysql'; 
+---------------------------+--------+ 
| TABLE_NAME    | ENGINE | 
+---------------------------+--------+ 
| columns_priv    | MyISAM | 
| db      | MyISAM | 
| event      | MyISAM | 
| func      | MyISAM | 
| general_log    | CSV | 
| help_category    | MyISAM | 
| help_keyword    | MyISAM | 
| help_relation    | MyISAM | 
| help_topic    | MyISAM | 
| innodb_index_stats  | InnoDB | 
| innodb_table_stats  | InnoDB | 
| ndb_binlog_index   | MyISAM | 
| plugin     | MyISAM | 
| proc      | MyISAM | 
| procs_priv    | MyISAM | 
| proxies_priv    | MyISAM | 
| servers     | MyISAM | 
| slave_master_info   | InnoDB | 
| slave_relay_log_info  | InnoDB | 
| slave_worker_info   | InnoDB | 
| slow_log     | CSV | 
| tables_priv    | MyISAM | 
| time_zone     | MyISAM | 
| time_zone_leap_second  | MyISAM | 
| time_zone_name   | MyISAM | 
| time_zone_transition  | MyISAM | 
| time_zone_transition_type | MyISAM | 
| user      | MyISAM | 
+---------------------------+--------+ 
28 rows in set (0.50 sec) 

mysql> repair table mysql.user; 
+------------+--------+----------+-------------------------------------------------------+ 
| Table  | Op  | Msg_type | Msg_text            | 
+------------+--------+----------+-------------------------------------------------------+ 
| mysql.user | repair | Error | Incorrect key file for table 'user'; try to repair it | 
| mysql.user | repair | error | Corrupt            | 
+------------+--------+----------+-------------------------------------------------------+ 
2 rows in set (0.00 sec) 

:私はmysql_upgrade エラーを実行するためのサーバを起動できないのですか?私はこれを試みたが、私はユーザーテーブルのデータを失った。

mysql> repair table mysql.user USE_FRM; 
+------------+--------+----------+--------------------------------------------------+ 
| Table  | Op  | Msg_type | Msg_text           | 
+------------+--------+----------+--------------------------------------------------+ 
| mysql.user | repair | info  | Key 1 - Found wrong stored record at 0   | 
| mysql.user | repair | info  | Found block that points outside data file at 184 | 
| mysql.user | repair | info  | Found block that points outside data file at 292 | 
| mysql.user | repair | info  | Found block that points outside data file at 296 | 
| mysql.user | repair | info  | Found block that points outside data file at 300 | 
| mysql.user | repair | info  | Found block that points outside data file at 304 | 
| mysql.user | repair | info  | Found block that points outside data file at 308 | 
| mysql.user | repair | info  | Found block that points outside data file at 312 | 
| mysql.user | repair | info  | Found block that points outside data file at 316 | 
| mysql.user | repair | info  | Found block that points outside data file at 340 | 
| mysql.user | repair | info  | Found block that points outside data file at 392 | 
| mysql.user | repair | info  | Found block that points outside data file at 396 | 
| mysql.user | repair | info  | Found block that points outside data file at 400 | 
| mysql.user | repair | info  | Found block that points outside data file at 404 | 
| mysql.user | repair | info  | Found block that points outside data file at 408 | 
| mysql.user | repair | info  | Found block that points outside data file at 412 | 
| mysql.user | repair | info  | Found block that points outside data file at 416 | 
| mysql.user | repair | info  | Found block that points outside data file at 420 | 
| mysql.user | repair | info  | Found block that points outside data file at 448 | 
| mysql.user | repair | info  | Found block that points outside data file at 452 | 
| mysql.user | repair | info  | Found block that points outside data file at 456 | 
| mysql.user | repair | info  | Found block that points outside data file at 460 | 
| mysql.user | repair | info  | Found block that points outside data file at 464 | 
| mysql.user | repair | info  | Found block that points outside data file at 468 | 
| mysql.user | repair | info  | Found block that points outside data file at 472 | 
| mysql.user | repair | info  | Found block that points outside data file at 500 | 
| mysql.user | repair | info  | Found block that points outside data file at 504 | 
| mysql.user | repair | info  | Found block that points outside data file at 508 | 
| mysql.user | repair | info  | Found block that points outside data file at 512 | 
| mysql.user | repair | info  | Found block that points outside data file at 516 | 
| mysql.user | repair | info  | Found block that points outside data file at 520 | 
| mysql.user | repair | info  | Found block that points outside data file at 524 | 
| mysql.user | repair | info  | Found block that points outside data file at 528 | 
| mysql.user | repair | info  | Found block that points outside data file at 556 | 
| mysql.user | repair | info  | Found block that points outside data file at 560 | 
| mysql.user | repair | info  | Found block that points outside data file at 564 | 
| mysql.user | repair | info  | Found block that points outside data file at 568 | 
| mysql.user | repair | info  | Found block that points outside data file at 572 | 
| mysql.user | repair | info  | Found block that points outside data file at 576 | 
| mysql.user | repair | info  | Found block that points outside data file at 580 | 
| mysql.user | repair | info  | Found block that points outside data file at 604 | 
| mysql.user | repair | info  | Found block that points outside data file at 608 | 
| mysql.user | repair | info  | Found block that points outside data file at 612 | 
| mysql.user | repair | info  | Found block that points outside data file at 616 | 
| mysql.user | repair | info  | Found block that points outside data file at 620 | 
| mysql.user | repair | info  | Found block that points outside data file at 624 | 
| mysql.user | repair | info  | Found block that points outside data file at 628 | 
| mysql.user | repair | info  | Found block that points outside data file at 632 | 
| mysql.user | repair | status | OK            | 
+------------+--------+----------+--------------------------------------------------+ 
49 rows in set (0.03 sec) 


mysql> select * from mysql.user; 
Empty set (0.01 sec) 

答えて

0

問題が解決しました。各MYISAMテーブルには、データディレクトリに3つのファイルがあります。

ユーザテーブル、

  1. user.frmについては

    - 私は(user.frmファイルを上書き逃したデータ

- 表のメタデータ

  • user.MYI - インデックス
  • user.MYDドッカーのrwの変更を取るため)。したがって、user.frmはmysql-5.6から、user.MYI、user.MYDはmysql-5.5からです。 password_expiredカラムに5.6のmysqlユーザテーブルが追加されました。 user.frmやその他のファイルとの互換性がないため、回復不能でした。私はmysql - 5.5とその作業からuser.frmをコピーしようとしました。

  • 関連する問題