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
4.MySQL连接并选择数据库(SQL & C)的更多相关文章
- 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)
第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...
- 配置phpmyadmin使登录时可填写IP管理多台MySQL 连接多个数据库 自动登录
一.如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件, ...
- Java 使用 DBCP mysql 连接池 做数据库操作
需要的jar包有 commons-dbutils , commons-dbcp , commons-pool , mysql-connector-java 本地database.propertties ...
- hue mysql连接不上数据库排查
由于CDH所有的组件都会进行agent检测,所以先到/var/log/cloudera-scm-agent(mysql所在节点进行日志排查),可以发现每次连接会产生一个log路径作为记录hue连接my ...
- (办公)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 ...
- Sequelize 连接微软云数据库 SQL Azure
function getConnection(){ var sequelize=new Sequelize("DBName","sa","000000 ...
- MySql学习 (一) —— 基本数据库操作语句、三大列类型
注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...
- 数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接
前言 DataGrip:Jet Brains出品的一款数据库管理工具(没错,是Jet Brains出品,必属精品).DataGrip整合集成了当前主流数据库(如:SQL Server, MySQL, ...
- (笔记)Mysql命令select:当前选择(连接)的数据库
select命令表示当前选择(连接)的数据库. select命令格式:mysql> select database(); MySQL中SELECT命令类似于其他编程语言里的print或者writ ...
随机推荐
- linux makefile: c++ 编程_基础入门_如何开始?
学习android 终究还是需要研究一下其底层框架,所以,学习c++很有必要. 这篇博客,算是linux(ubuntu) 下学习 c++ 的一个入门. 刚开始学习编程语言的时候,最好还是使用命令行操作 ...
- Linux下文件描述符
http://blog.csdn.net/kumu_linux/article/details/7877770 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的 ...
- Understanding transient variables in Java and how they are practically used in HashMap---reference
What is the significance of the transient keyword in Java? If you know the answer, good! you are a p ...
- Advanced Configuration Tricks
Advanced Configuration Tricks Configuration of zend-mvc applications happens in several steps: Initi ...
- linux 命令学习日记 20160621
1.cat /proc/meminfo 观察Linux系统上虚拟内存的当前状态 2.ipcs -m ipcs命令专门用来查看系统上的当前共享内存页面 3.ls /dev -al sda* ttyS* ...
- 你真的会用 SDWebImage?
SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高.但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage. 使用场景:自定义的UITableViewCell上有 ...
- MySQL(8):数值类型详细分析
1.日期和时间类型 2.varchar和char 固定长度 (char) 或可变长度 (varchar) 字符数据类型. 例如: a char(10)b varchar(10)都存入'abc'a要求 ...
- 零门槛!ZBLibrary仿微信朋友圈自定义View,就是这么简单!
传统方法是继承现有View再重写方法,这种方式缺点很多: 1.往往不能在xml编辑器中预览效果: 2.比较难实现预期效果,比如设置宽度为wrap_content,实际显示为match_parent等: ...
- 例3-13设置ROI
写在前面,写的时候总有种给别人写的感觉,然后就写得很冗长,也没有办法很好的表达自己的想法,总觉得写得越多越好,实则不然,要最言简意赅,还能表达意思. 嗯! 只写自己不明白的地方,如果恰巧有人也看了我的 ...
- typeid关键字
这么看下去太要命了,有太多东西要学了... 而且视频看起来的确费神,费脑,费耳朵. 所以决定由视频驱动转向代码驱动.主攻vs,c++然后先把界面东西做出来,然后在想后面的东西. 所以今天 [先上来看了 ...