List:General Discussion« Previous MessageNext Message »
From:Yury Bukhman Date:May 18 1999 6:49pm
Subject:Re: mysql_real_connect problem
View as plain text  
Paul,
your suggestion was right. My program works now. Thank you very much!

Yury

On Mon, 17 May 1999, Paul DuBois wrote:

> At 6:42 PM -0700 5/17/1999, Yury Bukhman wrote:
> >I am trying to create a simple MySQL client program in C. I'm getting a
> >runtime "segmentation fault" error. I could not figure out why. Please,
> >help!
> >
> >____
> >Here is gdb diagnostic:
> >(command: gdb programname core)
> >Program terminated with signal 11, Segmentation fault.
> >find_solib: Can't read pathname for load map: Input/output error
> >
> >#0  0x8049f4d in mysql_real_connect ()
> >
> >____
> >Here is the relevant part of my program:
> >
> >#include <stdio.h>
> >#include "mysql.h"
> >
> >int main(){
> >  MYSQL *mysql;	/*server handle*/
> >  char *host = "localhost";	/*hostname or an IP address*/
> >  char *user = "guest";		/*user ID*/
> >  char *passwd = NULL; /*password*/
> >  char *db = "dom_base";	    /*database name*/
> >  unsigned int port = 0;		    /*TCP-IP port*/
> >  char *unix_socket = "/tmp/mysql.sock";   /*UNIX socket for mysql
> >connection*/
> >  unsigned int client_flag = 0;
> >  char *query;
> >  MYSQL_RES *result;
> >  MYSQL_ROW row;
> >
> >  char *id, *method; /*pdb table field values*/
> >  float resoln, r; /*pdb table field values*/
> >
> >
> >  if(mysql_init(mysql)==NULL){   	/*initialize server handle*/
> >    printf("mysql_init failed\n");
> >    return 1;
> >  }
> >  if(mysql_real_connect(mysql, host, user, passwd, db, port,
> >			unix_socket, client_flag)==NULL){
> >(at this statement, program crushes)
> 
> 
> 
> Not surprising!  You're passing a pointer to a MYSQL structure to
> mysql_init() that doesn't point to anything useful.  You're supposed
> to pass a pointer to an already-allocated structure.
> 
> Try changing this:
> 
> MYSQL *mysql;
> 
> to this:
> 
> MYSQL mysql_struct, *mysql = &mysql_struct;
> 
> 
> Another way of doing this would be to let mysql_init() allocate
> the structure for you by passing NULL.  But then you need to save
> the return value.  You could do this like so:
> 
> MYSQL *mysql;
> 
>   ...
> 
>   if((mysql = mysql_init(mysql))==NULL){   	/*initialize server handle*/
>     printf("mysql_init failed\n");
>     return 1;
>   }
> 
>   ...
> 
> --
> Paul DuBois, paul@stripped
> Northern League Chronicles: http://www.snake.net/nl/
> 
> ---------------------------------------------------------------------
> Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> posting. To request this thread, e-mail mysql-thread3500@stripped
> 
> To unsubscribe, send a message to the address shown in the
> List-Unsubscribe header of this message. If you cannot see it,
> e-mail mysql-unsubscribe@stripped instead.
> 
> 

Thread
mysql_real_connect problemYury Bukhman18 May
  • Re: mysql_real_connect problemSasha Pachev18 May
  • Re: mysql_real_connect problemPaul DuBois18 May
    • Re: mysql_real_connect problemYury Bukhman18 May