Heidisql: Empty user list and crash on add user on MariaDB 10.4

Created on 4 Apr 2019  路  9Comments  路  Source: HeidiSQL/HeidiSQL

Steps to reproduce this issue

  1. Install MariaDB 10.4 on Linux (I used Ubuntu Bionic)
  2. Set a password for MariaDB user root and allow remote connection.
  3. Connect using HeidiSQL.
  4. Open the User Manager. Note error 'Column "user" not available.' and empty user list.
  5. Click add user. Observe crash.

Current behavior

Error opening the user list in the User Manager. Crash when trying to perform changes.

Expected behavior

No error and and crashes when using the User Manager.

Environment

heidi bugreport.txt

  • HeidiSQL version:
    10.1.0.5464
  • Database system and version:
    MariaDB 10.4.3
  • Operating system:
    MariaDB running on Ubuntu Bionic, HeidiSQL on Windows 10.
bug nettype-mysql

All 9 comments

I suppose that "Column "user" not available." error is the crux.

HeidiSQL fires these queries when opening the user manager:

SHOW COLUMNS FROM `mysql`.`user`;
SELECT `user`, `host`, IF(LENGTH(password)>0, password, authentication_string) AS `password` FROM `mysql`.`user`;

Could you please verify if your mysql.user table has a column named "User" (or "user")?
The error looks as if it does not.

MariaDB [(none)]> SHOW COLUMNS FROM `mysql`.`user`;
+------------------------+---------------------+------+-----+----------+-------+
| Field                  | Type                | Null | Key | Default  | Extra |
+------------------------+---------------------+------+-----+----------+-------+
| Host                   | char(60)            | NO   |     |          |       |
| User                   | char(80)            | NO   |     |          |       |
| Password               | longtext            | YES  |     | NULL     |       |
| Select_priv            | varchar(1)          | YES  |     | NULL     |       |
| Insert_priv            | varchar(1)          | YES  |     | NULL     |       |
| Update_priv            | varchar(1)          | YES  |     | NULL     |       |
| Delete_priv            | varchar(1)          | YES  |     | NULL     |       |
| Create_priv            | varchar(1)          | YES  |     | NULL     |       |
| Drop_priv              | varchar(1)          | YES  |     | NULL     |       |
| Reload_priv            | varchar(1)          | YES  |     | NULL     |       |
| Shutdown_priv          | varchar(1)          | YES  |     | NULL     |       |
| Process_priv           | varchar(1)          | YES  |     | NULL     |       |
| File_priv              | varchar(1)          | YES  |     | NULL     |       |
| Grant_priv             | varchar(1)          | YES  |     | NULL     |       |
| References_priv        | varchar(1)          | YES  |     | NULL     |       |
| Index_priv             | varchar(1)          | YES  |     | NULL     |       |
| Alter_priv             | varchar(1)          | YES  |     | NULL     |       |
| Show_db_priv           | varchar(1)          | YES  |     | NULL     |       |
| Super_priv             | varchar(1)          | YES  |     | NULL     |       |
| Create_tmp_table_priv  | varchar(1)          | YES  |     | NULL     |       |
| Lock_tables_priv       | varchar(1)          | YES  |     | NULL     |       |
| Execute_priv           | varchar(1)          | YES  |     | NULL     |       |
| Repl_slave_priv        | varchar(1)          | YES  |     | NULL     |       |
| Repl_client_priv       | varchar(1)          | YES  |     | NULL     |       |
| Create_view_priv       | varchar(1)          | YES  |     | NULL     |       |
| Show_view_priv         | varchar(1)          | YES  |     | NULL     |       |
| Create_routine_priv    | varchar(1)          | YES  |     | NULL     |       |
| Alter_routine_priv     | varchar(1)          | YES  |     | NULL     |       |
| Create_user_priv       | varchar(1)          | YES  |     | NULL     |       |
| Event_priv             | varchar(1)          | YES  |     | NULL     |       |
| Trigger_priv           | varchar(1)          | YES  |     | NULL     |       |
| Create_tablespace_priv | varchar(1)          | YES  |     | NULL     |       |
| Delete_history_priv    | varchar(1)          | YES  |     | NULL     |       |
| ssl_type               | varchar(9)          | YES  |     | NULL     |       |
| ssl_cipher             | longtext            | NO   |     |          |       |
| x509_issuer            | longtext            | NO   |     |          |       |
| x509_subject           | longtext            | NO   |     |          |       |
| max_questions          | bigint(20) unsigned | NO   |     | 0        |       |
| max_updates            | bigint(20) unsigned | NO   |     | 0        |       |
| max_connections        | bigint(20) unsigned | NO   |     | 0        |       |
| max_user_connections   | bigint(21)          | NO   |     | 0        |       |
| plugin                 | longtext            | NO   |     |          |       |
| authentication_string  | longtext            | NO   |     |          |       |
| password_expired       | varchar(1)          | NO   |     |          |       |
| is_role                | varchar(1)          | YES  |     | NULL     |       |
| default_role           | longtext            | NO   |     |          |       |
| max_statement_time     | decimal(12,6)       | NO   |     | 0.000000 |       |
+------------------------+---------------------+------+-----+----------+-------+
47 rows in set (0.052 sec)
SELECT `user`, `host`, IF(LENGTH(password)>0, password, authentication_string) AS `password` FROM `mysql`.`user`;
+----------+-----------+-------------------------------------------+
| User     | Host      | password                                  |
+----------+-----------+-------------------------------------------+
| root     | %         | *DDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| yyyyy    | localhost | *4BXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
+----------+-----------+-------------------------------------------+
2 rows in set (0.001 sec)

I suppose MariaDB 10.4 returns column names with their case as defined in the table rather than as the user selects it. E.g. in 10.3 SELECT user FROM mysql.user returned a column "user", where 10.4 returns "User" instead. HeidiSQL expected the same case as written in the query up to now. I changed this to case insensitive so that should work again in the next build. Please test.

Yes, problem solved. Thank you.

Also had same issue, found it fixed in the nightly build. New colour interface also.. someone likes pink.

Just installed MDB v10.4.6, Heidi v9.5.0.5196 from the .msi and I get the same "column user not available" error, note that mysql.user contains a 'user' column, and that adding a user from the query tab succeeds.

HeidiSQL 9.5 is outdated. Please use v10.3.

I should drop them a note that they could update their HeidiSQL installation.

I have the same error, running HeidiSQL 10.1, I installed MariaDB 10.4 on windows, made lower_case_table_names=1 and still getting the same error.

Updated HeidiSQL to v11, now works fine

Was this page helpful?
0 / 5 - 0 ratings

Related issues

catamphetamine picture catamphetamine  路  3Comments

chrysler5798 picture chrysler5798  路  5Comments

BraveOtter picture BraveOtter  路  4Comments

cammudito picture cammudito  路  3Comments

naoma123 picture naoma123  路  3Comments