加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux数据库的安装配置、数据库C程序连接

发布时间:2023-01-09 10:52:49 所属栏目:Unix 来源:
导读:  一、数据库的安装和配置 1. 数据库的安装

  2. 配置

  (1)先查看数据库状态(service mysql status),如果没有启动,执行启动命令(service mysql start)

  (2)mysql -uroot -p在root状态执
  一、数据库的安装和配置 1. 数据库的安装
 
  2. 配置
 
  (1)先查看数据库状态(service mysql status),如果没有启动,执行启动命令(service mysql start)
 
  (2)mysql -uroot -p在root状态执行unix数据库,进入数据库(什么也不用输入,再敲回车就可以直接进入mysql)

  (3)mysql_secure_installation设置数据库不进行密码强校验(N)
 
  (4)设置root管理员密码,是数据库管理员的。是两遍。
 
  (5)设置是否要删除匿名用户,这里不删除。(N)
 
  (6)设置是否允许root用户远程登录,这里设置允许。(Y)
 
  (7)是否删除数据库,这里选择不删除。(N)
 
  (8)设置修改的权限立即生效,此时所有配置初始化完成。(Y)
 
  3. 常用命令
 
  service mysql status查看数据库状态
 
  service mysql start启动数据库
 
  service mysql restart重启数据库
 
  service mysql stop数据库停止
 
  quit或exit或ctrl+d退出数据库
 
  显示数据库版本
 
  显示时间
 
  4. 用户管理与授权

  GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' identified by '密码'
  GRANT ALL ON database_name.table_name TO 'user_name'@'localhost'
  REMOVE SELECT ON database_name.table_name from 'user_name'@'localhost'(取消查询权限)
  复制代码

  二、数据库C程序连接 1. 安装C/C++开发库
 
  切换到root下,执行apt install libmysqlclient-dev
 
  2. C语言访问mysql
 
  #include
  复制代码
  有些也在 #include
 
  程序中使用了访问mysql的有关函数接口,需要在链接时指定库名: linux平台为 -lmysqlclient
 
  MYSQL *mysql_init(MYSQL *mysql);
  复制代码
  该方法用来初始化一个连接句柄,如果参数为空,则返回一个指向新分配的连接句柄的指针。如果传递一个已有的结构,它将被重新初始化。出错时返回为NULL。
 
  MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,
                          const char *user, const char *passwd,
                          const char *db, unsigned int port,
 
                          const char *unix_socket,
                          unsigned long clientflag);
  /*
  port 是数据库的端口 3306,也可直接写0,意味着使用mysql默认端口,
  unix_socket 一般为NULL,表示不使用unix套接字或者管道
  clientflag 标志位,一般给0
  返回值,失败为NULL,成功与第一个参数值相同。
  */
  复制代码
  void mysql_close(MYSQL *mysql);
  复制代码
  3. 测试C语言连接数据库
 
  #include
  #include  
  int main()
  {
   MYSQL connect;//mysql连接对象
          mysql_init(&connect); //连接到mysql
   if(mysql_real_connect(&connect,"localhost","root","123456","testdb",0,NULL,0))
   {
   printf("连接mysql成功\n");
   }
   else
   {
   printf("err:%s\n",mysql_error(&connect));
   printf("连接mysql失败\n");
   }//关闭mysql连接
   mysql_close(&connect);
   return 0;
  }
  复制代码
  4. 一个简单的示例
 
  #include
  #include
  #include
  #include
  #include
  #include
  int main()
  {
      MYSQL *mysql=mysql_init(NULL);
      if(mysql==NULL)
      {
          printf("mysql init err\n");
          exit(0);
  unix数据库_unix linux下curses库开发指南_历史被拖库数据下载
 
 
      }
      mysql=mysql_real_connect(mysql,"127.0.0.1","root","123456","testdb",3306,NULL,0);
      if(mysql==NULL)
      {
          printf("connect failed\n");
          exit(0);
      }
      //char *sql="insert into stu values('小明',21)";
      //char *sql="update stu set age=30 where name='小王'";
      //char *sql="delete from stu where name='小王'";
      char *sql="select * from stu";
      int res=mysql_query(mysql,sql);//执行sql语句
      if(res!=0)
      {
          printf("query sql err:%s\n",mysql_error(mysql));//打印错误信息
      }
      MYSQL_RES *mysql_res=mysql_store_result(mysql);//获取结果集
      if(mysql_res==NULL)
      {
          printf("提取数据失败:%s\n",mysql_error(mysql));
          exit(0);
      }
      int num=mysql_num_rows(mysql_res);//获取结果集中有多少行
      if(num==0)
      {
          printf("没有记录\n");
      }
      else
      {
          printf("当前记录条数:%d\n",num);
          int m=mysql_field_count(mysql);//查看每行记录有几个字段(列)
          printf("一行记录有%d列\n",m);
          for(int i=0;i
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章