, я могу подключиться к базе данных mysql из командной строки в centos 6.7:
mysql -u root -h 127.0.0.1 --protocol=TCP -p;
также:
mysql -u root -h localhost --protocol=TCP -p;
Но если я подключаюсь с NodeBB, работающего на порту 4567, через плагин импортера, я получаю сообщение об ошибке отказа в доступе:
From a node application for importing data to the database I see:
22/11 09:11 [28144] - error: Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password: YES)
at Handshake.Sequence._packetToError (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
at Handshake.ErrorPacket (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/protocol/sequences/Handshake.js:101:18)
at Protocol._parsePacket (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/protocol/Protocol.js:270:23)
at Parser.write (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/protocol/Parser.js:77:12)
at Protocol.write (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/var/www/nodebb/node_modules/nodebb-plugin-import-punbb2/node_modules/mysql/lib/Connection.js:82:28)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)
Я попытался предоставить привилегии на *. * Пользователю 'root' @ '%'
(это бродячая коробка), но ошибка сохраняется.
Кто-нибудь может предположить, что могло быть причиной этого? Я могу без ошибок подключиться к MySQL из простого скрипта nodejs на том же компьютере, используя те же учетные данные.
SELinux отключен:
sudo cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
Если это установка CentOS по умолчанию, вам следует проверить конфигурацию SELinux. SELinux обеспечивает детализированную систему защиты доступа к вашей системе. Это контролируется модулем SELinux в ядре.
Любой доступ, контролируемый SELinux, будет регистрироваться (при установке CentOS по умолчанию) демоном аудита. Журнал находится в /var/log/audit/audit.log
и должен содержать некоторые записи, относящиеся к вашим попыткам доступа к MySQL.
По умолчанию в CentOS6 он установлен на принудительное исполнение. Это настраивается в / etc / sysconfig / selinux
. После изменения этого параметра требуется перезагрузка.
Вы можете отключить SELinux, но наиболее правильный способ - добавить в SELinux политику, разрешающую доступ к MySQL из определенного приложения. Вы можете сделать это, как описано в руководстве .