FreeBSD: установка MySQL 5.x |
Написал Ярослав Гасов | |
15.10.2009 | |
cd /usr/ports/databases/mysql50-server make WITH_CHARSET=utf8 WITH_COLLATION=utf8_unicode_ci WITH_OPENSSL=yes WITHOUT_INNODB=yes install clean /usr/local/bin/mysql_install_db --basedir=/usr/local --datadir=/var/db/mysql --user=mysql --verbose
cd /usr/ports/databases/mysql50-scripts make install clean Прописать в /etc/rc.conf: mysql_enable="YES" /usr/local/etc/rc.d/mysql-server start mysqladmin -u root password '*****' mysql_secure_installation - убирает тестовую базу и пользователя, запрещает руту логиниться удаленно и т.п.
Дополнение:
--default-character-set - устаревшая опция. Вместо нее --character-set-server Аналогично skip-locking => skip-external-locking
В my.cnf можно указать thread_stack = 512K
Работа с пользователями.
Добавляем админа: # mysql -u root -p mysql> GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY "password" WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; mysql> \q
Если надо потом ограничить права: mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM admin@"%";
Создаем пользователя для конкретной базы: mysql> grant usage on *.* to user@"%" identified by "password"; mysql> grant all privileges on dbname.* to user@"%"; (чтобы забрать в дальнейшем права: REVOKE all privileges ON dbname.* FROM user@"%";)
А чтобы пользователь мог создавать таблицы по шаблону "dbname_%" в таблице MySQL\db надо создать запись "dbname\_%" (аналогичную "test\_%") только для данного конкретного пользователя. (И не забудьте после этого сделать FLUSH PRIVILEGES;) (!!!) И не делайте глупость типа grant CREATE ON *.* to user@"%" WITH GRANT OPTION - будут глюки (прийдется делать DROP USER...)
Отключаем бинарные лог файлы для организации репликации:
Останавливаем MySQL, далее в my.cnf комментируем параметр log-bin=mysql-bin (файлы mysql-bin.xxxxxx можно грохнуть)
innodb_file_per_table
По-умолчанию MySQL все таблички innodb хранит в одном файле. Параметр innodb_file_per_table позволяет исправить эту ситуацию (my.cnf):
[mysqld] innodb_file_per_table
(Это желательно сделать сразу после установки MySQL, иначе - "дамп" всех баз innodb, остановка MySQL, удаление ibdata1, ib_logfile0, ib_logfile1 ... и восстановление баз из "дампа")
P.S. Если вдруг оказалось, что база разрабатывалась под "Виндой" и разработчики не учли, что в Unix по-умолчанию имена таблиц регистрозависимые, то Вам поможет lower_case_table_names=1 (в секции [mysqld] my.cnf, конечно)
|
|
Последнее обновление ( 23.07.2013 ) |