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