首页 > 其他分享 >第十四章学习笔记

第十四章学习笔记

时间:2023-12-17 21:11:17浏览次数:33  
标签:数据库 MySQL 笔记 学习 命令 mysql 第十四章 include root

@

目录

一、学习笔记

1.MySQL简介

MySQL(MySQL 2018)是一个关系数据库系统(Codd 1970 )c在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准查询语言是 SQL(结构化查询语言),包括MySQL。
  MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入 SQL 命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL 和 PHP(PHP 2018)已成为大多数数据管理和在线商务网站的主干网。本章介绍了 MySQL。我们将介绍 MySQL 的基础知识,包括如何在 Linux 中安装/配置 MySQL,如 何使用MySQL创建和管理简单数据库,以及如何在 C 语言和 PHP 编程环境中与 MySQL 交互。

2.安装 MySQL

Ubuntu Linux
sudo apt-get install mysql-server
sudo mysql_secure_installation
Slackware Linux
设置my.cnf
cp /etc/my-small.cnf /etc/my.cnf
安装所需数据库
mysql_install_db
设置所需的系统权限
chown -R inysql.mysql /var/lib/mysql
通过以下操作使Zetc/rc.d/rc.mysqld可执行
chmod 755 /etc/rc.d/rc.mysqld
启动MySQL守护进程mysqld
/etc/rc.d/rc.mysqld -start

3.使用 MySQL

连接到MySQL服务器
使用MySQL的第一步是运行MySQL客户机程序。从X-window终端输入MySQL客 户机命令mysql,它连接到同一台计算机上默认本地主机上的MySQL服务器。
mysq:! -u root -p # specify the root user with password
Enter password: # enter the MySQL root user password
mysql > # mysql prompt
连接到MySQL服务器后,即可访冋MySQL shell,如mysql>提示符所示 MySQL shell类似于普通的shello它会显示一个mysql>提示符,要求用户输入可供MySQL服务器 执行的SQL命令。与普通sh类似,它还维护一个命令历史记录,允许用户通过箭关键冋忆 和修改先前的命令。然而,它只接受MySQL命令或MySQL脚本,而不接受普通sh命令。 在输入MySQL命令时,读者要注意以下几点。
所有的MySQL命令行末尾必须是分号。对于长命令,可在单独行中输入命令短语 (按下ENTER键)。MySQL将会通过-> 符号继续提示更多的输入,直到它看到一个 结束分号。
MySQL命令行不区分大小写。虽然不是强制要求,但为了清楚和更容易识别,通常 使用大写编写MySQL命令,使用小写编写数据库、表、用户名或文本。
显示数据库
SHOW DATABASES
命令可显示MySQL中的当前数据库。
新建数据库
如果数据库dbname还不存在,那么CREATE DATABASE dbname命令将创建一个名为 dbname的新数据库。如果数据库已经存在,则可以使用可选的IF NOT EXISTS子句对该命 令进行限定,以避免出现错误消息。
mysql> CREATE DATABASE testdb
Query OK; 1 row affected (0.02 sec) # mysql response
创建新数据库后,输入SHOW DATABASES以査看结果。
mysql> SHOW DATABASES;


Database
information_schemae
mysqle
performance_schemae
teste
testdbe

5 rows in set (0.00 sec)
删除数据库
DROP DATABASE dbname
mysql> DROP DATABASE testdb;

Query OK; one row affected (0.04 sec)

mysql> SHOW DATABASES;

Database
information_schema
mysql
performance_schema
test

4 rows in set (0.01 sec)
选择数据库
假设MySQL已经有几个数据库。为了操作特定的数据库,用户必须通过USE dbname 命令选择一个数据库。

二、苏格拉底挑战

在这里插入图片描述
在这里插入图片描述

三、实践过程及截图

代码:
//client.c file

include <stdio.h>

include <my_global.h>

include <mysql.h>

int main(int argc, char *argv[])
{
printf("MySQL client version is : %s\n", mysql_get_client_info());
}

//connection.c file:connect to MySQL server

include <stdio.h>

include <stdlib.h>

include <my_global.h>

include <mysql.h>

int main(int argc, char *argv[])
{
//1.define a connection object
MYSQL con;
//2.Initialize the connection object
if(mysql_init(&con)){ //return object address printf("Connection handle initialized\n");
} else {
printf("Connection handle initialization failed\n");
exit(1);
}
//3.Connect to MySQL server on localhost
if(mysql_real_connect(&con, "localhost", "root", "root_password", "yourdatabasename", 3306, NULL, 0)){
printf("Connection to remote MySQL server OK\n");
} else {
printf("Connection to remote MySQL failed\n");
exit(1);
}
//4.Close the connection when done
mysql_close(&con);
}

在这里插入图片描述

在这里插入图片描述

