Hello.


Is it possible that your application doesn't close connection properly?

Check with netstat the states of connections between your application 

and server. Run netstat on the server. Do you see some sleeping processes

with ps utility or 'mysqladmin processlist' command?







Ronny Melz wrote:

>        Dear all,

> 

> I have a problem with the mysql interface for c, which after a couple of

>  hours thinking about bad or faulty programming are eliminated with

>  probability almost 100%.

> 

> within a loop, I do a mysql_query(), which is executed and I poll the result

> and everything is fine. Up to when max_connections of the mysqld is reached:

> each of the queries leaves after executing a sleeping mysql process behind on

> the server, which hence throws the "Too many connections" error (or under

> certain conditions even a "Can't create TCP/IP socket (24)").

> 

> Just because of this problem I recently upgraded mysql (including the

> libraries) from 4.0.21 to 4.1.12, but the problem still persists.

> 

> Does anybody have an idea of how to solve this problem?

> Any suggestions are appreciated.

> 

> Best,

> Ronny

> 

> 

> p.s.: code

> #define GET_W_NR \

> "select wort_nr from wortliste where wort_bin='%s' limit 1"

> MYSQL mysql;

> MYSQL_RES *res;

> MYSQL_ROW row;

> char *query;

> 

> init...

>   {

>   mysql_init(&mysql);

>   if ( !mysql_real_connect( &mysql, "127.0.0.1", "username", "passwd",

> "dbase",

>          0, "/var/lib/mysql/mysql.sock", 0 ) )

>     {

>     fprintf(stderr, "Failed: %s\n",    mysql_error(&mysql));

>     }

>   if (!(query = (char*) malloc(256*sizeof(char)))) fprintf(stderr, "no

> pointer");

>   }

> 

> this code of a function is called in a loop and returns with a mysql_error 

> after `max_connections` cycles:

> {

>     sprintf(query, GET_W_NR, refWort);

>     if ( mysql_query( &mysql, query ) )

>         {

>         fprintf(stderr, "query failed: %s\n", mysql_error(&mysql));

>         return 0;

>         }

>     if ( !( res = mysql_store_result( &mysql ) ) )

>         {fprintf(stderr, "store failed: %s\n", mysql_error(&mysql)); return

> 0;}

>     if ( row = mysql_fetch_row( res ) )

>         ref_word_nr = atoi(row[0]);

>     else

>         {fprintf(stderr, "fetch failed: %s\n", mysql_error(&mysql)); return

> 0;}

>     mysql_free_result(res);

> }

> 

> exit...

>   free(query);

>   mysql_close(&mysql);

> 



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
       <___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to