Ubuntu 下C程序连接mysql 编译问题
2018-01-12 00:19
309 查看
环境: Ubuntu 16.4
执行上面3个命令就可以安装成功mysql了
原因是没有安装libmysqlclient-dev,执行下面命令即可:
原因是没有找到编译的库,网上很多方法显示编译时命令为:
和
实际上上面库的路径都不对。通过
这样就可以通过以下命令来编译了:
MSVCR120.dll
解决:
http://www.jb51.net/article/119369.htm?utm_source=debugrun&utm_medium=referral
安装mysql:
$sudo apt-get install mysql-server
$apt-get isntall mysql-client
$sudo apt-get install libmysqlclient-dev
执行上面3个命令就可以安装成功mysql了
查看mysql状态
$ps aux | grep mysql
$sudo netstat -tap | grep mysql
登录mysql
$mysql -u root -p输入Ubuntu登录密码就可以了
查看所有数据库
mysql> show databases;
使用数据库
mysql> use project;
创建数据库
mysql> create database linyk3;
查看所有表
mysql> show tables;
写一个C程序
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char server[] = "localhost"; char user[] = "root"; char password[] = " "; char database[] = "mysql"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); printf("MySQL Tables in mysql database:\n"); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s \n", row[0]); } mysql_free_result(res); mysql_close(conn); printf("finish! \n"); return 0; }
编译出错
致命错误: mysql.h:没有那个文件或目录
原因是没有安装libmysqlclient-dev,执行下面命令即可:
$sudo apt-get install libmysqlclient-dev
linyk3@ThinkPad:~/github$ gcc mysql-hello.c /tmp/cc24OZKq.o:在函数‘main’中: mysql-hello.c:(.text+0x53):对‘mysql_init’未定义的引用 mysql-hello.c:(.text+0x80):对‘mysql_real_connect’未定义的引用 mysql-hello.c:(.text+0x95):对‘mysql_error’未定义的引用 mysql-hello.c:(.text+0xcc):对‘mysql_query’未定义的引用 mysql-hello.c:(.text+0xdc):对‘mysql_error’未定义的引用 mysql-hello.c:(.text+0x10e):对‘mysql_use_result’未定义的引用 mysql-hello.c:(.text+0x143):对‘mysql_fetch_row’未定义的引用 mysql-hello.c:(.text+0x15a):对‘mysql_free_result’未定义的引用 mysql-hello.c:(.text+0x166):对‘mysql_close’未定义的引用 collect2: error: ld returned 1 exit status
原因是没有找到编译的库,网上很多方法显示编译时命令为:
gcc -o conn conn.c -L /usr/local/mysql/lib/*.a -lz
和
g++ main.cpp mysql_deal.cpp -I/usr/include/mysql -L/usr/bin/mysql -lmysqlclient
实际上上面库的路径都不对。通过
mysql_config –libs命令可以查看本地的库的目录:
这样就可以通过以下命令来编译了:
g++ -Wall mysql-hello.cpp -o mysql-hello -L/usr/lib/x86_64-linux-gnu -lmysqlclient
MSVCR120.dll
解决:
http://www.jb51.net/article/119369.htm?utm_source=debugrun&utm_medium=referral
相关文章推荐
- ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:
- 转载 用C连接MySQL数据库程序的编译问题
- 解决WIN7编译出的程序无法连接其他数据库的问题。
- 解决netbean7.1.2在Ubuntu下面编译程序报undefined reference to问题
- ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:
- Web程序连接MySql提示表找不到问题的分析
- ubuntu 系统解决mysql连接问题(ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO))
- window下连接ubuntu mysql的问题
- 解决ubuntu下mysql不能远程连接数据库的问题
- Ubuntu下MySQL不能连接问题的解决 MESSAGE: java.net.ConnectException: Connection refused
- 解决ubuntu下mysql不能远程连接数据库的问题
- eclipse Ubuntu 连接mysql 中文乱码问题
- QT连接mysql、oracle数据库可执行程序的移植性问题
- 静态编译mysql库到程序中遇到的问题
- 解决ubuntu下mysql不能远程连接数据库的问题
- ubuntu 系统解决mysql连接问题 (ERROR 1045(28000))
- ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题
- 转 解决64位ubuntu上编译32bit程序的问题
- Ubuntu mysql 不能远程连接的问题 (转载)
- mysql第一次装上后,不能用java或其他程序语言连接问题