基于linux中数据库的操作方法以及c语言对其的链接,操作示例,mysql的远程连接

mysql常用操作指令:

mysql -uroot -p连接数据库
show databases;显示所有数据库
use (数据库名)选中某个数据库
select database()选择数据库(与上一条联动)
一行:一条记录,一列:一个字段
创建表时,需要有字段,类型,约束(可选)
                                        整形 不能为空
                                        字符 不能重复
                                        时间 主键
                                                自增
例:create table student(id int,name varchar(20),age int);
插入列表:
insert into 表名 values(字段1,字段2);
查找:select 字段名(列名) from 对象
select * from 对象
修改:
update student set age=20 (where id=1002);
不加括号所有student值改为20
删除:
delete from student(对象) (where id = 1002);
 

c语言链接mysql代码示例:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<mysql/mysql.h>
int main()
{
MYSQL mysql_con;//连接句柄
MYSQL * mysql=mysql_init(&mysql_con);//初始化连接句柄
if(mysql==NULL)
{
exit(1);
}
mysql=mysql_real_connect(mysql,"localhost","root","111111","c2305db",3306,NULL,0);
if(mysql==NULL)
{
printf("connect error\n");
}
printf("连接数据库成功\n");
mysql_close(mysql);
exit(0);
}

实现增加:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<mysql/mysql.h>
int main()
{
MYSQL mysql_con;//连接句柄
MYSQL * mysql=mysql_init(&mysql_con);//初始化连接句柄
if(mysql==NULL)
{
exit(1);
}
mysql=mysql_real_connect(mysql,"localhost","root","111111","c2305db",3306,NULL,0);
if(mysql==NULL)
{
printf("connect error\n");
}
printf("连接数据库成功\n");
char *sql="insert into student values(1004,'小赵',33);";
if(mysql_query(mysql,sql)!=0)//返回0成功
{
    printf("query err\n");
    exit(1);
}
mysql_close(mysql);
exit(0);
}

实现修改(只需更改char* sql语句如下):

char* sql="update student set age=28 where id=1004";

实现删除(同上):

char* sql="delete from student where id=1004";

实现查询:

(ps:MYSQL_RES *指针为内部malloc分配)

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<mysql/mysql.h>
int main()
{
MYSQL mysql_con;//连接句柄
MYSQL * mysql=mysql_init(&mysql_con);//初始化连接句柄
if(mysql==NULL)
{
exit(1);
}
mysql=mysql_real_connect(mysql,"localhost","root","111111","c2305db",3306,NULL,0);
if(mysql==NULL)
{
printf("connect error\n");
}
printf("连接数据库成功\n");
//char *sql="insert into student values(1004,'小赵',33);";
//char* sql="update student set age=28 where id=1004";
//char* sql="delete from student where id=1004";
char* sql="select * from student";
if(mysql_query(mysql,sql)!=0)//返回0成功
{
    printf("query err\n");
    exit(1);
}
MYSQL_RES * r=mysql_store_result(mysql);
if(r==NULL)
{
    printf("result err\n");
    mysql_close(mysql);
    exit(1);
}
int num=mysql_num_rows(r);
if(0==num)
{
    printf("没有查到记录\n");
}
printf("记录行:%d条\n",num);
int count=mysql_field_count(mysql);
printf("列数:%d\n",count);
for(int i=0;i<num;i++)
{
    MYSQL_ROW row =mysql_fetch_row(r);//row[0]代表第一列
    for(int j=0;j<count;j++)
    {
        printf("%s ",row[j]);
    }
    printf("\n");
}
mysql_free_result(r);
mysql_close(mysql);
exit(0);
}

数据库远程连接:

mysql远程连接
1..修改配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
(/etc/mysql/mysql.conf.d/mysqld.cnf)
ip由127.0.0.1改成实际ip地址(0.0.0.0)
2.创建远程登录的用户root
数据库页面
show databases;
use mysql;
show tables;
select user,host,plugin from user;
create user 'root'@'%'identifiedn WITH mysql_native_password by '(密码)';
3.重启服务
exit
sudo su
service mysql restart
mysql -uroot -h(ip地址)
修改访问者权限:
GRANT ALL PRIVILEGES ON "." TO '(目标权限root)'@'%'(identified by'密码')

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值