MySQL hardcoding?

M

marexposed

I've got this error (see the path in last line)

db=MySQLdb.connect(host='localhost',use_unicode = True, charset = "Windows-1251",user='root',passwd='12',db='articulos')
File "C:\Python24\Lib\site-packages\MySQLdb\__init__.py", line 74, in Connect
return Connection(*args, **kwargs)
File "C:\Python24\lib\site-packages\MySQLdb\connections.py", line 198, in __init__
self.set_character_set(charset)
File "C:\Python24\lib\site-packages\MySQLdb\connections.py", line 277, in set_character_set
super(Connection, self).set_character_set(charset)
OperationalError: (2019, "Can't initialize character set Windows-1251 (path: C:\\mysql\\\\share\\charsets\\)")

The truth of the matter is, MySQL is not installed in that path, but into Program Files.
I don't know where the hardcoding is, but it is certainly somewhere. Except MySQL is reporting a wrong installation path.
I haven't found any other topic in the list about this problem.

I'm using Python 2.4 and latest MySQLdb. Have anyone heard of this issue and how to fix it?

Thanks a lot.
 
J

John Machin

I've got this error (see the path in last line)

db=MySQLdb.connect(host='localhost',use_unicode = True, charset = "Windows-1251",user='root',passwd='12',db='articulos')

Can't help with the answer to your question, but this may stave off yet
another question:

The empirical evidence from other recent postings is that you are
mucking about with Spanish-language newspaper "articulos" on the web ...
so why charset = "Windows-1251", which is Cyrillic (i.e. Russian etc)??
Perhaps you mean 1252 which is Microsoft's latin1 with extras.

HTH,
John
 
M

marexposed

The empirical evidence from other recent postings is that you are
mucking about with Spanish-language newspaper "articulos" on the web ...
so why charset = "Windows-1251", which is Cyrillic (i.e. Russian etc)??
Perhaps you mean 1252 which is Microsoft's latin1 with extras.

HTH,
John
Yes John, thanks. The only problem is MySQL doesn't include a cp1252 or Windows-1252 or ansi. I'm trying to find my way with different approaches.
But there is certainly a problem if an application goes to the wrong folder to get data as MySQL seems to be doing.

Thanks.
 
J

John Nagle

I've got this error (see the path in last line)

db=MySQLdb.connect(host='localhost',use_unicode = True, charset = "Windows-1251",user='root',passwd='12',db='articulos')
File "C:\Python24\Lib\site-packages\MySQLdb\__init__.py", line 74, in Connect
return Connection(*args, **kwargs)
File "C:\Python24\lib\site-packages\MySQLdb\connections.py", line 198, in __init__
self.set_character_set(charset)
File "C:\Python24\lib\site-packages\MySQLdb\connections.py", line 277, in set_character_set
super(Connection, self).set_character_set(charset)
OperationalError: (2019, "Can't initialize character set Windows-1251 (path: C:\\mysql\\\\share\\charsets\\)")

The truth of the matter is, MySQL is not installed in that path, but into Program Files.
I don't know where the hardcoding is, but it is certainly somewhere. Except MySQL is reporting a wrong installation path.
I haven't found any other topic in the list about this problem.

I'm using Python 2.4 and latest MySQLdb. Have anyone heard of this issue and how to fix it?

Thanks a lot.

Well, for one thing, MySQL doesn't have a character set called
"Windows-1251", which is an obsolete Cyrillic variant of Windows.
See the list of MySQL character sets at:

"http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html"

MySQL does have "cp1251", which is apparently the same thing.

Be aware that in Python, there are really only two character
sets - ASCII and Unicode. The "upper code page" thing is deprecated,
and you can't do some string operations on characters with values > 128.
It's best to convert input to Unicode, run everything in Python in
Unicode, send to the database in "utf8", and store your data in "utf8".

You have "use_unicode" set to True. If you're going to run
the MySQL connection in Unicode, you should use "utf8" talking to the
database, and Unicode strings in Python. Otherwise, you have to
understand very clearly exactly how both Python and MySQL handle
character sets, and how this changes in Python 2.4, 2.5, and 3.x.

John Nagle
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top