四、问题与解决思路

(一)配置MySQL中遇到的bug:
1.Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
解决方案:参考 https://blog.csdn.net/delilahy123/article/details/124834998

2.Error: Access denied for user 'root'@'localhost' (using password: YES)
解决方案:参考 https://blog.csdn.net/wuwei_201/article/details/107907067

3.mysql 在/etc下没有my.cnf
解决方案:参考 http://www.htsjk.com/shujukunews/4168.htmlhttps://blog.csdn.net/alwaysbefine/article/details/109224657
service mysqld stop
sudo mysqld_safe --skip-grant-tables --skip-networking

4.在 OpenEuler 中 Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
(二)mysql数据库常用语句有哪些
解决:通过查找网上资料归纳出以下几条重要的mysql语句:
1.show databases; 查看所有的数据库
2.create database test; 创建一个叫test的数据库
3.drop database test;删除一个叫test的数据库
5.show tables; 在选中的数据库之中查看所有的表
4.use test;选中库 ,在建表之前必须要选择数据库
8.drop table 表名; 删除表
6.create table 表名 (字段1 类型, 字段2 类型);
7.desc 表名;查看所在的表的字段
10.show create table 表名; 查看创建表的详细信息
9.show create databases 库名;查看创建库的详细信息

标签:数据库,MySQL,笔记,学习,命令,mysql,第十四章,include,root
From: https://www.cnblogs.com/ZZk15079494877/p/17872739.html

相关文章

  • 第十三章学习笔记
    @目录一、学习笔记1.TCP/IP协议2.IP主机和IP地址3.IP协议4.IP数据包格式5.路由器6.UDP7.TCP8.端口编号9.网络和主机字节序10.TCP/IP网络中的数据流二、苏格拉底挑战三、实践过程及截图include<stdio.h>include<stdlib.h>include<string.h>include<sys/socket.h>include......
  • STM32学习笔记_PWM驱动舵机和直流电机(4)
    STM32驱动舵机:舵机接线图:将PWM脚接在开发板PA1处;新建舵机模块:分析舵机的PWM信号:在一个周期20ms的脉冲信号上,高电平占空比为0.5ms-2.5ms分别对应着0°-180°。计算PWM的参数信息:PSC为72,ARR为20K,这样就得到一个频率周期为50Hz的信号。其中20KHz等于20ms,将CCR设置为500即=0.5ms的占空......
  • openGauss学习笔记-163 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STD
    openGauss学习笔记-163openGauss数据库运维-备份与恢复-导入数据-使用COPYFROMSTDIN导入数据-简介163.1关于COPYFROMSTDIN导入数据用户可以使用以下方式通过COPYFROMSTDIN语句直接向openGauss写入数据。通过键盘输入向openGauss数据库写入数据。详细请参见COPY。通过......
  • 2023-2024-1 20231425《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231425《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业)这个作业的目标自学《计算机科学概论》第17章,《C语......
  • 2023-2024-1 20231304 《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231304《计算机基础与程序设计》第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业这个作业的目标《C语言程序设计》第11章并完成云班课测试作业......
  • 学期 2023-2024-1 20232326《网络空间安全导论》第六周学习总结
    教材学习内容总结教材学习中的问题和解决过程问题1:挑战应答认证协议为什么可以对抗重放攻击?问题1解决方案:百度得知挑战应答认证协议可以对抗重放攻击的原因是因为它引入了挑战和应答的机制。在该协议中,服务端会向客户端发送一个随机的挑战值,客户端必须通过对挑战值进行加密......
  • 2023-2024-1 20231303 《计算机基础与程序设计》赵泊瑄第十二周学习总结
    2023-2024-120231303《计算机基础与程序设计》赵泊瑄第十二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里作业要求的链接https://i.cnblogs.com/posts/edit)这个作业的目标总结第十二周学习收获作业正文2023-......
  • 2023-2024-1 20231306 《计算机基础与程序设计》第十二周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业这个作业的目标无作业正文https://www.cnblogs.com/zwywuhu/p/17908748.html教材学习内容总结《C语言程序设计》——第十......
  • 20232413《网络》第六周学习总结
    教材学习内容总结教材学习中的问题和解决方案问题一:跨站脚本攻击(XSS)解决方案: 对用户输入进行验证和转义,使用内容安全策略(CSP),避免直接在页面中执行未经验证的用户输入。问题二:跨站请求伪造(CSRF)解决方案:使用CSRF令牌,验证请求来源,确保只有合法的用户可以提交请求。基于AI的学......
  • 2023-2024-1 20231323《计算机基础与程序设计》第十二周学习总结
    2023-2024-120231323《计算机基础与程序设计》第十二周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第十二周作业作业目标自学教材《C语言程序设计》第11章并完成云班课测试作业正文本博客链接教......