ERROR 1054 (42S22): Unknown column 'plugin' in 'mysql.user'

Your problem has to do with mysql.user and the way you upgraded to MySQL 5.6

If you look my answer to Cannot GRANT privileges as root, I show you the description of mysql.user from MySQL 4.1 to MySQL 5.6.

The column plugin is column #41 in mysql.user in MySQL 5.5/5.6

mysql> SELECT column_name,ordinal_position FROM information_schema.columns
    -> WHERE table_schema='mysql' and table_name='user' and column_name='plugin';
+-------------+------------------+
| column_name | ordinal_position |
+-------------+------------------+
| plugin      |               41 |
+-------------+------------------+
1 row in set (0.04 sec)

mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.6.24    |
+-----------+
1 row in set (0.02 sec)

mysql>

That column does not appear in MySQL 5.1, 5.0 or 4.x. What this tells me is that somehow MySQL was upgraded to 5.6 but still has the mysql.user from 5.1 or older.

If you run SELECT COUNT(1) column_count FROM information_schema.columns WHERE table_schema='mysql' AND table_name='user'; and you get 39, I have just the fix for you.

See my post MySQL service stops after trying to grant privileges to a user on how manually fix mysql.user from 5.1 straight to to 5.6.


I had similar error during CREATE USER query.

I did following solution to rectify the user table.

ALTER TABLE `user` ADD `Create_tablespace_priv` ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER `Trigger_priv`; 
ALTER TABLE `user` ADD `plugin` CHAR(64) NULL AFTER `max_user_connections`; 
ALTER TABLE `user` ADD `authentication_string` TEXT NULL DEFAULT NULL AFTER `plugin`; 
ALTER TABLE `user` ADD `password_expired` ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER `authentication_string`; 

Now CREATE USER query works fine.!!

Rectification is achieved from the reference of the answer to Cannot GRANT privileges as root. Thank you RolandoMySQLDBA.!

Following helped to create above SQL:

+------------------------+------------------------+-----------------------------------+------+-----+---------+
| Field (MySQL 5.1)      | Field (MySQL 5.6)      | Type                              | Null | Key | Default |
+------------------------+------------------------+-----------------------------------+------+-----+---------+
| Host                   | Host                   | char(60)                          | NO   | PRI |         |
| User                   | User                   | char(16)                          | NO   | PRI |         |
| Password               | Password               | char(41)                          | NO   |     |         |
| Select_priv            | Select_priv            | enum('N','Y')                     | NO   |     | N       |
| Insert_priv            | Insert_priv            | enum('N','Y')                     | NO   |     | N       |
| Update_priv            | Update_priv            | enum('N','Y')                     | NO   |     | N       |
| Delete_priv            | Delete_priv            | enum('N','Y')                     | NO   |     | N       |
| Create_priv            | Create_priv            | enum('N','Y')                     | NO   |     | N       |
| Drop_priv              | Drop_priv              | enum('N','Y')                     | NO   |     | N       |
| Reload_priv            | Reload_priv            | enum('N','Y')                     | NO   |     | N       |
| Shutdown_priv          | Shutdown_priv          | enum('N','Y')                     | NO   |     | N       |
| Process_priv           | Process_priv           | enum('N','Y')                     | NO   |     | N       |
| File_priv              | File_priv              | enum('N','Y')                     | NO   |     | N       |
| Grant_priv             | Grant_priv             | enum('N','Y')                     | NO   |     | N       |
| References_priv        | References_priv        | enum('N','Y')                     | NO   |     | N       |
| Index_priv             | Index_priv             | enum('N','Y')                     | NO   |     | N       |
| Alter_priv             | Alter_priv             | enum('N','Y')                     | NO   |     | N       |
| Show_db_priv           | Show_db_priv           | enum('N','Y')                     | NO   |     | N       |
| Super_priv             | Super_priv             | enum('N','Y')                     | NO   |     | N       |
| Create_tmp_table_priv  | Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N       |
| Lock_tables_priv       | Lock_tables_priv       | enum('N','Y')                     | NO   |     | N       |
| Execute_priv           | Execute_priv           | enum('N','Y')                     | NO   |     | N       |
| Repl_slave_priv        | Repl_slave_priv        | enum('N','Y')                     | NO   |     | N       |
| Repl_client_priv       | Repl_client_priv       | enum('N','Y')                     | NO   |     | N       |
| Create_view_priv       | Create_view_priv       | enum('N','Y')                     | NO   |     | N       |
| Show_view_priv         | Show_view_priv         | enum('N','Y')                     | NO   |     | N       |
| Create_routine_priv    | Create_routine_priv    | enum('N','Y')                     | NO   |     | N       |
| Alter_routine_priv     | Alter_routine_priv     | enum('N','Y')                     | NO   |     | N       |
| Create_user_priv       | Create_user_priv       | enum('N','Y')                     | NO   |     | N       |
| Event_priv             | Event_priv             | enum('N','Y')                     | NO   |     | N       |
| Trigger_priv           | Trigger_priv           | enum('N','Y')                     | NO   |     | N       |
|                        | Create_tablespace_priv | enum('N','Y')                     | NO   |     | N       |
| ssl_type               | ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |         |
| ssl_cipher             | ssl_cipher             | blob                              | NO   |     | NULL    |
| x509_issuer            | x509_issuer            | blob                              | NO   |     | NULL    |
| x509_subject           | x509_subject           | blob                              | NO   |     | NULL    |
| max_questions          | max_questions          | int(11) unsigned                  | NO   |     | 0       |
| max_updates            | max_updates            | int(11) unsigned                  | NO   |     | 0       |
| max_connections        | max_connections        | int(11) unsigned                  | NO   |     | 0       |
| max_user_connections   | max_user_connections   | int(11) unsigned                  | NO   |     | 0       |
|                        | plugin                 | char(64)                          | YES  |     |         |
|                        | authentication_string  | text                              | YES  |     | NULL    |
|                        | password_expired       | enum('N','Y')                     | NO   |     | N       |
+------------------------+------------------------+-----------------------------------+------+-----+---------+