Навигация
Главная
Поиск
Новости
Статьи
ЧаВо
- - - - - - -
Файловый архив
Ссылки
Авторизация
Кто он-лайн

 

 
Главная arrow Статьи arrow FreeBSD, Linux, ... arrow FreeBSD: установка MySQL 5.x
FreeBSD: установка MySQL 5.x Версия для печати
Написал Ярослав Гасов   
15.10.2009

Share this!
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, конечно)

 

Последнее обновление ( 23.07.2013 )
 
< Пред.   След. >
 
 

Производственный кооператив "Геолог" - геологоразведовательные работы, разведка месторождений, подсчет запасов, бурение скважин, геологический отчет...


GASOV.COM © 2024