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'密码')