易截截图软件、单文件、免安装、纯绿色、仅160KB

gcc 编译多线程文件和含MySql数据库操作文件

gcc 强大的编译器就不作介绍了
linux下用gcc命令编译多线程C程序文件和含有MySql数据库操作文件
1.编译多线程文件
gcc -o mylti_thread.o multi_thread.c -lpthread
其中的multi_thread.c表示源文件,mylti_thread.o表示编译产生的目标文件,-lpthread表示引入多线程库,在《Using the GNU Compiler Collection》gcc 4.30 中关于-lpthread的描述如下:
-lpthread      Add support for multithreading using the POSIX threads library. This option sets flags for both the preprocessor and linker. It does not affect the thread safety of object code produced by the compiler or that of libraries supplied with it. These are HP-UX specific flags. 要不然会出现类似以下错误
/tmp/cc20DpmC.o: In function `main':
multi_thread.c:(.text+0x78): undefined reference to `pthread_create'
multi_thread.c:(.text+0xe2): undefined reference to `pthread_create'
multi_thread.c:(.text+0xf6): undefined reference to `pthread_join'
multi_thread.c:(.text+0x10a): undefined reference to `pthread_join'
2.编译MySql数据库操作文件
gcc -o sqltest.o sqltest.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
或者gcc -o sqltest $(mysql_config --cflags) sqltest.c $(mysql_config --libs)
   参见网址 http://blog.163.com/zhangjinqing1234@126/blog/static/30730260200992251411161/
其中的sqltest.c表示源文件,sqltest.o表示编译产生的目标文件,-I表示指定头文件的默认搜索路径,-L表示指定要链接的库,同上面-l,具体可参见网址
http://blog.csdn.net/zhulinfeiba/archive/2009/08/20/4464727.aspx
-I后面的参数/usr/include/mysql可能会因为MySql安装的路径不同而有所改变,在终端输入:whereis mysql,结果如下:
mysql: /usr/bin/mysql /etc/mysql /usr/lib/mysql /usr/include/mysql
/usr/share/mysql /usr/share/man/man1/mysql.1.gz
再cd /usr/include/mysql
,然后 ls
decimal.h       my_dir.h         mysqld_error.h   sql_common.h
errmsg.h        my_getopt.h      mysql_embed.h &n


相关文档:

MySQL命令

1. 连接mysql:
mysql -h 主机地址 -u 用户名 -p
2.退出mysql:exit
3. 修改密码:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword
4.增加用户:
添加一个用户test1 密码为ABC;让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入
mysql,然后键入以下命 ......

mysql新增用户和登录


新增用户:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的远端ip' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
如:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.19.220' IDENTIFIED BY '123456' WITH GRANT OPTION;
登录到新增的用户:(假如原授权机的IP为10.10.19.222)
mysql -uroot  -p123456&n ......

mysql存储过程中参数的in,out,inout区别


MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
1、IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值
2、OUT 输出参数:该值可在存储过程内部被改变,并可返回
3、I ......

Mysql外键约束

1.myisam表不支持外键,innodb才支持外键
2.mysql外键的列类型和主表中相应的主键列类型必须一致,即类型一致、长度一致,否则会报错。ERROR 1005: Can't create table (errno: 150)
3.在一个数据库中外键名字不能重复,否则会报ERROR 1005: Can't create table 'XXXXXX' (errno: 121) ......

mysql中的union和order by、limit

我有一个表
CREATE TABLE `test1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `desc` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
(1)以下查询会报错误:[Err] 1221 - Incorrect usage of UNION and ORDE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号