目录
数据库介绍
数据库概念
数据库:简而言之,存放数据的仓库,它是一个按数据结构来存储和管理数据的计算机软件系统。
数据库管理系统:是数据库系统的核心组成部分,主要玩成对数据库的操作与管理功能,例如实现数据的存储、修改、删除,及数据库用户的管理,权限管理等。
RDBMS:关系数据库管理系统
SQL:结构化查询语言
mysql数据库是一种C/S模型(即客户端和服务器模型),客户端通过用户名,密码登录连接服务器。连接成功才可以进行数据可的操作,即增删改查。如图:
数据库分类
关系型数据库:指采用了关系模型来组织数据的数据库,关系模型就是指二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成一个数据组织。
关系型数据库的核心元素:数据行(一条记录)、数据列(字段)、数据表(数据行的集合)、数据库(数据表的集合)。
关系型数据库产品:oracle,mysql,sqlite,DB2,Microsoft Sql Server
非关系型数据库:指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。非关系型数据可以键值对存储,且结构不稳定。(ACID,、指原子性,一致性,隔离性,持久性)
非关系型数据库产品:memecache,redis,mongodb,hbase
mysql安装及设置
这里介绍的是ubuntu发行版本上使用apt命令安装的步骤。不同发行版本安装方法有所不同
安装mysql
安装前首先切换到管理员身份:sudo su,然后再执行apt install mysql-server,如图:
我这里已经安装过了,这里不再显示安装过程
初始化配置
初始化配置使用命令:mysql_secure_installation
设置数据库不进行密码强校验,如图:
设置root管理员密码,注意是数据库的管理员的。密码不回显,根据提示输入两遍,如图:
(我这里已经设置过了,所以直接输入就好,在初次设置时,需要输入两遍,相当于设置和确认设置)
设置是否要删除匿名用户,这里不删除,如图:
设置是否允许root用户远程登录,这里设置允许,如图:
设置是否删除‘test’库,这里选择不删除,如图:
设置修改的权限立即生效,此时所有配置初始化完成,如图:
数据库服务启动停止
检查服务器状态,命令为:service mysql status或者systemctl status mysql.service
重启|停止|启动,数据库的命令:如果没在root用户下,需要加上sudo
连接数据库命令mysql -uroot -p
配置文件位置
配置文件在如下位置,需要修改可以用vi打开更改
例如,需远程登录,则需要将bind-address改为0.0.0.0,如下:
安装C/C++开发库
安装C/C++开发库,命令:apt install libmysqlclient-dev,如图:
测试c语言连接数据库,这里连接‘test’库,没有自己创建,注意‘111111’是数据库密码,需要输入自己的。
编译时,需要指定-l指定mysqlclient这个库:
但普通用户可能出现失败,此时需要更改mysql数据库管理员密码,并设置好加密方式。要注意一个是linux系统管理员root,还有一个是Mysql数据库的管理员,名字也是root。不要混淆。
用户管理与授权
查看用户信息
创建用户
创建用户指定用户指定加密方式
更新用户密码指定加密方式,注意密码强度大小写数据
授权用户对那些数据库的那些表可以进行操作 示例:
*.* TO 'user_name'@'%'代表所有数据库
*.*代表这个数据库中所有表
user_name所有数据库中所有表给这个远程登陆的用户
指定user_name用户可以从任意地点登录访问所有数据库的所有表
将指定数据库里边的指定表给这个本地登陆的用户