English Русский

FAQ

Общие вопросы

Q: Профайлер показывает активность сервера, но не показывает всех запросов и сессий.
A: Не забудьте нажать кнопку Старт для начала захвата сессий.
Q: Удалось подключится к MySQL, но Сессии не показываются.
A: Neor Profile SQL работает как прокси сервер. Это значит что могут быть показаны только сессии проходящие через профайлер. Ваше приложение (или сайт) должен быть соединяться с профайлером как с обычным MySQL сервером. Профайлер использует только TCP входящие соединения. И тогда вы увидите результат в закладке Сессии.
Q: Почему в некоторых сессиях запросы с нулевым временем?
A: Запросы с нулевым временем выполняются крайне быстро без задержки. Такие запросы могли быть закешированы СУБД или выполняются очень быстро, например если у вас мощный сервер и хорошо оптимизированные таблицы.
Q: Что обозначает % во времени и длительности в сессии?
A: "Время %" — это доля от общего времени выполнения сессии. "Длительность %" — это доля от самого длительного запроса в сессии (соотношение к самому долгому запросу).
Q: Я использую JetProfiler и он в настройке проще.
A: JetProfiler получает информацию от MySQL сервера через команду 'show status' и не может получить всю информацию на сервере, так как работает дискретно. Neor Profile SQL показывает абсолютно все запросы к базе данных. И это требует настройки вашего приложения для направления потока запросов через профайлер.
Q: Кнопка Профилировать в закладке SQL не показывает результат
A: Функция профилирования в SQL редакторе работает через команду SHOW PROFILES, которая была добавлена в MySQL Community Server начиная с версии 5.0.37. Проверьте свою версию сервера MySQL.
Q: Можно ли сделать профайлер консольным?
A: Для консоли используйте связку логов СУБД и tail, или специальные консольные инструменты, которых довольно много. Neor Profile SQL — это приложение для оконной ОС, которое предназначено для размещения на системе у разработчика.
Q: Профайлер работает, но почему то не отображает главный график статистики?
A: Главный график использует команду SHOW STATUS для основного сервера. Возможно у вас нет прав для запуска данной команды на сервере. Убедитесь в доступности прав на эту команду.
Q: Как запустить установщик в тихом режиме?
A: sqlprofiler-4.1.1.exe /S /D:C:Program Files (x86)Neor Profile SQL

Windows

Q: Как проверить соединение Профайлера?
A: Используйте консольный клиент MySQL для соединения с профайлером. Если вы увидите свою сессию в закладке Сессии, это значит что все настроено верно.
Например:
mysql --host=127.0.0.1 --user=LOGIN --password=PASSWORD --port=4040
Потом выполните простую SQL команду:
show tables;
И посмотрите что получилось в закладке Сессии в профайлере.

Linux

Q: Не могу соединиться через localhost.
A: Linux пытается ассоциировать localhost с сокетным соединением, но Neor Profile SQL работает только с TCP соединениями. Установите в профайлере серверный адрес 127.0.0.1 вместо localhost. Тоже самое сделаете в настройках своего приложения.
Например:
mysql --host=127.0.0.1 --user=LOGIN --password=PASSWORD --port=4040
Q: Не могу соединиться с 127.0.0.1.
A: Проверьте тип соединения в вашем приложении. Можно также воспользоваться типом соединения local socket, в котором не требуется вводить значение порта.
Q: Как установить Neor Profile SQL под OpenSUSE?
A: На сегодняшний момент мы поддерживаем только пакет DEB, который работает под Ubuntu, Debian и совместимых Linux дистрибутивах. Вы можете сделать RPM файл своими силами и помочь тем самым.
Q: Почему я не могу перехватить запросы Sysbench?
A: Профайлер использует только TCP входящие соединения. Запускайте Sysbench с параметрами хоста и порта:
sysbench --test=oltp --mysql-host=127.0.0.1 --mysql-port=4040 --mysql-user=root --mysql-password=password prepare

Mac OS X

