NEWS
Gelöst - Fehler-Problem bei SQL.history Adapter
-
hallo ,
habe node v8.9.1 auf einem banana pro mit jessie. my server sql 5.7
ich habe node-red installiert, deswegen ist die node version so hoch! lch weiß nicht ob der sql adapter vorher lief!
nach der installation ist der test der verbindung (adapterkonfiguration) mit folgendem fehler:
TypeError: SQL[clients[msg.message.config.dbtype].name] is not a constructor
im log steht folgendes:
sql.0 2017-12-09 13:18:20.321 warn No connection to SQL-DB sql.0 2017-12-09 13:18:19.901 error TypeError: Cannot read property 'borrow' of undefined sql.0 2017-12-09 13:18:19.899 error Selected SQL DB was not installed properly: 'mysql'. SQLite requires build tools on system. See README.md
der befehl: node main.js –force -- logs bringt: (läuft ewig und wird dann "getötet"
Cannot find module 'pg-native' Getötet
kann mir bitte jemand helfen. ich komme leider nicht weiter.
gruß armin
-
Bitte sql Adapter neu installieren. Hast du schon immer Node 8 oder hast du aktualisiert?
-
hallo, erst mal danke für deine antwort
-sql adapter x-mal installiert (von iobroker admin aus)
-wie beschrieben habe ich node red installiert (nach iobroker) und dabei wurde node upgedated! ich weiß also nicht ob es schon gelaufen wäre.
welche node version wird bei iobroker benötigt. ich würde auch nicht genau wissen, wie man node downgraded - geht das überhaupt? wahrscheinlich deinstallieren und neu installieren - kann dabei iobroker in die brüche gehen?
ich hab auch versucht "npm install mysql" auszuführen - bekomme dann aber fehler - in meinem "node_modules" - ordner ist kein mysql ordner sondern ein mysql pointer - auf diesen kann man nicht zugreifen.
alles mit sql macht irgendwie probleme - die mysql datenbank wird aber häufig von verschiedenen programmen benutzt und läuft ohne fehler
hast du eine idee
-
Hast du NACH dem node Upgrade den sql Adapter nochmals installiert?
mysql node Modul hat Teile die Kompiliert werden müssen.
Am besten vorher in node_modules das Verteichnis iobroker.sql und auch mysql und so und dann neu installieren
-
ich habe den sql adapter des öfteren installiert und ausprobiert - jetzt auch mit löschen der verzeichnisse - so wie du empfohlen hast.
ich habe mal versucht verschiedene nodejs versionen zu testen. alle versionen 4.x, 6.x, 8.x alle haben den selben fehler im log (siehe oben). nach jeder node versionsänderung ich habe jedesmal einen reboot gemacht und den sql adapter neu installiert. es gibt nur einen für mich sichtbaren unterschied - die fehlermeldung beim verbindungstest in der adapterkonfig ist eine andere
bei node 4.8.2
TypeError: SQL[clients[msg.message.config.dbtype].name] is not a function
bei node 6.x und 8.x
TypeError: SQL[clients[msg.message.config.dbtype].name] is not a constructor
-
Node versionen wechseln ist nichts was man mal eben so machen sollte. Blöde Idee!!
Bei mir und in den automatischen Tests läufts mit Node 4,6,8 … Versuchs mal wirklich an der kommandozeile mit „npm i iobroker.sql“ und schick mal diese Ausgaben. Am besten vorher die genannten Verzeichnisse nochmal löschen inkl sqlite
-
blöde idee - ich habe das alles von dem forum hier - hier wird oft über die version von node und npm diskutiert.
aber ich gebe dir recht - ich hatte schon sio ein blödes gefühl bei der installation von node-red. dabei wurde die node version geändert - aber ich wollts mal ausprobieren.
back to problem:
die installationen und neustarts dauern ewig - der banana pro ist ziemlich am limit!
momentan: node 6.12.2 npm 3.10.10 - alle verzeichnisse gelöscht :
npm install iobroker.sql npm WARN deprecated node-uuid@1.4.8: Use uuid module instead > sqlite3@3.1.7 install /opt/iobroker/node_modules/sqlite3 > node-pre-gyp install --fallback-to-build node-pre-gyp ERR! Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.7/node-v48-linux-arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for sqlite3@3.1.7 and node@6.12.2 (node-v48 ABI) (falling back to source compile with node-gyp) make: Entering directory '/opt/iobroker/node_modules/sqlite3/build' ACTION deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep Release/obj/gen/sqlite-autoconf-3150000/sqlite3.c TOUCH Release/obj.target/deps/action_before_build.stamp CC(target) Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o cc: internal compiler error: Getötet (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <file: usr/share/doc/gcc-4.9/readme.bugs="">for instructions. deps/sqlite3.target.mk:124: recipe for target 'Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o' failed make: *** [Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o] Error 4 make: Leaving directory '/opt/iobroker/node_modules/sqlite3/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/opt/iobroker/node_modules/npm/node_modules/node-gyp/lib/build.js:285:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12) gyp ERR! System Linux 3.4.108-bananian gyp ERR! command "/usr/local/bin/node" "/opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm" gyp ERR! cwd /opt/iobroker/node_modules/sqlite3 gyp ERR! node -v v6.12.2 gyp ERR! node-gyp -v v3.6.0 gyp ERR! not ok node-pre-gyp ERR! build error node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm' (1) node-pre-gyp ERR! stack at ChildProcess. <anonymous>(/opt/iobroker/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29) node-pre-gyp ERR! stack at emitTwo (events.js:106:13) node-pre-gyp ERR! stack at ChildProcess.emit (events.js:191:7) node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:920:16) node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5) node-pre-gyp ERR! System Linux 3.4.108-bananian node-pre-gyp ERR! command "/usr/local/bin/node" "/opt/iobroker/node_modules/sqlite3/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" node-pre-gyp ERR! cwd /opt/iobroker/node_modules/sqlite3 node-pre-gyp ERR! node -v v6.12.2 node-pre-gyp ERR! node-pre-gyp -v v0.6.31 node-pre-gyp ERR! not ok Failed to execute '/usr/local/bin/node /opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm' (1) iobroker@1.0.0 /opt/iobroker └─┬ iobroker.sql@1.5.8 ├─┬ mssql@3.3.0 │ ├── generic-pool@2.5.4 │ ├─┬ promise@7.3.1 │ │ └── asap@2.0.6 │ └─┬ tedious@1.14.0 │ ├─┬ babel-runtime@5.8.38 │ │ └── core-js@1.2.7 │ ├── big-number@0.3.1 │ ├── bl@1.2.1 │ ├─┬ readable-stream@2.3.3 │ │ ├── isarray@1.0.0 │ │ └── string_decoder@1.0.3 │ └── sprintf@0.1.5 ├─┬ mysql@2.15.0 │ ├── bignumber.js@4.0.4 │ ├─┬ readable-stream@2.3.3 │ │ ├── isarray@1.0.0 │ │ └── string_decoder@1.0.3 │ └── sqlstring@2.3.0 ├─┬ pg@6.4.2 │ ├── buffer-writer@1.0.1 │ ├── js-string-escape@1.0.1 │ ├── packet-reader@0.3.1 │ ├── pg-connection-string@0.1.3 │ ├─┬ pg-pool@1.8.0 │ │ └── generic-pool@2.4.3 │ ├─┬ pg-types@1.13.0 │ │ ├── pg-int8@1.0.1 │ │ ├── postgres-array@1.0.2 │ │ ├── postgres-bytea@1.0.0 │ │ ├── postgres-date@1.0.3 │ │ └── postgres-interval@1.1.1 │ ├─┬ pgpass@1.0.2 │ │ └── split@1.0.1 │ └── semver@4.3.2 └─┬ sql-client@0.7.0 ├── argf@0.0.1 ├─┬ inote-util@0.8.1 │ ├─┬ nconf@0.7.2 │ │ ├── async@0.9.2 │ │ ├── ini@1.3.5 │ │ └─┬ yargs@3.15.0 │ │ ├── camelcase@1.2.1 │ │ ├─┬ cliui@2.1.0 │ │ │ ├─┬ center-align@0.1.3 │ │ │ │ ├─┬ align-text@0.1.4 │ │ │ │ │ ├─┬ kind-of@3.2.2 │ │ │ │ │ │ └── is-buffer@1.1.6 │ │ │ │ │ ├── longest@1.0.1 │ │ │ │ │ └── repeat-string@1.6.1 │ │ │ │ └── lazy-cache@1.0.4 │ │ │ └── right-align@0.1.3 │ │ └── window-size@0.1.4 │ ├── node-uuid@1.4.8 │ ├─┬ remove@0.1.5 │ │ └─┬ seq@0.3.5 │ │ ├─┬ chainsaw@0.0.9 │ │ │ └── traverse@0.3.9 │ │ └── hashish@0.0.4 │ └── seedrandom@2.4.3 └─┬ optimist@0.6.1 └── wordwrap@0.0.2 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: sqlite3@3.1.7 (node_modules/sqlite3): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: sqlite3@3.1.7 install: `node-pre-gyp install --fallback-to-build` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1</anonymous></file:>
-
Also in jedem Fall funktioniert das kompilieren von sqlite nicht … Mich wundert das er "cc1" nimmt. Komisch.
Mach bitte mal auf dem Linux System (ist doch eins?!) ein
apt-get install build-essential
und versuchs nochmal (falls das nicht schon drauf ist).
-
hallo schon gemacht - verändert nichts
-
was meinst du mit:
Mich wundert das er "cc1" nimmt
kannn man das ändern (was immer das auch bedeutet)
-
neuigkeiten
sql.0 2017-12-11 10:57:57.754 info Connected to mysql
es funktioniert wieder
node deinstall und install - node 4.8.7 npm 2.15.11
würdest du mir noch bitte eine frage beantworten:
ich würde gerne folgenden befehl über javascript senden: 'UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"'
wie mache ich soetwas - der iobroker-sql-user hat alle rechte in der datenbank
das funktioniert nicht(ich habe die iobroker datenbank in eine existierende mit eingefügt - dort gibt es coll!):
sendTo('sql.0', 'UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (result) {...........
wo bekomme ich node_modules/iobroker.javascript/node_modules/mysql' her - muss da etwas installiert werden oder ist meine voegehensweise voll daneben?
benutze ich :
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : '###', password : '###', database : 'collection' }); connection.connect(); connection.query('UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (error, results, fields) {...........
kommt folgende fehlermeldung
javascript.0 2017-12-11 11:15:10.054 error at script.js.common.SQLEnergiesparenphp:2:24 javascript.0 2017-12-11 11:15:10.052 error script.js.common.SQLEnergiesparenphp: TypeError: Cannot read property 'createConnection' of undefined javascript.0 2017-12-11 11:15:10.018 error at script.js.common.SQLEnergiesparenphp:1:18 javascript.0 2017-12-11 11:15:10.016 error script.js.common.SQLEnergiesparenphp: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/mysql'
wo ist mein denkfehler?
-
Da fehlt das "Kommando" für das sendTo …
https://github.com/ioBroker/ioBroker.sql#custom-queries
In dem Fall "query" als zweiten Parameter
-
vielen dank für deine hilf
richtiger befehl:
sendTo('sql.0', 'query' 'UPDATE iobroker.coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (result) {...........
man muss wohl auch noch die datenbank angeben (iobroker.coll oder iobroker.datapoints) sonst geht bei mir nix