在连接了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

 

4.MySQL连接并选择数据库(SQL & C)的更多相关文章

  1. 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)

    第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...

  2. 配置phpmyadmin使登录时可填写IP管理多台MySQL 连接多个数据库 自动登录

    一.如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件, ...

  3. Java 使用 DBCP mysql 连接池 做数据库操作

    需要的jar包有 commons-dbutils , commons-dbcp , commons-pool , mysql-connector-java 本地database.propertties ...

  4. hue mysql连接不上数据库排查

    由于CDH所有的组件都会进行agent检测,所以先到/var/log/cloudera-scm-agent(mysql所在节点进行日志排查),可以发现每次连接会产生一个log路径作为记录hue连接my ...

  5. (办公)mysql连接不上(java.sql.SQLException: null, message from server: "Host 'LAPTOP-O0GA2P8J' is not allowed to connect to this MySQL server")(转)

    转载自csdn文章:https://blog.csdn.net/Tangerine_bisto/article/details/803461511.对所有主机进行访问授权 GRANT ALL PRIV ...

  6. Sequelize 连接微软云数据库 SQL Azure

    function getConnection(){ var sequelize=new Sequelize("DBName","sa","000000 ...

  7. MySql学习 (一) —— 基本数据库操作语句、三大列类型

    注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...

  8. 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接

    前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...

  9. (笔记)Mysql命令select:当前选择(连接)的数据库

    select命令表示当前选择(连接)的数据库. select命令格式:mysql> select database(); MySQL中SELECT命令类似于其他编程语言里的print或者writ ...

随机推荐

  1. 拼接json示例 json分页并显示所有页码

    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%&g ...

  2. 修改cas登陆页面-服务器端

    原文地址:http://www.cnblogs.com/liveandevil/archive/2013/03/06/2946341.html 1.cas统一认证的登陆页面位于:cas目录/WEB-I ...

  3. 一个实际的sonar代码检查的配置文件

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心

    C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...

  5. mysql-connector-python

    wget http://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz tar mysql- ...

  6. 编写一个程序,从标准输入中读取若干string对象并查找连续重复出现的单词。所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词

    #include<iostream> #include<string> #include<vector> using namespace std; int main ...

  7. ajax 用xml传递数据

    页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Index.aspx. ...

  8. android开发问题汇总

    android开发问题汇总 一. 无法创建新android项目 在eclipse创建新项目时出现: this template depends on the android support libra ...

  9. Helpers\Data

    Helpers\Data Data helper contains a bunch of useful methods for looking at and altering your data. D ...

  10. 内网架设SVN服务器相关设置

    环境说明:        外网IP为静态IP,工作室内有多台电脑,公用一台路由器.想要在某台电脑上架设SVN服务器,方便团队开. 解决方案: 一.准备工作1.获取 Subversion 服务器程序到官 ...