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 Если непонятка с правами доступа (ошибка 13 в логах запуска MySQL), то выполнить: chown mysql:mysql /var/db/mysql -R ( cd /var/db ; chown -R mysql mysql )
cd /usr/ports/databases/mysql50-scripts make install clean Прописать в /etc/rc.conf: mysql_enable="YES" ### Остальное - по вкусу! mysql_dbdir="/var/db/mysql" mysql_args="--default-character-set=utf8 --character-set-server=utf8 --collation-server=utf8_unicode_ci" /usr/local/etc/rc.d/mysql-server start mysqladmin -u root password '*****' mysqladmin -u root -h host.com.ua 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, конечно) |