Vs2010 连接 Mysql 数据库方法
下载 MySQL 5.5.13 正式版:http://www.xiazaiba.com/html/361.html
-------------------------------------------
操作系统:winxp-32bit
数据库:MySQL Server 5.5
(安装路径:D:\Program Files\MySQL\MySQL Server 5.5)
IDE: Microsoft Visual Studio 2010 untimate/Professional
(以上东西都是完整安装的)
-------------------------------------------
一、VC 设置
1、新建一个工程,随便写一个 helloworld,目的是就是让工程下的“debug”文件夹出现
2、把 D:\Program Files\MySQL\MySQL Server 5.5\lib 下面的 libmysql.dll 复制到工程的
debug 文件夹里面
3、接下来要设置一些引用文件的环境变量,首先,点击项目->属性->vc++目录。
然后“include 目录”那把“D:\Program Files\MySQL\MySQL Server 5.5\include”给加
进来
再然后“lib 目录”那里把“D:\Program Files\MySQL\MySQL Server 5.5\lib”也一起加
进来
VC6.0 设置:
(1)打开 VC6.0 工具栏 Tools 菜单下的 Options 选项,在 Directories 的标签页中右边的
“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加
你本地安装 MySQL 的 include 目录路径。(我的是 D:\Program Files\MySQL\MySQL Server
5.5\include)。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后
添加你本地安装 MySQL 的 Lib 目录路径。Lib 目录下有 debug 目录,选 debug。(我的是
D:\Program Files\MySQL\MySQL Server 5.5\lib\debug)。
4、然后在项目->属性窗口下点击:连接器->输入->附加依赖项,把"libmysql.lib"写进去
VC6.0 设置:在“Project settings->Link:Object/library modules”里面添加
“libmysql.lib”。
使用 VC++编译时再添加以下项:
5、在 stdafx.h 里面添加如下的内容:
#include "mysql.h"
#include "winsock.h" // 如果编译出错,则把该行放到#include "mysql.h"之前#pragma
comment(lib,"libmySQL.lib") // 如果在附加依赖项里已增加,则就不要添加了
二、数据库的相关操作
1、打开“开始->所有程序->MySQL->MySQL Server 5.5->MySQL Command Line Client.exe”,
如果有密码就输入密码,没有设置密码就直接按回车,会提示服务器启动成功。
2、显示所有的数据库
mysql> show databases;注意一定要 敲“;”后再按回车
3、创建数据库 mydb
mysql> create database mydb;
4、选择你所创建的数据库 mydb
mysql> use mydb;
5、显示数据库中的表
mysql> show tables;
因为是新创建的数据库,所以为空
6、创建一个表
mysql> create table tettable (id int(3) auto_increment not null primary key,time
datetime,name char(10) not null,address varchar(20),year date,s1 char(11) ,s2 int
default ‘1’ )
注:在建表中:
(1)将 ID 设为长度为 3 的数字字段:int(3)并让它每个记录自动加一:auto_increment 并
不能为空:not null,而且让他成为主字段 primary key。
(2)将 time 设为日期时间字段。
(3)将 NAME 设为长度为 10 的字符字段。并不能为空:not null
(4)将 ADDRESS 设为长度 20 的字符字段,而且缺省值为深圳。varchar 和 char 有什么区
别呢,只有等以后的文章再说了。
(4)将 YEAR 设为日期字段。
(5)将 S1 设为长度为 11 的字符字段
(6)将 S2 设为数字字段 int,而且缺省值为 1
7、显示表的结构
mysql> describe testtable;
8、实现添加数据到表
mysql> insert into testtable values('1','2010-10-08', 'bj','深圳一中
','2010-10-08','MySQLTest',20);
mysql> insert into testtable values('2','2010-10-08', 'jj','深圳二中
','2010-10-08','MySQLTest2',20);
9、显示表中的记录
mysql> select * from testtable;
select * from testtable where name
= “bj”;
mysql>
10、实现修改功能
mysql>
mysql> select * from testtable;
update testtable set address =
"桃园县一中" where name
= "jj";
11、实现删除功能
mysql> delete from testtable where name
= "jj";
mysql> delete from testtable where id>4;
mysql> delete from testtable where id>4 and id<9;
12、删库和删表:
drop database 库名;
drop table 表名;
13、将表中记录清空:
delete from 表名;
14、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用 tab 键隔开,null 值用\n 来代替.
例:
3 1976-10-10 rose 深圳二中 1976-10-10 mysql1 22
4 1976-10-10 mike 深圳一中 1975-12-23 mysql2 24
2、数据传入命令 load data local infile "文件名" into table 表名;
注意:你最好将文件复制到\mysql\bin 目录下,并且要先用 use 命令打表所在的库 。
15、备份数据库:(命令在 DOS 的\mysql\bin 目录下执行)
mysqldump --opt 数据库或表名 -u root -p 密码 > F:\mydb.bbb
mysqldump --opt mydb -u root -p111 > F:\mydb.sql
注释:将数据库 mydb 备份到 F 盘 mydb.bbb 文件,mydb.sql 是一个文本文件,文件名任取,
打开看看你会有新发现。-u 后空格,指定用户名,必需,-p 指定密码,注意后面直接跟密
码不能空格,如果不填密码,再在后面输入即可。
16、导入数据库
从 e:\MySQL\mydb2.sql 中将文件中的 SQL 语句导入数据库中:
1.从命令行进入 MySQL,然后用命令 CREATE DATABASE mydb2;创建数据库 mydb2。
2.退出 MySQL 可以输入命令 exit;或者 quit;
3.在 CMD 中输入下列命令:
c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql
17、MySql 密码修改
格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
1、给 root 加个密码 ab12。首先在 DOS 下进入目录 mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时 root 没有密码,所以-p 旧密码一项就可以省略了。
2、再将 root 的密码改为 djg345。
mysqladmin -u root -pab12 password djg345
(注意:和上面不同,下面的因为是 MYSQL 环境中的命令,所以后面都带一个分号作为命令
结束符)
3、命令行修改 root 密码:
>use mysql
>update user set password=password(”djg345”) where user=”root”;
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。
4、显示当前的 user:
mysql> SELECT USER();
MYSQL 增加用户
命令方式的.注意每行后边都跟个; 表示一个命令语句结束.
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例 1、增加一个用户 user 密码为 1234,让他可以在任何主机上登录,并对所有数据库有查
询、插入、修改、删除的权限。首先用以 root 用户连入 MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to
user@"%" identified by "1234";
但例 1 增加的用户是十分危险的,你想如某个人知道 test1 的密码,那么他就可以在
internet 上的任何一台电脑上登录你的 mysql 数据库并对你的数据可以为所欲为了,解决
办法见例 2。
例 2、增加一个用户 user 密码为 1234,让他只可以在 localhost 上登录,并可以对数据库
mydb 进行查询、插入、修改、删除的操作 (localhost 指本地主机,即 MYSQL 数据库所在
的那台主机),这样用户即使用知道 user 的密码,他也无法从 internet 上直接访问数据 库,
只能通过 MYSQL 主机上的 web 页来访问了。
grant select,insert,update,delete on *.* to
grant select,insert,update,delete on mydb.* to
"1234";
identified by "1234";
user@localhost
user@localhost
identified by
如果你不想 test2 有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on *.* to
grant select,insert,update,delete on mydb.* to
user@localhost
user@localhost
identified by "";
identified by "";
18、关于排序与选择
1)em_site_access 表信息如下:
2)按字段 USER_ID 递增排序
select * from em_site_access order by USER_ID; 递增排序
3)按字段 USER_ID 递减排序,在后面添加 desc 就行了
select * from em_site_access order by USER_ID desc; 递减排序
4)按字段 USER_ID,SITE_CODE 递减排序
select * from em_site_access order by USER_ID desc,SITE_CODE desc;
5)选择字段值为 SITE_CODE=00060 项并按字段 USER_ID 递增排序
select * from em_site_access where SITE_CODE=00060 order by USER_ID;
6)选择字段值同时满足 SITE_CODE=00060 和 USER_ID=922 项
select * from em_site_access where SITE_CODE=00060 and USER_ID=922;
1
linux 平台及 windows 平台 mysql 重启方法
Linux 下重启 MySQL 的正确方法:
1.启动:/etc/init.d/mysqld start
2.停止:/etc/init.d/mysqld stop
3.重启:/etc/init.d/mysqld restart
启动:# service mysqld start
停止:# service mysqld stop
重启:# service mysqld restart
Windows
1.点击“开始”->“运行”(快捷键 Win+R)。
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
* Windows 下不能直接重启(restart),只能先停止,再启动。
后记:其实 MYSQL 的对数据库的操作与其它的 SQL 类数据库大同小异,最好找本将 SQL 的书
看看。在这里只介绍一些基本的。最好的 MYSQL 教程还是"晏子"译的"MYSQL 中文参考手册"
不仅免费,每个相关网站都有下载,而且它是最权威的。(down load here)
三、C++编程
#include
#include
#include
#include
#include
int main()
{
">">附件
//connectionparams
char *host = "localhost";
char *user = "root";
char *pass = "111";//你的 mysql 服务器密码
char *db = "MySql";
unsigned int port = 3306; //server port
MYSQL *sock;
MYSQL_RES *res;
MYSQL_FIELD * fd;
MYSQL_ROW row;
char szSqlText[500]="";
int i;
int tcreate=0;
sock=mysql_init(0);
if(sock && mysql_real_connect(sock,host,user,pass,db,0,NULL,0))
{
std::cout<<"connect mysql succeed!"<