2016-11-23 25 views
2

サーバのスペースが足りなくなったようです。 Docker MySQLのファイルが破損しました。MySQL Dockerコンテナを再起動できません。「mysql.pluginテーブルを開くことができません。」および「テーブル」mysql.userは存在しません。 '

mysql:5.6コンテナを再起動しようとすると、エラー[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't existが発生します。

破損しているファイルを見つけられず、削除またはアクセス権の修正ができません。ここで

は、完全なエラー出力です:

$ docker start -a mysql_1 
2016-11-23 10:22:17 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 
2016-11-23 10:22:17 0 [Note] mysqld (mysqld 5.6.34) starting as process 1 ... 
2016-11-23 10:22:17 1 [Note] Plugin 'FEDERATED' is disabled. 
mysqld: Table 'mysql.plugin' doesn't exist 
2016-11-23 10:22:17 1 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 
2016-11-23 10:22:17 1 [Note] InnoDB: Using atomics to ref count buffer pool pages 
2016-11-23 10:22:17 1 [Note] InnoDB: The InnoDB memory heap is disabled 
2016-11-23 10:22:17 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 
2016-11-23 10:22:17 1 [Note] InnoDB: Memory barrier is not used 
2016-11-23 10:22:17 1 [Note] InnoDB: Compressed tables use zlib 1.2.8 
2016-11-23 10:22:17 1 [Note] InnoDB: Using Linux native AIO 
2016-11-23 10:22:17 1 [Note] InnoDB: Using CPU crc32 instructions 
2016-11-23 10:22:17 1 [Note] InnoDB: Initializing buffer pool, size = 128.0M 
2016-11-23 10:22:17 1 [Note] InnoDB: Completed initialization of buffer pool 
2016-11-23 10:22:17 1 [Note] InnoDB: Highest supported file format is Barracuda. 
2016-11-23 10:22:17 1 [Note] InnoDB: Log scan progressed past the checkpoint lsn 49463 
2016-11-23 10:22:17 1 [Note] InnoDB: Database was not shutdown normally! 
2016-11-23 10:22:17 1 [Note] InnoDB: Starting crash recovery. 
2016-11-23 10:22:17 1 [Note] InnoDB: Reading tablespace information from the .ibd files... 
2016-11-23 10:22:17 1 [Note] InnoDB: Restoring possible half-written data pages 
2016-11-23 10:22:17 1 [Note] InnoDB: from the doublewrite buffer... 
InnoDB: Doing recovery: scanned up to log sequence number 1600607 
2016-11-23 10:22:17 1 [Note] InnoDB: Starting an apply batch of log records to the database... 
InnoDB: Progress in percent: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed 
2016-11-23 10:22:18 1 [Note] InnoDB: 128 rollback segment(s) are active. 
2016-11-23 10:22:18 1 [Note] InnoDB: Waiting for purge to start 
2016-11-23 10:22:18 1 [Note] InnoDB: 5.6.34 started; log sequence number 1600607 
2016-11-23 10:22:18 1 [Note] Server hostname (bind-address): '*'; port: 3306 
2016-11-23 10:22:18 1 [Note] IPv6 is available. 
2016-11-23 10:22:18 1 [Note] - '::' resolves to '::'; 
2016-11-23 10:22:18 1 [Note] Server socket created on IP: '::'. 
2016-11-23 10:22:18 1 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist 

答えて

1

のでdocker-compose rm mysqlは、切断された接続を削除し、再度コンテナを起動するために必要でした。

+0

私は同じ問題を抱えていますが、私の場合、それは '/ var/lib/mysql'をコンテナの間に残るボリュームとして使用しているためです。この場合、 '/ var/lib/mysql'のデータがまだそこに残っているので、コンテナを削除しても助けにはなりません。コンテナを取り外すことで、問題を回避しています。これがどのように解決されるかもしれない他のアイデア? – mkasberg

+0

ええと、音量を変えてみることはできますか? – Georgij

+0

データボリュームのバックアップと復元が間違っていて、 '/ var/ilb/mysql'のデータの一部が壊れていました。ボリュームを正しくバックアップ/復元すると、問題はありません。 – mkasberg

関連する問題