Cannot restart the MySQL Docker container, gives errors like `Can't open the mysql.plugin table` and `Table 'mysql.user' doesn't exist`

After running out of space on the server, it seems that the file of Docker MySQL got corrupted.

When trying to relaunch mysql:5.6 container I get the error [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist.

  • Installing numpy on Docker Alpine
  • Setup global environnement variables for all Docker containers
  • Deploying project in Docker with Angular 4, Django and postgresql
  • Why isn't my port exposed? netstat output included
  • How to add tags to docker images made using autobuild
  • How to copy files from Windows host to Docker container
  • I cannot locate the file that is corrupted, and possibly delete it or fix the permissions.

    Here is a full error output:

    $ 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
    

  • How to “add” the proxy section to configure a registry as a pull-through cache?
  • How can I prevent url re-writing in EventStore using Docker?
  • Why does Docker say it can't execute 'bash"?
  • copy file from container to the host before the container dies
  • How to connect to mysql running in container from host machine
  • Setting the hostname for a container running in Kubernetes
  • One Solution collect form web for “Cannot restart the MySQL Docker container, gives errors like `Can't open the mysql.plugin table` and `Table 'mysql.user' doesn't exist`”

    So docker-compose rm mysql was needed to remove the broken connection, and then launch again the container.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.