在前一篇文章中,讲述了如何进行mysql源程序代码的编译链接,但是没有讲述运行情况,在按照上一篇文章代码下进行编译运行后,发现无法链接数据库文件,显然是在mysql_real_connect()函数中出现了问题。在mysql的英文手册中找到关于mysql_real_connect()的如下描述:
     

//函数原型描述mysql中的mysql_real_connect连接参数设置 MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user,
const char *passwd, const char *db, unsigned int port, const char *unix_socket,
unsigned 
long client_flag)
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置Description
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置mysql_real_connect() attempts to establish a connection to a MySQL database engine
running on host. mysql_real_connect() must complete successfully before you can
execute any other API functions that require a valid MYSQL connection handle structure.
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置The parameters are specified 
as follows:
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      The first parameter should be the address of an existing MYSQL structure. Before
 calling mysql_real_connect() you must call mysql_init() to initialize the MYSQL
structure. You can change a lot of connect options with the mysql_options() call.
See Section 
17.2.3.47, Â“mysql_options()”.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      The value of host may be either a hostname or an IP address. If host 
is NULL or the
string
 "localhost", a connection to the local host is assumed. If the OS supports sockets
(Unix) or named pipes (Windows), they are used instead of TCP
/IP to connect to the server.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      The user parameter contains the user
's MySQL login ID. If user is NULL or the empty
string "", the current user is assumed. Under Unix, this is the current login name. Under
 Windows ODBC, the current username must be specified explicitly. See Section 18.1.9.2,
 Â“Configuring a MyODBC DSN on Windows”.

mysql中的mysql_real_connect连接参数设置
    *
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      The passwd parameter contains the password 
for user. If passwd is NULL, only entries
 
in the user table for the user that have a blank (empty) password field are checked for a
match. This allows the database administrator to 
set up the MySQL privilege system in
such a way that users 
get different privileges depending on whether they have specified
a password.
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Note: Do not attempt to encrypt the password before calling mysql_real_connect();
 password encryption 
is handled automatically by the client API.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      db 
is the database name. If db is not NULL, the connection sets the default database
to 
this value.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      If port 
is not 0, the value is used as the port number for the TCP/IP connection. Note
that the host parameter determines the type of the connection.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      If unix_socket 
is not NULL, the string specifies the socket or named pipe that should
 be used. Note that the host parameter determines the type of the connection.
mysql中的mysql_real_connect连接参数设置    
*

mysql中的mysql_real_connect连接参数设置      The value of client_flag 
is usually 0, but can be set to a combination of the following
flags to enable certain features:

mysql中的mysql_real_connect连接参数设置//上面描述了五个参数的主要取值,MYSQL *为mysql_init函数返回的指针,host为null或              // localhost时链接的是本地的计算机,当mysql默认安装在unix(或类unix)系统中,root账户是没// 有密码的,因此用户名使用root,密码为null,当db为空的时候,函数链接到默认数据库,在进行  // mysql安装时会存在默认的test数据库,因此此处可以使用test数据库名称,port端口为0,使用    // unix连接方式,unix_socket为null时,表明不使用socket或管道机制,最后一个参数经常设置为0

mysql中的mysql_real_connect连接参数设置      Flag Name    Flag Description
mysql中的mysql_real_connect连接参数设置      CLIENT_COMPRESS    Use compression protocol.
mysql中的mysql_real_connect连接参数设置      CLIENT_FOUND_ROWS    Return the number of found (matched) rows, not the number of
 changed rows.
mysql中的mysql_real_connect连接参数设置      CLIENT_IGNORE_SPACE    Allow spaces after function names. Makes all functions names
reserved words.
mysql中的mysql_real_connect连接参数设置      CLIENT_INTERACTIVE    Allow interactive_timeout seconds (instead of wait_timeout
seconds) of inactivity before closing the connection. The client
's session wait_timeout
variable is set to the value of the session interactive_timeout variable.

mysql中的mysql_real_connect连接参数设置
      CLIENT_LOCAL_FILES    Enable LOAD DATA LOCAL handling.
