DTop CMS - система управления контентом
Текущая версия: 3.4.1


© 2002-2018

Статья опубликована: 2010.06.30
Последние изменения: 2013.03.20

FreeBSD, установка и настройка MySQL сервера версии 5.1



На этой страничке описано как установить и настроить MySQL сервер с отключенной сетевой подсистемой и пример работы с ним через сокет.
Внимание! Версия 5.1 уже не является последней, поэтому рекомендую устанавливать версию 5.6. Установка MySQL сервера 5.6 на FreeBSD
  • MySQL
    Официальный сайт MySQL


  • Использованные версии ПО:
    # uname -sr
    FreeBSD 8.1-PRERELEASE
    
    # pkg_info | grep mysql
    mysql-client-5.1.48
    mysql-server-5.1.48
    

  • Предварительная подготовка
    Проверяем наличие или добавляем строки в /etc/make.conf:
    PORTSDIR?=/usr/ports
    
    .if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-server
    BUILD_OPTIMIZED=yes
    BUILD_STATIC=yes
    .endif
    

  • Установка
    # cd /usr/ports/databases/mysql51-server
    # make install clean
    

  • Настройка
    Проверяем наличие или добавляем строку в /etc/rc.conf:
    mysql_enable="YES"
    
    Создаем начальные базы данных:
    # /usr/local/bin/mysql_install_db
    # chown -R mysql:mysql /var/db/mysql
    
    Создаем конфигурационный файл /var/db/mysql/my.cnf с настройками
    # cd /var/db/mysql
    # touch my.cnf
    # chown root:mysql my.cnf
    
    Записываем в /var/db/mysql/my.cnf настройки:
    [mysqld]
    skip-networking
    skip-innodb
    character-set-server=utf8
    init-connect="SET NAMES utf8"
    
    [client]
    character_set_client=utf8
    
    Описание настроек:
    • skip-networking - отключаем сетевую подсистему, доступ к серверу в этом случае возможен только через сокет
    • skip-innodb - отключаем в целях повышения производительности использование InnoDB таблиц
    • character-set-server=utf8, init-connect="SET NAMES utf8" - задаем использование сервером кодировки utf8
    • character_set_client=utf8 - задаем использование клиентом кодировки utf8

    Запускаем MySQL сервер
    # /usr/local/etc/rc.d/mysql-server start
    
    Проверяем что сервер запустился и работает
    # ps ax | grep mysql
    59833   2  S      0:00,01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --data
    59919   2  S      0:00,01 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datad
    
    Задаем пароль root для mysql-сервера
    # /usr/local/bin/mysqladmin -uroot password "ПАРОЛЬ"
    
    Пробуем подключиться:
    # mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.1.48 FreeBSD port: mysql-server-5.1.48
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> quit
    Bye
    

  • Подключение к MySQL серверу через сокет
    - вместо хоста необходимо задать localhost;
    - вместо порта пишем сокет /tmp/mysql.sock;
    - остальные параметры такие же как и при подключении через хост:порт.

    Пример на языке Perl через DBI интерфейс
    use DBI;
    
    $database = 'newbase';
    $host = 'localhost';
    $port = '/tmp/mysql.sock';
    $user = 'mysqluser';
    $pass = 'mysqlpassword';
    
    $dbh = DBI->connect(
    	"DBI:mysql:$database:$host:$port",
    	$user,
    	$pass
    );
    
    $dbh->disconnect;