Показаны сообщения с ярлыком MySQL. Показать все сообщения
Показаны сообщения с ярлыком MySQL. Показать все сообщения

2011-08-09

Установка последней версии MySQL 5.5.15 и проблемы с кодировкой MySQL на сайте на PHP

На установленном на сельском древнем компе Debian GNU/Linux 6.0.2.1 (Pentium III 733 MHz, RAM 512Mb) решил обновить версию MySQL с 5.1.x на 5.5.15, дабы продолжить на нем работу над небольшим сайтиком на PHP. Скачал пакет исходных текстов с сайта Oracle (с его зеркал), установил и настроил его по этой доке (не без проблем, желательно после установки и настройки полностью удалить каталоги старого MySQL). Единственное, что пришлось поменять, местоположение сокета на файловой системе в /etc/my.cnf:

вместо
socket = /var/lib/mysql/mysql.sock

надо записать
socket = /var/run/mysqld/mysqld.sock

в противном случае не будет работать ни одна программа или сайт, т.к. они ожидают найти сокет в определенном месте.
Теперь у меня дома и в селе была почти одинаковая версия MySQL, что исключало какие-либо проблемы при работе с ней.
Но не тут-то было. После открытия сайта выяснилось, что русские буквы показываются знаками вопроса. Поиск в инете выводил на 2 пути решения вопроса: настроить my.cnf или перед каждым запросом делать запрос:

$query="set names utf8";
$result = mysql_query($query) or die("Query failed");

Решение проблемы таким образом мне не улыбалось. Настройки же my.cnf приводили только к краху запуска MySQL. Так как в селе и других дел полно, забросил временно эти поиски, а сегодня решил еще раз поискать решение проблемы путем модификации my.cnf. Последовательно комментируя настройки, нашел рабочую кофигурацию, при которой сайт нормально отображает русские буквы. Обычно предлагается внести в MySQL в секцию [mysqld] следующие настройки:

[mysqld]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

Оказалось, что первая настройка и не дает запустить сервер MySQL, а эту настройку упорно описывают везде, где обсуждается эта тема. Возможно, она работает на Windows, т.к. обычно везде идет речь о кодировке WINDOWS-1251 (cp1251). Среди остальных тоже есть "лишние" (не исключено, что они еще понадобятся), а оставшаяся рабочая конфигурация выглядит так:

[mysqld]
character-set-server=utf8
skip-character-set-client-handshake

Теперь русские буквы показываются нормально.

2009-08-19

ERROR 1045 (28000) Access denied for user 'root'@'localhost'

ERROR 1045 (28000) Access denied for user 'root'@'localhost'

Вот такая ошибка вылезла, при попытке зайти в MySQL в рамках работы с одной программкой. При установке MySQL обычно предлагается установить пароль root'а MySQL, который позже забывается, и в нужный момент мы оказываемся не в лучшем положении. Решение нашел тут, но чуть пришлось скорректировать (в листинге могут перемешаны команды FreeBSD (кое-что скопировано по ссылке) и Linux, на что можно не обращать внимание, главное - смысл):
sudo /etc/init.d/mysqld stop
sudo /usr/bin/mysqld_safe --skip-grant-tables &
Starting mysqld daemon with databases from /var/db/mysql
mysql -u mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.83 Linux port: mysql-server-5.0.83

mysql> update mysql.user set password=password('password')where user='root'and host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> \q;
Bye

sudo /etc/init.d/mysqld stop
Stopping mysql.
Waiting for PIDS: 71151STOPPING server from pid file /var/db/mysql/srv.pid
090705 18:41:09 mysqld ended

.
[1] + Done mysqld_safe --skip-grant-tables

sudo /etc/init.d/mysqld start
Starting mysql.
mysql -u root -p

Теперь вводим установленный нами пароль, и заходим без проблем :)

2009-04-21

Компания Oracle покупает Sun Microsystems за 7.4 миллиарда долларов

Компании Oracle и Sun Microsystems подписали соглашение о передаче активов Sun компании Oracle по цене $9.50 за акцию. Общий размер сделки составил около 7.4 миллиардов долларов или 5.6 миллиардов с учетом оплаты долгов. Полностью завершить сделку компании намерены летом.

Неопределенной остается судьба таких открытых проектов, развиваемых Sun, как OpenSolaris, OpenSparc, OpenOffice.org, OpenJDK, MySQL, NetBeans, GlassFish, кластерной ФС Lustre и системы виртуализации VirtualBox. По сравнению с несостоявшейся сделкой с IBM. для открытого сообщества поглощение Sun компанией Oracle выглядит с одной стороны более привлекательно, так как интерес Oracle к программным разработкам Sun не уступает интересу к бизнесу по производству аппаратного обеспечения, но с другой - Oracle не имеет такого как у IBM опыта курирования разработки свободных проектов.

Особенно положительно может сказаться поглощение на развитии MySQL, OpenJDK и Solaris. В 2005 Oracle поглотила компанию Innobase, разрабатывающую MySQL движок Innodb, и заинтересована в развитии MySQL как легковесной альтернативы собственной СУБД. Что касается Solaris, то долгое время эта ОС занимала лидирующие позиции при построении серверов для Oracle. Распределенная кластерная ФС Lustre прекрасно дополнит параллельную ФС OCFS2, предназначенную для доступа набора машин к одному хранилищу. VirtualBox тоже не останется без присмотра, в этот проект Oracle сможет вместить весь свой растущий интерес к технологиям виртуализации, который ранее не удавалось реализовать на технологиях Xen, из-за неподконтрольности последнего. Вероятно наибольшие опасения стоит связывать с развитием OpenOffice.org, который подпадает в область неприоритетных интересов.

Некоторые свои планы, связанные с развитием технологий Sun, компания Oracle представила в специально подготовленной презентации и документе с ответами на часто задаваемые вопросы. Например, заявлено о дополнительных инвестициях в направления, развивающие Java, Solaris, Open Storage и SPARC. MySQL будет распространяться в одной линейке с продуктами Oracle Database 11g, TimesTen и Berkeley DB. Отношение Oracle к Linux после покупки Sun не изменится, все связанные с Linux разработки будут поддерживаться на прежнем уровне.

В настоящий момент в Sun работает около 30 тыс. сотрудников, более 47 тыс. компаний являются клиентами Sun. Для сравнения у Oracle 86.5 тыс. сотрудников и 320 тыс. клиентов.