We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog
  • Home
  • Forums

correct table collation for all tables

Development and Programming

chris thacker's avatar
chris thacker
119 posts
10 years ago
chris thacker's avatar chris thacker

I’m having problems installing the Super Search plugin. It’s giving an error about installing the Levenshtein function. The developer doesn’t seem willing to go beyond simple troubleshooting to resolve it. (confirming the db user has alter and drop privs, which it does)

Looking at my database I see that 7 tables are using latin1_swedish_ci collation. Is this correct? The rest are set for utf8_general_ci.

The 7 tables are: exp_accessories exp_channel_entries_autosave exp_cp_search_index exp_fieldtypes exp_layout_publish exp_snippets exp_upload_no_access

I’m running EE 2.10.3 on IIS8. (Win 2012r2)

A Database Error Occurred
Error Number: 1370

alter routine command denied to user 'abc_ee_user'@'localhost' for routine 'abc_ee_01.LEVENSHTEIN'

DROP FUNCTION IF EXISTS LEVENSHTEIN;

Filename: D:\web\abc\system\codeigniter\system\database\DB_driver.php

Line Number: 382

As an aside, I temporarily gave the db user ALL privileges and tried the plugin install and it worked. Any idea why the db user would need more than the EE default to install itself?

[select, insert, update, delete, create, alter, index, drop]

I’m not sure which added privilege it required but I’d guess either ‘create routine’ or ‘alter routine’.

       
chris thacker's avatar
chris thacker
119 posts
about 10 years ago
chris thacker's avatar chris thacker

Can someone at Ellislabs reply please?

       
Seth Barber's avatar
Seth Barber
172 posts
about 10 years ago
Seth Barber's avatar Seth Barber

Hi Chris,

The default collation for 2.x is utf8_general_ci (and the default charset is utf8). You can also use utf8_unicode_ci as the collation for your tables. We’ve found that does a better job sorting non-ascii characters, and have moved to it in 3.x.

As to the permissions, the MySQL docs indicate you may have needed a specific “ALTER ROUTINE” permission.

       
chris thacker's avatar
chris thacker
119 posts
about 10 years ago
chris thacker's avatar chris thacker

Any idea how some of the tables are set for latin1_swedish_ci collation? Have you seen this before?

       
Seth Barber's avatar
Seth Barber
172 posts
about 10 years ago
Seth Barber's avatar Seth Barber

ExpressionEngine 1 used latin1 for its collation, so if you upgraded from 1.x to 2.x it’s possible that a few of the tables got skipped when the collation was changed in 2.0.0. Additionally, we have a check in the software for UTF8 compatibility, and if that is FALSE then we use the the MySQL default for that database.

       

Reply

Sign In To Reply

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.