linux mysql init,Linux 数据库学习---mysql创建数据库、表

87bb2c472df358b7bb35c0372b1c8bbf.png

e16f3b9b98f5d8bf2cc0808ecbd3c090.png

85d04e9cf5e3ca142705e06e17104705.png

然后进入数据库中查看:

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| xll_db             |

+--------------------+

4 rows in set (0.13 sec)

也可以通过使用mysql_options(),MySQL库将读取my.cnf文件的[client]和[your_prog_name]部分,详见mysql_real_connect.

对于某些参数,能够从选项文件获得取值,而不是取得mysql_real_connect()调用中的确切值。为此,在调用mysql_real_connect()之前,应与MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP选项一起调用mysql_options()。随后,在mysql_real_connect()调用中,为准备从选项文件读取值的每个参数指定“无值”值: ·

对于host,指定NULL值或空字符串("")。 ·

对于user,指定NULL值或空字符串。 ·

对于passwd,指定NULL值。(对于密码,mysql_real_connect()调用中的空字符串的值不能被选项文件中的字符串覆盖,这是因为,空字符串明确指明MySQL账户必须有空密码)。 ·

对于db,指定NULL值或空字符串 ·

对于port,指定“0”值。 ·

对于unix_socket,指定NULL值。 对于某一参数,如果在选项文件中未发现值,将使用它的默认值

8973454e2cff7b2ae25c174c66b554da.png

MYSQL *mysql_init(MYSQL *mysql)

描述

分配或初始化与mysql_real_connect()相适应的MYSQL对象。

如果mysql是NULL指针,该函数将分配、初始化、并返回新对象。否则,将初始化对象,并返回对象的地址。

如果mysql_init()分配了新的对象,当调用mysql_close()来关闭连接时。将释放该对象。

返回值

初始化的MYSQL*句柄。如果无足够内存以分配新的对象,返回NULL。

错误

在内存不足的情况下,返回NULL

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_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须成功完成

参数的指定方式如下: ·

第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,必须调用mysql_init()来初始化MYSQL结构。通过mysql_options()调用,可更改多种连接选项。请参见25.2.3.48节,“mysql_options()”。 ·

“host”的值必须是主机名或IP地址。如果“host”是NULL或字符串"localhost",连接将被视为与本地主机的连接。如果操作系统支持套接字(Unix)或命名管道(Windows),将使用它们而不是TCP/IP连接到服务器。 ·

“user”参数包含用户的MySQL登录ID。如果“user”是NULL或空字符串"",用户将被视为当前用户。在UNIX环境下,它是当前的登录名。在Windows ODBC下,必须明确指定当前用户名。·

“passwd”参数包含用户的密码。如果“passwd”是NULL,仅会对该用户的(拥有1个空密码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置MySQL权限系统,根据用户是否拥有指定的密码,用户将获得不同的权限。 调用mysql_real_connect()之前,不要尝试加密密码,密码加密将由客户端API自动处理。

·       “db”是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。 ·

如果“port”不是0,其值将用作TCP/IP连接的端口号。注意,“host”参数决定了连接的类型。 ·

如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。

client_flag的值通常为0,但是,也能将其设置为下述标志的组合,以允许特定功能:

be5dae334903679867c48d4d8b9dd327.png

634c7c9798cd90f7ebd36649f5185a40.png

对于某些参数,能够从选项文件获得取值,而不是取得mysql_real_connect()调用中的确切值。为此,在调用mysql_real_connect()之前,应与MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP选项一起调用mysql_options()。随后,在mysql_real_connect()调用中,为准备从选项文件读取值的每个参数指定“无值”值: ·

对于host,指定NULL值或空字符串("")。 ·

对于user,指定NULL值或空字符串。 ·

对于passwd,指定NULL值。(对于密码,mysql_real_connect()调用中的空字符串的值不能被选项文件中的字符串覆盖,这是因为,空字符串明确指明MySQL账户必须有空密码)。 ·

对于db,指定NULL值或空字符串 ·

对于port,指定“0”值。 ·

对于unix_socket,指定NULL值。 对于某一参数,如果在选项文件中未发现值,将使用它的默认值

返回值

如果连接成功,返回MYSQL*连接句柄。如果连接失败,返回NULL。对于成功的连接,返回值与第1个参数的值相同。

错误

CR_CONN_HOST_ERROR  无法连接到MySQL服务器。 ·

CR_CONNECTION_ERROR  无法连接到本地MySQL服务器。 ·

CR_IPSOCK_ERROR  无法创建IP套接字。 ·

CR_OUT_OF_MEMORY  内存溢出。  ·

CR_SOCKET_CREATE_ERROR  无法创建Unix套接字。 ·

CR_UNKNOWN_HOST  无法找到主机名的IP地址。 ·

CR_VERSION_ERROR  协议不匹配,起因于:试图连接到具有特定客户端库(该客户端库使用了不同的协议版本)的服务器。如果使用很早的客户端库来建立与较新的服务器(未使用“--old-protocol”选项开始的)的连接,就会出现该情况。 ·

CR_NAMEDPIPEOPEN_ERROR  无法在Windows平台下创建命名管道。 ·

CR_NAMEDPIPEWAIT_ERROR  在Windows平台下等待命名管道失败。 ·

CR_NAMEDPIPESETSTATE_ERROR  在Windows平台下获取管道处理程序失败。

CR_SERVER_LOST  如果connect_timeout > 0,而且在连接服务器时所用时间长于connect_timeout秒,或在执行init-command时服务器消失。

int mysql_query(MYSQL *mysql, const char *query)

描述

执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)或“\g”。如果允许多语句执行,字符串可包含多条由分号隔开的语句。

