Category Archives: MySQL

Как руссифицировать MySQL

MySQL – это система управления базами данных, в которых данные хранятся в таблицах. У нее нет графического интерфейса, и если подключить MySQL к LIbreOffice Base, то получится бесплатный MS Access с широкими возможностями.

Чтоб ЛибреОффис заработал с MySQL, нужен JDBC коннектор. На Убунте его можно установить из репозиторий:

apt-get install libmysql-java

Почему-то Test Class говорит, что не может загрузить JDBC драйвер, но база в ЛибреОффисе контачит хорошо даже с удаленного компа. 

 

Делаем базу данных

mysql -u root -p
CREATE DATABASE dbname;

Делаем супер юзера с неограниченными привилегиями:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'pwd';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'pwd' WITH GRANT OPTION
FLUSH PRIVILEGES;

Теперь можно делать делать таблицы для MySQL прямо в ЛибреОффисе. Только автоинкремент для таблиц почему-то в ЛибреОффисе не делается. Его надо делать вручную:

AUTOINCREMENT
mysql -u root -p

ALTER TABLE dbname.Table MODIFY ID INT NOT NULL;
ALTER TABLE dbname.Table DROP PRIMARY KEY;
ALTER TABLE dbname.Table CHANGE ID ID INT(10)AUTO_INCREMENT PRIMARY KEY;

Ресетить автоинкремент надо так:

RESET AUTOINCREMENT
mysql -u root -p

ALTER TABLE dbname.Table AUTO_INCREMENT = 1;

Если мы начнем вносить в таблицу данные русским шрифтом, то появится ошибка “Incorrect string value”. Это потому что таблица не понимает русского языка. Ее надо переделать на UTF8:

mysql -u root -p

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Такие изменения надо делать со свежей таблицей, потому что данные, которые уже находятся в таблице, не будут конвертированны.

Правда, если данные достать из этой таблицы, можно получить одни лишь вопросительные знаки типа “????? ?? ????”. Это происходит потому ,что MySQL не понимает, что надо говорить по-русски. Поэтому ее надо инструктировать командой

SET NAMES utf8;

А в HTML надо поставить мета-таг

<meta charset="UTF-8">

Для Python 2.7 запросы идут в такой последовательности

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb

cur = db.cursor()
cur.execute("SET NAMES utf8;")
cur.execute("SELECT * FROM tablename")
L = cur.fetchall()
db.close()

print L