HeidiSQL 9.0 released

ansgar's profile image ansgar posted 9 years ago in Anouncements Permalink
I'm proud to announce a new release with quite a few new things and tons of bugfixes.
Most important thing this time is the experimental support for connecting to PostgreSQL servers.

Get it from the download page.



Also noticable:
* Completely rewritten interface to plink.exe for SSH tunnel connections. Now supports dialogs which ask for trusting unknown host keys.
* Bind parameters in SQL queries. When your SQL query contains one or more ":myparam:" occurences, the right hand box offers to set a value for these parameters. Adrien, a former contributor from France, has developed this new feature.
* The "Find text on server" dialog now also works on MSSQL and PostgreSQL tables.
* The table editor now supports partitions, in a new read-only tab. That way, partitions a) can be seen by the user and b) get included in the CREATE TABLE code tab.
* Filter in data grid column selection
* Disable SQL hints on result tabs: Some users complained about the potentially huge tooltips on the tabs of a SQL query result. These quickly hide important parts of the result rows. If you're one of those annoyed users, you can now disable these tooltips with a new checkbox option in Tools > Preferences > Data appearance > "Popup SQL text over result tabs".
* Database selector: In a session configuration, you can restrict the databases to display. That was just a normal drop down menu previously. Now, you can check databases and uncheck them in a pulldown menu. Also, the connection used to get the names of all databases is recycled for each click, so only the first pull down click establishes a new (potentially slow) connection.
* The installer for HeidiSQL now uses localized messages in 23 different languages. Language is auto-selected by checking your Windows locale.
* The user manager now supports granting privileges for VIEWs. This was not allowed until now, because I misunderstood the MySQL documentation here. See the forum thread with alfiqmiq for details.
* Ask user to confirm unsafe UPDATEs/DELETEs in query tab before executing.
* Switch character set from utf8 to the fixed one called utf8mb4 in MySQL.
* Turn readme.txt into a more comprehensive online help document

... and even more:
* Support semicolons in MS SQL passwords
* Clone hostname for a cloned user
* Ask to close HeidiSQL processes while installing
* Check if all indexes have at least one column when creating or altering table to prevent creation of empty index
* Support primary keys with KEY_BLOCK_SIZE=xyz
* Allow disabling the creation of start menu icons in the installer
* Auto-uppercase data types of routine parameters
* Display filename with path in query tab hint
* Support changing active result tab per shortcut, Alt+Left and Alt+Right.
* Disable UNSIGNED and ZEROFILL checkboxes for BIT type columns
* Fix missing table alias on MSSQL2K
* Support query timeout on MSSQL and PostgreSQL. Make customizable per up/down scroller in "Advanced" tab of session manager.
* Add "Save as textfile" action, and include that in routine editor > "CREATE code" tab > context menu.
* Activate "Select all" action when it appears in a valid popup menu.
* Increase maximum port number from 2^16-1 (65535) to 2^31-1 (2147483647).
* Add a 32bit-only installer, for users who want the 32bit version on a 64bit Windows.
* Support searching for unformatted integers and floats in filter panel.
* Fix truncation of MSSQL routine body to 4000 characters, as a limitation of nvarchar(4000).
* Fix SynEdit's double minus comment bug
* Use prettier "Consolas" as default font for TSynMemo editors, when available, as an alternative to the old-stylish "Courier New".
* Fix SQL error when using "Quick filter" > "More values" in MSSQL and PostgreSQL.
* MSSQL: Return date/time string value as expected by server.
* Enable foreign keys editor on NDB cluster >= 7.3.x.
* Add support for geometry data types in PostgreSQL.
* Support renaming tables and views on PostgreSQL.
* Fix EStackOverflow in TSynHashEntry.AddEntry when adding too many table names.
* Include SQL_TABLE_VALUED_FUNCTION's in MSSQL object browsing
* Support DEFAULT clause in PostgreSQL table structure
* Keep compatibility with older MySQL servers when getting a trigger's CREATE CODE
* MSSQL: Return float values as expected by server.
* Introduce handling of stored functions in PostgreSQL: Displays functions in database browser, enables function editor and "run routine" button with argument handling.
* Add support for MSSQL datetime2 column type.
* Allow applying CURRENT_TIMESTAMP to DATETIME columns.
* Add "check/uncheck all" button to column selector in textfile import dialog.
* Add 64px, 128px and 256px versions to main icon.

