4.MySQL连接并选择数据库,SQL & C

在连接了MySQL数据库之后,可以通过SQL命令或者C、PHP、JAVA等程序来指定需要操作的数据库。这里主要介绍SQL命令和相应的C程序。

首先创建用户rick(赋予所有权限)

mysql> grant ALL ON *.* TO rick@localhost IDENTIFIED BY 'rick123'

然后给rick用户创建两个数据库

mysql> \q
# mysqladmin -u rick -p create foo;

# mysqladmin -u rick -p create foo2;

1.SQLl命令

实例,选择数据库foo

root@deamon-H55M-S2:/# mysql -u rick -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.16-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use foo;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

2.C程序

相关函数:MYSQL *mysql_init(MYSQL *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_close(MYSQL *mysql) //关闭连接,通常在程序结束退出时,需要调用该函数进行关闭。

如果mysql是一个空指针,mysql_init函数会分配、初始化以及返回一个新的句柄结构,否则mysql会被重新初始化,并返回该结构的地址。mysql_init 分配的新结构会在调用mysql_close()时被释放。

 例程:

#include<stdio.h>
#include<stdlib.h>
#include<mysql/mysql.h>
int main()
{
        MYSQL my_connect;
        mysql_init(&my_connect);
//以rick的身份连接数据库,并选择使用数据库foo; if(mysql_real_connect(&my_connect,"localhost","rick","rick123","foo",0,NULL,0)) printf("Connect success\n"); else printf("Connect failed\n");     //选择数据库foo2; if(!mysql_select_db(&my_connect,"foo2")) printf("Select Database success\n"); else printf("Select Database failed\n"); }

编译程序:

gcc -I/usr/include/mysql select_db.c -L/usr/lib/mysql -lmysqlclient -o select_db

最后执行程序

./select_db 
Connect success
Select Database success

注意:如果编译的时候显示mysql.h找不到,那么需要安装libmysqlclient-dev

对Ubuntu,Debian等
apt-get install libmysqlclient-dev 
对Centos等
apt-get install libmysqlclient-dev

安装完成后头文件在/usr/include/mysql