mysql_query()不能用于包含二进制数据的查询,应使用mysql_real_query()取而代之(二进制数据可能包含字符‘\0’,mysql_query()会将该字符解释为查询字符串结束)。 如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。

返回值

如果查询成功,返回0。如果出现错误,返回非0值。

错误

·         CR_COMMANDS_OUT_OF_SYNC  以不恰当的顺序执行了命令。  ·

CR_SERVER_GONE_ERROR  MySQL服务器不可用。  ·

CR_SERVER_LOST  在查询过程中,与服务器的连接丢失。  ·

CR_UNKNOWN_ERROR  出现未知

2函数原型编辑

int mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg);

3说明编辑

可用于设置额外的连接选项,并影响连接的行为。可多次调用该函数来设置数个选项。

应在mysql_init()之后、以及mysql_connect()或 mysql_real_connect()之前调用mysql_options()。

选项参量指的是你打算设置的选项。Arg参量是选项的值。如果选项是整数,那么arg应指向整数的值。

注意,如果使用了MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP,总会读取客户端组。

选项文件中指定的组可能包含下述选项:

选项

描述

connect-timeout

以秒为单位连接超时,该超时也用作等待服务器首次回应时间

compress

使用压缩客户端/服务器协议。

database

如果在连接命令中未指定数据库,连接到该数据库。

debug

调试选项。

disable-local-infile

禁止使用LOAD DATA LOCAL。

host

默认主机名。

init-command

连接到MySQL服务器时将执行的命令。

interactive-timeout

等同于将CLIENT_INTERACTIVE指定为mysql_real_connect()。

local-infile[=(0|1)]

如果无参量或参量!= 0,那么将允许使用LOAD DATA LOCAL。

max_allowed_packet

客户端能够从服务器读取的最大信息包。

multi-results

允许多语句执行或存储程序的多个结果集。

multi-statements

允许客户端在1个字符串内发送多条语句。(由“;”隔开)。

password

默认密码。

pipe

使用命名管道连接到NT平台上的MySQL服务器。

protocol={TCP | SOCKET | PIPE | MEMORY}

连接到服务器时将使用的协议。

port

默认端口号。

return-found-rows

通知mysql_info()返回发现的行,而不是使用UPDATE时更新的行。

shared-memory-base-name=

name

共享内存名称,用于连接到服务器(默认为"MYSQL")。

socket

默认的套接字文件。

user

默认用户。

注意,“timeout”(超时)已被“connect-timeout”(连接超时)取代,但为了保持 向后兼容,在MySQL 5.1.2-alpha中仍支持“timeout”(超时)。

该函数成功时返回0。如果使用了未知选项,返回非0值。

4范例编辑

MYSQL mysql;

mysql_init(&mysql);

mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);

mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");

if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))

{

fprintf(stderr, "Failed to connect to database: Error: %s\n",

mysql_error(&mysql));

}

该代码请求 客户端使用压缩客户端/服务器协议,并从my.cnf文件的obdc部分读取额外选项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值