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 для соединения с профайлером. Если вы увидите свою сессию в закладке Сессии, это значит что все настроено верно.
Например:
Потом выполните простую SQL команду:
И посмотрите что получилось в закладке Сессии в профайлере.
Например:
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:
- МАМР
Бесплатная версия – скопируйте стандартный MySQL конфиг в папку
/Applications/MAMP/conf/my.cnf
Pro версия – откройте меню FILE – EDIT – MySQL template - в конфигурации my.cnf удалите строку
skip-networking
- в Настройках профайлера измените адрес хоста БД с 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:
Code:
define('DB_HOST', 'localhost:4040');
Laravel
File: .env
Code:
Code:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=4040
File: config/database.php
Code:
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:
Code:
define('_DB_SERVER_', 'localhost:4040');
OpenCart
File: config.php
Code:
Code:
define('DB_HOSTNAME', 'localhost:4040');
Drupal
File: sites/default/settings.php
Code:
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:
Code:
public $ host = 'localhost:4040';
Bitrix
File: bitrix/php_interface/dbconn.php
Code:
Code:
$ DBHost = "localhost:4040";
HostCMS
File: config/database.php
Code:
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:
Code:
$ dbhost = "localhost:4040";
Magento Commerce
File: config.php
Code:
Code:
$ dbhost = "localhost:4040";
osCommerce
File: admin/includes/configure.php
Code:
Code:
define('DB_SERVER', 'localhost:4040');
File: includes/configure.php
Code:
Code:
define('DB_SERVER', 'localhost:4040');
Typo3
File: typo3conf/LocalConfiguration.php
Code:
Code:
'DB' => array(
'database' => 'YOUR_DB',
'extTablesDefinitionScript' => 'extTables.php',
'host' => 'localhost:4040',
'password' => 'YOUR_PASS',
'username' => 'YOUR_USER',
),
SugarCRM
File: config.php
Code:
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',
),
© Неор