首页 > 技术文章 > 2021-2022-1-diocs-Unix/Linux系统编程第十四周学习笔记

zx-150430 2021-12-06 16:20 原文

20191218 2021-2022-1-diocs-MySQL数据库系统

思维导图

 本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何将MySQL与PHP集成,通过动态Web页面创建和管理数据库。

知识总结

 1.MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache可组成良好的开发环境

2.MySQL与其他的大型数据库比较

Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开源软件软件(FLOSS:Free/Libre and Open Source Software),因此使用这种方式除开人工成本就可以建立起一个稳定、免费的网站系统,也被称为“LAMP“或“LNMP”组合。

3.数据库类型

(1)关系型数据库——Oracle、SQL Sever、MySQL

(2)非关系型数据库——Redis、Mongodb,NoSQL数据库在存储速度与灵性方面有优势,也常用于缓存。

4.MySQL的使用

(1)环境变量

我的电脑 -> 右击属性 -> 高级系统设置 -> 环境变量 ->系统变量 ->path

在path变量后加上;变量值

变量值就是MySQL下的bin目录路径

注意:必须开启wamp服务器才可以进去

(2)进入MySQL数据库

DOS系统下清屏的命令:cls

mysql -h localhost -u root -p -b

-h 服务器(本地、指定服务器IP的)[本地localhost可以省略]
-u 用户名(我们用的是root用户:超级管理员)
-p 用户密码(不需要再它后面写密码,密码是回车之后写的)
-b 蜂鸣器(当命令敲错了,报错时提示的声音)

(3)进入MySQL数据库以后的命令

注意:
1.每一行命令结束了以后,请使用 ; 或 \g 来结束,否则命令可以一直写下去
2. 在MySQL的命令中,如果一行命令没有敲完,就回车了,它会继续执行下去,前提是必须是一条完整的命令
3. 退出敲错的命令、或不想继续执行下去的命令时,用\c 或者 Ctrl+c
4. 要想让数据竖起来显示,在命令后用\G
6. \s 可以显示当前服务器的配置
7. help 查看所有可以使用的快捷命令
8. 如果在命令行中遇到了单引号,则MySQL认为你要输入一段字符串,所以,它是必须使用结束的单引号,可以跳出字符串输入状态;

(4)退出数据库服务器

使用\q、exit、quit三者均可

实践过程

1.使用C语言构建MySQL客户机程序

代码如下:

//client.c

#include<stdio.h>
#include<my_global.h>
#include<mysql.h>
int main(int argc,char *argc[])
{
printf("MySQL client version is : %s\n",mysql_get_client_info());
}

编译运行截图

Windows系统下:

Linux系统下:

命令如下:

[root@host]# mysql

运行结果如图:

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+

Mysql安装成功之后,默认的root用户密码为空,这时候可以使用以下的命令来创建root用户的密码:

[root@host]# mysqladmin -u root password "new_password";

之后就可以通过以下命令来连接到MySQL服务器:

[root@host]# mysql -u root -p
Enter password:********

其中需要下载命令:

sudo apt install mysql-client-core-8.0
sudo apt install mariadb-client-10.3
sudo apt-get install mysql-server

具体编译结果截图

 很明显数据库安装成功

 编写一个简答的程序实现访问数据库,实现show tables功能:

#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[] = "mima";
    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;
}

运行截图:

编译命令:

g++ -Wall mysql_test.cpp -o mysql_test -lmsqlclient

参考链接

https://www.linuxidc.com/Linux/2016-07/133128.htm

问题与解决

问题:Navicat如何连接mysql数据库?
解决:

用Navicat自带的SSH进行连接
1.首先在Navicat中新建连接
2.在用户名中填写远程数据库的登录用户名,密码框中填写MySQL登录密码
3.测试连接

 问题:安装mysql数据库出现以下错误

解决:

先运行sudo su,进入管理员身份来编译命令——mysql -u root -p,就可以顺利进入MySQL的界面

推荐阅读