Q: Профайлер не может соединиться к серверу MAMP MySQL.
A: Проблема сетевого соединения в конфигурации MySQL:
  1. МАМР
    Бесплатная версия – скопируйте стандартный MySQL конфиг в папку
    /Applications/MAMP/conf/my.cnf
    Pro версия – откройте меню FILE – EDIT – MySQL template
  2. в конфигурации my.cnf удалите строку skip-networking
  3. в Настройках профайлера измените адрес хоста БД с localhost на 127.0.0.1

Изменение порта MySQL в вашем скрипте

В Neor Profile SQL порт по умолчанию 4040. Для сбора SQL запросов вы должны изменить в вашем скрипте стандартные значения подключения к MySQL хоста и порта 3306. Ниже приведены примеры как это сделать.
PHP
$ link = mysql_connect('127.0.0.1:4040', 'YOUR_DATABASE', 'YOUR_PASSWORD');
http://php.net/manual/en/function.mysql-connect.php
PHP PDO
$ dsn = 'mysql:dbname=YOUR_DATABASE;host=127.0.0.1;port=4040';
http://www.php.net/manual/en/pdo.construct.php
Java
URL = jdbc:mysql://127.0.0.1:4040/YOUR_DATABASE?user=YOUR_USER&password=YOUR_PASSWORD
http://www.vogella.com/articles/MySQLJava/article.html
.net
string connStr = "server=127.0.0.1;port=4040;database=YOUR_DATABASE;user=YOUR_USER;password=YOUR_PASSWORD;";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html
Ruby
con = Mysql.new '127.0.0.1:4040', 'YOUR_USER', 'YOUR_PASSWORD'
http://zetcode.com/db/mysqlrubytutorial/
Python
con = _mysql.connect('127.0.0.1:4040', 'YOUR_USER', 'YOUR_PASSWORD', 'YOUR_DATABASE')
http://zetcode.com/db/mysqlpython/

Изменение порта в популярных CMS/Framework

Wordpress
File: wp-config.php
Code: define('DB_HOST', 'localhost:4040');
Laravel
File: .env
Code:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=4040
File: config/database.php
Code:
'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '4040'),
    'database' => env('DB_DATABASE', 'YOUR_DB'),
    'username' => env('DB_USERNAME', 'YOUR_USER'),
    'password' => env('DB_PASSWORD', 'YOUR_PASS'),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],                                                                    
    ],
PrestaShop
File: config/settings.inc.php
Code: define('_DB_SERVER_', 'localhost:4040');
OpenCart
File: config.php
Code: define('DB_HOSTNAME', 'localhost:4040');
Drupal
File: sites/default/settings.php
Code:
$ databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'YOUR_DB',
      'username' => 'YOUR_USER',
      'password' => 'YOUR_PASS',
      'host' => 'localhost',
      'port' => '4040',
      'driver' => 'mysql',
      'prefix' => '',
    ),
), );
Joomla
File: configuration.php
Code: public $ host = 'localhost:4040';
Bitrix
File: bitrix/php_interface/dbconn.php
Code: $ DBHost = "localhost:4040";
HostCMS
File: config/database.php
Code:
return array (
	'default' => array (
		'driver' => 'mysql',
		'host' => 'localhost:4040',
		'username' => 'YOUR_USER',
		'password' => 'YOUR_PASS',
		'database' => 'YOUR_DB'
	)
);
Magento Commerce
File: config.php
Code: $ dbhost = "localhost:4040";
Magento Commerce
File: config.php
Code: $ dbhost = "localhost:4040";
osCommerce
File: admin/includes/configure.php
Code: define('DB_SERVER', 'localhost:4040');
File: includes/configure.php
Code: define('DB_SERVER', 'localhost:4040');
Typo3
File: typo3conf/LocalConfiguration.php
Code:
	'DB' => array(
		'database' => 'YOUR_DB',
		'extTablesDefinitionScript' => 'extTables.php',
		'host' => 'localhost:4040',
		'password' => 'YOUR_PASS',
		'username' => 'YOUR_USER',
	),
SugarCRM
File: config.php
Code:
  array (
        'db_host_name' => 'localhost',
        'db_host_instance' => 'SQLEXPRESS',
        'db_user_name' => 'YOUR_USER',
        'db_password' => 'YOUR_PASS',
        'db_name' => 'YOUR_DB',
        'db_type' => 'mysql',
        'db_port' => '4040',
        'db_manager' => 'MysqliManager',
      ),