我可以从命令行上连接到MySQL数据库6.7:
mysql -u root -h 127.0.0.1 --protocol=TCP -p;
也:
mysql -u root -h localhost --protocol=TCP -p;
但是,如果我通过导入器插件从端口4567上运行的NodeBB连接,我得到一个访问被拒绝的错误:
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)
我已经尝试将*.* to 'root'@'%' (这是一个无用的框),但错误仍然存在。
任何人都可以提出什么可能造成这个? 我可以使用相同的凭据在同一个盒子上从一个简单的nodejs脚本连接到MySQL,而不会出错。
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的默认安装,你应该检查你的SELinuxconfiguration。 SELinux为您的系统提供了一个细粒度的访问保护系统。 这由内核中的SELinux模块控制。
由SELinux控制的访问权限将由审计师logging(在CentOS的默认安装中)。 该日志位于/var/log/audit/audit.log ,应该有一些特定于您的MySQL访问尝试的条目。
在CentOS6默认情况下,它被设置为强制执行。 这是在/etc/sysconfig/selinux 。 更改后需要重新启动。
您可以禁用SELinux,但最合适的方法是将策略添加到SELinux以允许从特定应用程序访问MySQL。 您可以按照手册中的说明进行操作 。