mysql中的mysql_real_connect连接参数设置      CLIENT_MULTI_STATEMENTS    Tell the server that the client may send multiple
statements 
in a single string (separated by Â‘;Â’). If this flag is not set,
multiple
-statement execution is disabled. Added in MySQL 4.1.
mysql中的mysql_real_connect连接参数设置      CLIENT_MULTI_RESULTS    Tell the server that the client can handle multiple result
sets from multiple
-statement executions or stored procedures. This is automatically
set
 if CLIENT_MULTI_STATEMENTS is set. Added in MySQL 4.1.
mysql中的mysql_real_connect连接参数设置      CLIENT_NO_SCHEMA    Don
't allow the db_name.tbl_name.col_name syntax. This is for
ODBC. It causes the parser to generate an error if you use that syntax, which is useful
 for trapping bugs in some ODBC programs.

mysql中的mysql_real_connect连接参数设置
      CLIENT_ODBC    The client is an ODBC client. This changes mysqld to be more
 ODBC
-friendly.
mysql中的mysql_real_connect连接参数设置      CLIENT_SSL    Use SSL (encrypted protocol). This option should not be 
set by
application programs; it 
is set internally in the client library. Instead, use
mysql_ssl_set() before calling mysql_real_connect().
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置For some parameters, it 
is possible to have the value taken from an option file rather
than from an 
explicit value in the mysql_real_connect() call. To do this, call
mysql_options() with the MYSQL_READ_DEFAULT_FILE or MYSQL_READ_DEFAULT_GROUP option
before calling mysql_real_connect(). Then, 
in the mysql_real_connect() call, specify
the Â“no
-value” value for each parameter to be read from an option file:
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For host, specify a value of NULL or the empty 
string ("").
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For user, specify a value of NULL or the empty 
string.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For passwd, specify a value of NULL. (For the password, a value of the empty 
string in
 the mysql_real_connect() call cannot be overridden in an option file, because the empty
string indicates explicitly that the MySQL account must have an empty password.)
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For db, specify a value of NULL or the empty 
string.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For port, specify a value of 
0.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      For unix_socket, specify a value of NULL. 
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置If no value 
is found in an option file for a parameter, its default value is used as
indicated 
in the descriptions given earlier in this section.
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置Return Values
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置A MYSQL
* connection handle if the connection was successful, NULL if the connection
was unsuccessful. For a successful connection, the 
return value is the same as the value
of the first parameter.
// 返回值:当连接成功时,返回MYSQL连接句柄,失败,返回NULL。当成功时,返回值与第一个参数值是// 相同的。
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置Errors
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_CONN_HOST_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to connect to the MySQL server.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_CONNECTION_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to connect to the local MySQL server.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_IPSOCK_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to create an IP socket.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_OUT_OF_MEMORY
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Out of memory.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_SOCKET_CREATE_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to create a Unix socket.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_UNKNOWN_HOST
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to find the IP address 
for the hostname.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_VERSION_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      A protocol mismatch resulted from attempting to connect to a server with a client
library that uses a different protocol version. This can happen 
if you use a very old
client library to connect to a 
new server that wasn't started with the --old-protocol
option.

mysql中的mysql_real_connect连接参数设置
    *
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_NAMEDPIPEOPEN_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to create a named pipe on Windows.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_NAMEDPIPEWAIT_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to wait 
for a named pipe on Windows.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_NAMEDPIPESETSTATE_ERROR
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      Failed to 
get a pipe handler on Windows.
mysql中的mysql_real_connect连接参数设置    
*
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      CR_SERVER_LOST
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置      If connect_timeout 
> 0 and it took longer than connect_timeout seconds to connect to
the server or 
if the server died while executing the init-command. 
mysql中的mysql_real_connect连接参数设置
mysql中的mysql_real_connect连接参数设置
    因此mysql_real_connect()函数调用为:
       mysql_real_connect(mysql,"localhost","root",NULL,"test",0,NULL,0);
判断是否出错,出错调用mysql_error()函数显示出错信息,或使用mysql_errno()函数获取出错代号。

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2021-12-07
  • 2021-12-02
  • 2022-01-25
  • 2021-09-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
  • 2021-04-18
  • 2021-12-22
相关资源
相似解决方案