... and for the nerds: the entire changelog
[expired user #8482]'s profile image [expired user #8482] posted 9 years ago Permalink
I have a littel problem with version 9. I couldn't connect to mysql server because I take this error message: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
[expired user #8483]'s profile image [expired user #8483] posted 9 years ago Permalink
I have the same problem. Worked fine before upgrade.
[expired user #8487]'s profile image [expired user #8487] posted 9 years ago Permalink
I dont connect to MySql Server because error: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled. HeidiSQL version: 9.0.0.4865 (64 Bit)
ansgar's profile image ansgar posted 9 years ago Permalink
This is most obviously due to the utf8mb4 charset which HeidiSQL uses from now on, and the newer libmysql which is shipped with the 9.0 release.

You can download an older libmysql in order to fix that:
32bit: https://heidisql.googlecode.com/svn-history/r4625/trunk/out/libmysql32.dll
64bit: https://heidisql.googlecode.com/svn-history/r4625/trunk/out/libmysql64.dll

You will need to overwrite the libmysql.dll in your HeidiSQL directory with one of the above files.
clmcavaney's profile image clmcavaney posted 9 years ago Permalink
Similar issues for me too.

Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled).
Version 9.0.0.4865 (64 Bit)
[expired user #8482]'s profile image [expired user #8482] posted 9 years ago Permalink
Thank you! Working now!
clmcavaney's profile image clmcavaney posted 9 years ago Permalink
Yep - that works for me too. How will this be fixed in future releases?
ansgar's profile image ansgar posted 9 years ago Permalink
I'm afraid that cannot be fixed in the official releases, as I need to update libmysql from time to time, to get a new feature or to fix other things. In the case of v9.0, I did that update for getting support for the newer utf8mb4 charset.

Do you still work on a 3.x server ? The statistics on the heidisql.com start page show that's a really rare case.
[expired user #8490]'s profile image [expired user #8490] posted 9 years ago Permalink
I have the same issue on a 5.0.5a-server with an old db. Your libmysql.dll workaround fixes this problem.

Perhaps it would be possible to integrate an additional option in the future releases to use the older authentication protocol, according to the login-option "--secure-auth" (http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_secure-auth) and other tools (http://www.joellipman.com/images/screenshots/mysql/manageserverconnections_uselegacyauth_2.png).

Thank you for your support and best regards.

ansgar's profile image ansgar posted 9 years ago Permalink
Ah, the problem is the new default value for the mysql option "secure_auth". The default is "true" in newer libmysql's. So I guess I just need to activate it again with such a line of code:
mysql_options(FHandle, MYSQL_SECURE_AUTH, False);

Will check that.
UltraDev's profile image UltraDev posted 9 years ago Permalink
Thank you!
[expired user #8497]'s profile image [expired user #8497] posted 9 years ago Permalink
Thanks so much the Postgres integration works splendid this tool is better than pgadmin3
[expired user #8495]'s profile image [expired user #8495] posted 9 years ago Permalink
The below resolved my problem .. thank you!

This is most obviously due to the utf8mb4 charset which HeidiSQL uses from now on, and the newer libmysql which is shipped with the 9.0 release.

You can download an older libmysql in order to fix that:
32bit: https://heidisql.googlecode.com/svn-history/r4625/trunk/out/libmysql32.dll
64bit: https://heidisql.googlecode.com/svn-history/r4625/trunk/out/libmysql64.dll

You will need to overwrite the libmysql.dll in your HeidiSQL directory with one of the above files.

ansgar's profile image ansgar posted 9 years ago Permalink
Hm. Seems I'm having no luck with either of these lines:
SecureAuth := False;
mysql_options(FHandle, MYSQL_SECURE_AUTH, 0);
mysql_options(FHandle, MYSQL_SECURE_AUTH, 1);
mysql_options(FHandle, MYSQL_SECURE_AUTH, PAnsiChar(SecureAuth));
mysql_options(FHandle, MYSQL_SECURE_AUTH, PAnsiChar(@SecureAuth));
mysql_options(FHandle, MYSQL_SECURE_AUTH, PAnsiChar('0'));

None of these seem to disable the secure_auth client option effectively.

Btw:
MYSQL_SECURE_AUTH = 18
Code modification/commit from ansgar.becker, 9 years ago, revision 9.0.0.4866
Downgrade libmysql to the one from MySQL 5.6.6, in order to have the secure_auth option disabled by default. I can't get MYSQL_SECURE_AUTH disabled for some reason. See http://www.heidisql.com/forum.php?t=16858#p16893 . However, we have still utf8mb4 support (since 5.5.3)
ansgar's profile image ansgar posted 9 years ago Permalink
So, I have just downgraded the shipped libmysql.dll to the one from MySQL 5.6.6, which was the last version to have the secure_auth option disabled by default. See the v9.1 release.

Please login to leave a reply, or register at first.