mysql源码下载
mysql5.7安装
mysql5.7手册
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40.tar.gz # 下载解压后看INSTALL文件,README文件
安装openssl到 /usr/local/openssl
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.gz
解压boost代码
cmake . -DWITH_SSL=/usr/local/openssl/1.1.1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=~/src
安装完成后mysqld初始化
./sql/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/5.7 --datadir=/data/mysqlfiles
* progname.c
/**
* Compile:
* gcc -c -I/usr/local/mysql/5.7/include ./progname.c -o ./progname.o
* gcc -o ./a.out ./progname.o -L/usr/local/mysql/5.7/lib -lmysqlclient -lpthread -lm -lrt -latomic -ldl
* echo -n "/usr/local/mysql/5.7/lib" >> /etc/ld.so.conf
* /sbin/ldconfig -v
* ./a.out
*/
#include <mysql.h>
#include <stdio.h>
int main() {
MYSQL mysql;
if(mysql_init(&mysql) == NULL) //初始化句柄mysql
{
printf("%d : error : %s\n", __LINE__, mysql_error(&mysql));
exit(1);
}
printf("mysql_handler=%p\n", (void *)&mysql);
if (mysql_library_init(0, NULL, NULL) != 0) //初始化mysql数据库
{
fprintf(stderr, "could not initialize MySQL client library\n");
exit(1);
}
if (NULL == mysql_real_connect(&mysql,
"127.0.0.1","seabig","123456","seabig_ticket",3306,NULL,0))
{
printf("%d : error : %s\n", __LINE__, mysql_error(&mysql));
exit(1);
}
if(mysql_set_character_set(&mysql, "utf8") != 0) //设置中文字符集
{
printf("%d : error : %s\n", __LINE__, mysql_error(&mysql));
exit(1);
}
printf("connect success!\n");
//
//中间部分为程序的主题部分
//
mysql_close(&mysql);
mysql_library_end();
return 0;
}
编译运行:
#!/bin/bash
gcc -c -I/usr/local/mysql/5.7/include ./progname.c -o ./progname.o
gcc -o ./a.out ./progname.o -L/usr/local/mysql/5.7/lib -lmysqlclient -lpthread -lm -lrt -latomic -ldl
# echo -n "/usr/local/mysql/5.7/lib" >> /etc/ld.so.conf
# /sbin/ldconfig -v
./a.out
mysql_handler=0x7ffc9ff45990
connect success!