Plan to remove unused command line programs (10 out of 43)

Have you ever noticed the vast number of command line programs that ship with MySQL? Here is an ls from MySQL 5.6.16’s bin directory:

morgo@Rbook:~/Documents/mysql-installs/5.6.16/bin$ ls
innochecksum
msql2mysql
my_print_defaults
myisam_ftdump
myisamchk
myisamlog
myisampack
mysql
mysql_client_test
mysql_client_test_embedded
mysql_config
mysql_config_editor
mysql_convert_table_format
mysql_embedded
mysql_find_rows
mysql_fix_extensions
mysql_plugin
mysql_secure_installation
mysql_setpermission
mysql_tzinfo_to_sql
mysql_upgrade
mysql_waitpid
mysql_zap
mysqlaccess
mysqlaccess.conf
mysqladmin
mysqlbinlog
mysqlbug
mysqlcheck
mysqld
mysqld-debug
mysqld_multi
mysqld_safe
mysqldump
mysqldumpslow
mysqlhotcopy
mysqlimport
mysqlshow
mysqlslap
mysqltest
mysqltest_embedded
perror
replace
resolve_stack_dump
resolveip

For MySQL 5.7 we are planning to cleanup and remove programs that appear to have no current use-case. This helps us to improve supportability of MySQL as users will not be able to accidentally find themselves using a utility that has not historically been well maintained, or has outlived its original purpose. In the case of shell scripts, removal also helps us offer a better cross platform experience.

The list scheduled for removal

(Hat tip to Todd Farmer, who first wrote about removing these programs last year.)

Update March 12th: resolve_stack_dump has been removed from the list.

Feedback Welcome

Are you currently using one of these utilities scheduled for removal?
Did we get a decision wrong?
We value your feedback. Please leave a comment, or get in touch!

Published by

morgo

I joined MySQL AB in 2006, left, and am now back at Oracle working on the MySQL team. I’ve also worked at Percona and InPowered.

  • Marcos Albe

    Hey Morgan! I wouldn’t remove resolve_stack_dump unless you give me your word all stacks will come out resolved in the error log 🙂 Maybe I’m missing replacement (addr2line?)? In any case: we use this a whole lot for support duties, and can’t think of any risks of having it around (other scripts that tinker with your data could/should be considered more dangerous).

    See you at Percona Live in April!!

  • fcassia

    ===
    ***EDIT: I originally misread this as you wanting to remove all of the command line utils, including mysqldump. Now I realized it’s a small subset of 10 utils from the very large list of command line utils you included at the top of your post. However, my point still remains… and I humbly suggest you change the post title to read
    “do you use these 10 (out of 43) command line utils?, because we’re thinking of removing those if nobody uses them” ***
    ===
    (original reply below)

    how do you know these aren’t used out there in the wild? do you think a post is a blog that is not even the project’s official one is a statistically representative feedback loop to make a decision?. This is what irks me about software design these days and what Google does all the time: remove useful features for no reason whatsoever and without previous warning. Just ask J*son Cornwell after the ugly new “GMail compose” and the tons of hate he got on social networks.

    Better than SUDDEN REMOVAL, that I’m sure will break an AWFUL LOT of user-developed scripts, why not host the source of those utils on a separate project at Sourceforge (or Kenai, or Google Code, or github, make your pick) and label those “community maintained code”, you could repackage them in a separate RPM and instead of not shipping them, keep mentioning them on the documentation but state that those are now third party, community maintained utils.

    The feedback will be less dramatic than if you give the FUDmasters at the other camp another reason to yell “O**cle is Evil, they’re killing many of our favorite and very useful command line utils, yet another reason to move to M****DB!”. If you do this silly move, just wait what might happen with the echo chamber of copy-paste journalism……

    Sometimes I think MySQL devs like to shoot themselves in the foot and give ammunition to the Oracle haters…

    • I’ve updated the title per your suggestion. This really is a situation where to the best of our knowledge nobody is using these utilities – otherwise we would deprecate before removal.

      I understand your complaint – and I will pass it back to the team.

  • Kristian Köhntopp

    mysqlbug contains information that documents the complete configure options used to build this instance of the server.

    While the script itself is useless, this info is not and I am using this a lot when looking into random installed mysql installations of other people, and also use it to recreate their installation with compatible newer versions. Unlike spec files and other stuff, it is guaranteed to be there, and valid.

  • I just found this post; I use mysql_setpermission every time I set up a mysql database. What should I be using in future? I hope the answer isn’t a long list of create and grant statements…