World: r3wp
[MySQL]
older | first |
caelum 25-Aug-2010 [1217] | Thanks amacleod I'll give that a try. ChristianE, I don't see any MySQL settings like that on my cpanel, which I am familiar with. I don't know if my ISP allows me to access such things. I've never seen that kind of information about MySQL in cpanel. How would I check? I am also looking for a virtual server where I can set everything myself in order to use Rebol to access databases and create HTML. If possible I want to eliminate PHP and use Rebol as my standard web interface program, but until I can get Rebol reading/writing to my databases I am stuck. |
ChristianE 25-Aug-2010 [1218] | If the SKIP-NETWORKING config entry is enabled, MySQL won’t listen for TCP/IP connections at all. That's a security setting. All interaction with MySQL must then be made via Unix sockets. Whereas the mysql-driver only supports TCP connections. I don't no about CPanel, but look out for some CPanel setting like "skip networking" or alike. |
amacleod 26-Aug-2010 [1219] | Caelum, instead of 'read' use 'load' when your remote client accesses teh cgi script. That will give you your data back in rebol blocks intead of text. |
caelum 26-Aug-2010 [1220x2] | ChristianE, I could not find the SKIP-NETWORKING config entry anywhere on cpanel, but after reading some tech docs from my ISP I conclude they have it set to only allow database access via Unix sockets, so I guess I will have to live with that. |
amacleod, Progress: After a lot of messing around I got that script working. So now I can access my databases using Rebol. NICE! | |
amacleod 27-Aug-2010 [1222] | great! |
amacleod 20-Oct-2010 [1223x2] | What is the SOP for building json objects from MySQL queries? I saw this but I could not get it to work: SELECT CONCAT("[", GROUP_CONCAT( CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}") ) ,"]") AS json FROM users; |
Anyone know if that is supported with mysql-protocol? | |
Andreas 20-Oct-2010 [1225] | You are using MySQL 4.1+? |
amacleod 20-Oct-2010 [1226] | I believe its 5.1.30 |
Andreas 20-Oct-2010 [1227x3] | Ok. |
In any case, I'd probably just do plain queries and construct the JSON from the resultset. | |
http://www.json.org/json.rwill help you with the encoding. | |
amacleod 20-Oct-2010 [1230] | Might that be a burden on hte server for very large queries? |
Andreas 20-Oct-2010 [1231x3] | Makes no difference. |
Either you transfer a very large string which you build up within MySQL. Or you transfer a very large result set and build up the string in REBOL. | |
Also note that the above approach with CONCAT/GROUP_CONCAT does not help you with JSON-specific encoding. So changes to you'll in fact create wrong JSON are rather high. | |
amacleod 20-Oct-2010 [1234x2] | I used json.r. New to json.... I'm going to want an json object right? |
If a query gives me a rebol block of blocks and I send it through json.r I don't get a json object. Should I work on converting the query to a rebol object first? | |
Andreas 20-Oct-2010 [1236] | Precisely. |
amacleod 20-Oct-2010 [1237] | ok, so there is no easy way to do it...I justs need to loop through each rebol block and insert the field name before the data and then make objeet? |
Andreas 20-Oct-2010 [1238x2] | Yes. |
Which should be easy, if you have the right functions available :) | |
amacleod 20-Oct-2010 [1240] | Thanks, I thought there might be some Mysql command to insert column names with the data... THanks for your help. |
Andreas 20-Oct-2010 [1241] | There might well be. |
Dockimbel 20-Oct-2010 [1242] | amacleod: NAME-FIELDS function might help : http://softinnov.org/rebol/mysql-usage.html#sect11. (it works on a single record only, so you'll need to loop through the recordset anyway) |
Gregg 20-Oct-2010 [1243] | You should get back a top-level JSON object, but nested blocks will be arrays, not objects. e.g. >> rebol-to-json [a: 1 b: 2 c: [d: 4 e: 5] f: #[object! [g: 6 h: 7]]] == {["a", 1, "b", 2, "c", ["d", 4, "e", 5], "f", {"g": 6, "h": 7}]} |
GrahamC 22-Sep-2011 [1244] | mysql:// question at http://synapse-ehr.com/forums/showthread.php?454-mysql-problem-what-does-this-error-mean |
Dockimbel 22-Sep-2011 [1245] | The link is not working for me, I get a "Invalid Thread specified. If you followed a valid link, please notify the administrator". |
GrahamC 22-Sep-2011 [1246x2] | mysql problem what does this error mean? Hello, I am just looking at REBOL and trying to access mysql I got this error?? =================================== connecting to: 127.0.0.1 ** User Error: ERROR 1251 : Client does not support authentication pro tocol requested by server; consider upgrading MySQL client ** Near: db: open mysql://[rootass-:-127-:-0-:-0-:-1]:3306/mysql ============================================== This the code I am using from rebol document Rebol[ title: "Rebol Mini-Text Database with Visual GUI" author: "http://reboltutorial.com/blog/rebol-mini-text-database/" version: 1.0.0 ] do %mysql-protocol.r probe first system/schemes db: open mysql://[rootass-:-127-:-0-:-0-:-1]:3306/mysql insert db { DROP TABLE IF EXISTS products; CREATE TABLE products ( name VARCHAR(100), version DECIMAL(2, 2), released DATE ); INSERT INTO products VALUES ('cheyenne', '1.0', '2007-05-31'); INSERT INTO products VALUES ('mysql', '1.1', '2007-05-01'); } insert db read %setup.sql ;-- execute a big SQL file |
link above works for me | |
Gabriele 22-Sep-2011 [1248] | Maybe he's using an older version of the mysql driver? |
GrahamC 22-Sep-2011 [1249] | I'll ask ... |
Dockimbel 22-Sep-2011 [1250] | It looks like the MySQL driver he's using is too old for his MySQL server. He should try with the latest version for newer servers: http://softinnov.org/tmp/mysql-protocol-41.r I haven't made it official as it does not work for older servers IIRC, and I also never found the time to fully test it with more recent ones. But it should work correctly. |
GrahamC 22-Sep-2011 [1251] | Ok, posted |
Endo 22-Sep-2011 [1252x2] | The problem could be this as well: http://dev.mysql.com/doc/refman/5.5/en/old-client.html |
when you upgrade your mysql server from 4.x to 5.x the passwords in your "mysql" table for users stays old, which hashed a different algorithm.. so you cannot connect it using username/password anymore. | |
GrahamC 25-Sep-2011 [1254] | I think the link didn't work because I discovered it was a moderated thread. |
james_nak 21-Oct-2011 [1255] | Doc, what a lifesaver! I just spent the last 7 hours trying to figure out what was wrong with my remote rebol-based mysql app. It stopped working after I upgraded mysql. I spent most of my time messing around with mysql until I narrowed it down to the protocol. sql-protocol-41.r Addresses: User Error: ERROR 1251 : Client does not support authentication protocol requested by server; consider upgrading MySQL client (When using newer long hash passwords) and User Error: ERROR 1043 : Bad handshake (when using older short hash passwords) Thank you for posting this. I was getting to the point of panic. |
Dockimbel 21-Oct-2011 [1256:last] | Glad to hear that my driver helped you solve your issue. :-) |
older | first |