Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Problem with collation in vanilla 1.0.1

edited August 2006 in Vanilla 1.0 Help
I go that message when try to login on a testing forum. I suppose I just need to change the collation of my vanilla tables.
But is there not a way to do that while the installation?

A fatal, non-recoverable error has occurred

Technical information (for support personel):

Error Message
An error occurred while attempting to validate your credentials
Affected Elements
Authenticator.Authenticate();
The error occurred on or near:
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

For additional support documentation, visit the Lussumo Documentation website at: lussumo.com/docs

Comments

  • When creating you database, before running the install script, you should declare the database as being of DEFAULT utf8 encoding. From hte message it looks yours is latin1.

    Also be sure to use latest SVN mods from Mark about "SET names utf8"
  • MarkMark Vanilla Staff
    @Max_B: I had to remove those lines from the core because they were causing lots of problems for people. Look at the Vanilla 1.0.1 issues discussion.
  • edited August 2006
    @MaxB: It is what I did, I remember you were talking about that on the dev forum, and it is working fine. There is no way to set the table in utf8 were creating it, rather than asking user to make it by default?
  • @dinoboff: Sure there is, but then you must add to the SQL request.
    Do you want to edit it by hand or what?

    @Mark: this is too bad because the longer people are using Vanilla as it is now, the more difficult will be the cure.
    Current implementation of 1.0 sotre any non ascii chars in uft8, with an unwanted latin1 transcoding: Vanilla send utf8 chars, MySQL wants utf8 but incorrectly state, from PHP default setting, that it receive latin1, then it transcode them and store non-sense chars. It works because the reverse transcoding occurs when the base is read. But there are unsane contents and they will be painful to cleanup. ?
  • MarkMark Vanilla Staff
    I'm thinking of putting the code back in, but also having it depend on a configuration setting - that way people who want to use it, can.
  • Yes, this is a good way to be clean and let current bases migrate when they want.
  • edited August 2006
    In setup/installer.php, could we add:mysql_query('ALTER DATABASE `' . $DBName . '` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci', $Connection);
  • I posted a test script on Vanilla Dev, to help sort this out.
This discussion has been closed.