老大,原来你连 C 的原理都不会啊?
C 语言所有调用函数,都要有声明,这种外部函数库的调用,都要用他们的 header 文件来声明函数变量等等的东西,编译器会根据实际情况去把这些程序里面的函数调用链接到函数库的正确位置上。
微软的产品因为他垄断了他自己系统的所有功能设计。所以他的系统+他的开发程序+他的开发函数库就不需要 header 文件了,因为它可以设计为 dll 本身含有足够的信息去干别的事情了。所以,你别以为你用了微软的 net ,他就还是 C 语言了。他已经脱离了 C 语言的范围了。
GCC一般情况下是编译器,但编译器是不够的,还需要连接器的工作才行。binutils 里面的软件提供相关的功能。
要知道以前链接到函数库功能,光有 header 和函数库文件本体还是不行的,还需要另外的函数库信息文件来帮助编译器连接器来找到正确的函数入口位置才行的。
你编程 C ,你要选择你所使用的功能调用方法,GCC 一般调用 mysql 有调用外部 dll ,或者程序自己直接链接 mysql 端口,自己分析 mysql 服务进程发送的各种信息!
前一种办法,可以直接选择 mysql 客户端里面的 SDK 来直接获得官方的功能支持,但官方 MySQL 是 GPL 协议发布的,你使用他的功能接口后,你的程序也必须以 GPL 发布,不然你就要去选择其他的函数库,比如 ODBC 的 mysql 库。当然还有第三方的 mysql 功能库可以选择。
不过你要注意,LGPL 必须严格区分你的程序和 LGPL 代码。你必须动态链接到 LGPL 函数库。如果你的程序包含 LGPL 函数库一起发布,且 LGPL 库是你的软件的必备函数库,那么你的程序也必须开源,但不是 GPL 而是 LGPL !
不然你就选择自己写程序直接与 mysql 服务器进行数据传输,不使用第三方功能库。
但我不认为身为一个 Linux 下程序开发人员,会去傻傻的自己写功能函数而不是用现成的函数库。
你所遇到的“非要客户安装 mysql client ”,就是因为你的软件调用了一些非你自己编写的函数调用功能,而为了获取这些函数而需要安装几个 mysql 函数库的问题。
这个问题我想不应该是一个开发人员提出来的吧?
------------------------------------
楼主你还是重新学习 C 语言吧。net 的 C 被微软改的不是真正的 C 语言了,所以你没办法按照 C 的标准去比较 net 和 GCC 的。
而且很多 net 的编程习惯也没办法延续到 GCC 的。
c#界面绘制的时候,底层重绘每次会清除画布背景,然后再全部重新绘制,这才是导致闪烁最主要的原因。于是重载消息发送函数 *** 作,禁掉这条消息。代码如下:
protected override void WndProc(ref Message m)
{
if (mMsg == 0x0014) // 禁掉清除背景消息
return;
baseWndProc(ref m);
}
一、启动mysql服务
(1) rpm方式安装的mysql
-设置自动启动
#ntsysv --level 3
-手工启动
#service mysqld start
(2) 编译安装的mysql
-设置自动启动
#vi /etc/rcd/rclocal
/usr/local/mysql/bin/mysqld_safe&
-手工启动
#/usr/local/mysql/bin/mysqld_safe&
查看文章
mysql服务器(一)2009-06-15 11:18mysql服务器
一 认识和安装mysql
1 认识mysql
(1) mysql是一种网络数据库服务器产品
(2) mysql是开源的免费的
(3) mysql是关系型数据库管理系统,支持SQL
(4) mysql无溢出漏洞
(5) mysql提供丰富的API
(6) mysql提供丰富的数据类型
(7) mysql具较强的移值性
2 安装mysql软件
(1) rpm安装方式
#rpm -ivh perl-CGI
perl-DBI
perl-DBD-MySQL
mysq-
mysql-server
mysql-devel
(2) 编译安装方式
#groupadd mysql
#useradd -g mysql mysql
#tar -xzvf mysql-4119targz
#cd mysql-4119
#/configure --prefix=/usr/local/mysql
#make
#make install
#cp support-files/my-mediumcnf /etc/mycnf
#cd /usr/local/mysql
#bin/mysql_install_db --user=mysql
#chown -R root
#chown -R mysql var
#chgrp -R mysql
3 启动mysql服务
(1) rpm方式安装的mysql
-设置自动启动
#ntsysv --level 3
-手工启动
#service mysqld start
(2) 编译安装的mysql
-设置自动启动
#vi /etc/rcd/rclocal
/usr/local/mysql/bin/mysqld_safe&
-手工启动
#/usr/local/mysql/bin/mysqld_safe&
二、mysql的管理
1 如何连接mysql服务器
(1) Linux客户机
#mysql [-h服务器地址] [-u用户名] [-p口令] [数据库名]
实例:
#mysql
mysql>
#mysql -h19216831 -uadmin -plinux
mysql>
(2) Windows客户机
-利用第三方mysql客户端软件
-利用浏览器连接(服务器必须安装web管理平台,如:phpmyadmin/webmin)
注:webmin的安装方法
#tar -xzvf webmin-125targz
#cd webmin-125
#/setupsh
2 数据库管理
(1) 认识mysql的数据库
-mysql服务器默认建立两个数据库,分别是mysql和test;其中mysql是系统数据库;test是学习数据库
-mysql服务器上的每个数据库都会在相应路径中建立与库同名的目录
-每个数据库可包含若干张表,每张表由frm、MYD和MYI文件构成
(2) 创建数据库
#mysql
mysql>create database 数据库名;
实例:
mysql>create database dbinfo;
(3) 查看服务器上已创建的数据库
#mysql
mysql>show databases;
(4) 打开数据库
#mysql
mysql>use 数据库名;
实例:
mysql>use db1;
(5) 删除数据库
#mysql
mysql>drop database 数据库名;
实例:
mysql>drop database dbinfo;
3 数据表的管理
(1) mysql提供的数据类型
-数字型
TINYINT 1字节
SMALLINT 2字节
MEDIUMINT 3B
INT 4B
BIGINT 8B
FLOAT[(M,D)] 4B
DOUBEL[(M,D)] 8B
DECIMAL(M,D)
-字符串型
char(M)
varchar(M)
tinytext
text
mediumtext
longtext
enum('',)
set()
-日期时间型
date
datetime
time
(2) 创建表
#mysql
mysql>use 数据库;
mysql>create table 表名 (
列名 数据类型 属性/约束;
) 表选项;
列属性/约束:
null/not null 是否允许为null
default 值 定义列的默认值
primary key 定义主键
check 表达式 定义列的取值范围
REFERENCES 表名(列名) 定义外部键
表选项:
TYPE=HEAP/ISAM/MYISAM/INNOBDB/BDB/MERGE //定义数据表引擎类型
实例:
mysql>use db1
mysql>create table users (
->id varchar(10) primary key,
->name varchar(20) not null,
->password varchar(30) not null) TYPE=MYISAM;
(3) 查看数据库中已建立的表
#mysql
mysql>use 数据库;
mysql>show tables;
(4) 查看表的结构
#mysql
mysql>use 数据库;
mysql>describe 表名;
(5) 修改表的结构
#mysql
mysql>use 数据库;
mysql>alter table 表名
add 列定义 //添加列
|drop 列名 //删除列
|add index 索引名 (列名) //添加索引
|drop index 索引名 //删除索引
|modify 列定义 //修改列的定义
|add primary key (列名) //添加主键
|drop primary key //删除主键
|rename 新表名 //修改表名称
实例:mysql>alter table users add memo text;
(6) 向表中插入数据
#mysql
mysql>insert into 表名[(列名,n)] values (值,)
实例:
mysql>insert into users values ('0001','user1','linux','system admin');
(7) 查看表中数据
#mysql
mysql>select 列名 [as 别名] [,n]||表达式
->from 表名[,n]
->[where 条件表达式]
->[order by 列名]
->[group by 列名]
->[having 条件表达式]
实例:
mysql>select from users;
mysql>select user,password from users;
mysql>select user,password from users where name='user1';
mysql>select from users order by id desc;
mysql>select 性别, count() as 人数 from 学生 group by 性别;
(8) 删除表中数据
#mysql
mysql>delete from 表名 [where 条件表达式];
实例:
mysql>delete from users;
mysql>delete from users where name='user1';
(9) 修改表中数据
#mysql
mysql>update 表名 set 列名=值 [where 条件表达式];
实例:
mysql>update users set password='132' where name='user1';
(10) 删除表
#mysql
mysql>drop table 表名;
实例:
mysql>drop table users;
DB2,
Sybase,
Oracle,
MySQL,
ProgreSQL都是数据库的;
至于面向对象编程软件吗,只要是程序设计语言,
可以在windows下没有,没听说在linux下没有的
以上就是关于linux下c语言连接Mysql全部的内容,包括:linux下c语言连接Mysql、如何在Linux下用C语言 *** 作数据库sqlite3、如何在Linux下使用MySQL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)