I was surprised to discover the MySQL Workbench couldn’t add a user while working with MySQL Workbench 5.2.31 (ce) and MySQL 5.5.9. Naturally, I was tempted to simply drop to the command line and add it manually, but I thought about my students who struggle at the command line. Poking around, I discovered a Severity 1 bug for this issue and a way to fix most of it before the next release.
The problem returns a dialog box that says very little, as you can see:
More detail is posted in the status bar, where it provides the following error message. Unfortunately, there wasn’t much luck Googling it. Hopefully, this post will fix that.
Error in securityManager module: error calling WbAdmin.openSecurityManager: see output for details
Bug 59000 contains a copy of the Python code you’ll need to manually patch into your MySQL Workbench installation. That’s the corrected
wb_admin_security_be.py module that fixes most of the problem. The reason why I qualify it as most of the problem is because you can still raise an exception. The exception occurs when the the new user is granted any role.
You can avoid the error by only granting privileges. It appears that you can also ignore the error because it doesn’t mean that it failed. Just navigate away from the Accounts tab and back to see that the change was made. Also, it only happens when you’re creating a user not updating a user.
You can ignore the discussion over the
%MYSQL_WORKBENCH_INSTALLDIR% environment parameter. It’s simply never set when you install with the
mysql-5.5.8-winx64.msi file. You would have to set the environment variable manually in Windows. To save time, I’ve simply listed where the product installs on the 32-bit and 64-bit releases of Windows.
Here’s how you can manually patch it on Windows 7 (64-bit), and if you’re interested in learning a bit about Python, try The Quick Python Book, 2nd Edition:
- Download the file.
- Open Windows Explorer and navigate to
C:\Program Files (x86)\MySQL\MySQL Workbench 5.2 CE\modulesdirectory; and delete both the
wb_admin_security_be.pycfiles. You have to remove both because removing only the source Python (
.py) file won’t cause the interpreter to create a new byte code version (
*.pyc). You must remove the byte code version to force the interpreted to read the source file. If you’re on a 32-bit version of Windows you’ll find it in this
C:\Program Files\MySQL\MySQL Workbench 5.2 CE\modulesdirectory.
- Copy the downloaded
wb_admin_security_be.pyfile into the
C:\Program Files (x86)\MySQL\MySQL Workbench 5.2 CE\modulesdirectory.
- Launch MySQL Workbench from the Start menu and it will create the
wb_admin_security_be.pycfile from the source file you copied into the directory for step #3.
That should do it. As always, I hope this helps folk save time too.