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@"%"; А чтобы пользователь мог создавать таблицы по шаблону "dbname_%" в таблице MySQL\db надо создать запись "dbname\_%" (аналогичную "test\_%") только для данного конкретного пользователя. (И не забудьте после этого сделать FLUSH PRIVILEGES;) (!!!) И не делайте глупость типа grant CREATE ON *.* to user@"%" WITH GRANT OPTION - будут глюки (прийдется делать DROP USER...) |