欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一、初识数据库

程序员文章站 2022-04-09 15:21:36
[toc] 1. 数据库是什么 存数据的仓库 2. 为什么使用数据库 1. 管理大量数据 2. 支持并发操作 3. 支持高级的操作,比如分组,链表等 3. 数据库的分类 1. 关系型数据库 表结构存储,对每一列的数据的类型会有约束,数据存在硬盘中 Mysql(免费,企业用的多),maridb,Sql ......

目录

1. 数据库是什么

存数据的仓库

2. 为什么使用数据库

  1. 管理大量数据
  2. 支持并发操作
  3. 支持高级的操作,比如分组,链表等

3. 数据库的分类

1. 关系型数据库

表结构存储,对每一列的数据的类型会有约束,数据存在硬盘中

mysql(免费,企业用的多),maridb,sqlserver(大学、*),oracle(金融公司,阿里),sqlite(自己玩的小型数据库)

2. 非关系型数据库

key-value存储,对于数据没有约束,数据存在内存中

memcache(十年前的产品,未能解决断电即消失的问题),mongodb(文档型数据库,爬虫),redis(微博)

4. mysql的架构

  • 类似于socket的客户端和服务端

  • 流程
    1. mysql服务端先启动,监听在某一个特定的端口(3306)
    2. mysql客户端连接服务端
    3. mysql客户端就可以发送相关的操作命令,去操作服务端存储的数据

5. mysql的安装

1. windows的安装

  1. 下载:mysql community server 5.7.16
  2. 解压
    如果想要让mysql安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:e:\mysql-5.7.16-winx64
  3. 添加环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为path 的一行,双击】 --> 【将mysql的bin目录路径追加到变值值中,用 ; 分割】
  4. 初始化
    mysqld --initialize-insecure :创建data目录, 初始化的数据
  5. 启动mysql服务
    mysqld:启动mysql服务
  6. 启动mysql客户端并连接mysql服务
    mysql -u root -p: 连接mysql服务器

2. windows服务

上一步可以运行mysql,但不够彻底,执行mysql执行服务端会阻塞住,因此要将mysql添加到windows服务

  1. 添加windows服务

    cmd运行命令:"e:\mysql-5.7.16-winx64\bin\mysqld" --install

    注意:--install前,必须用mysql启动命令的绝对路径

  2. 启动mysql服务

    cmd运行命令:net start mysql

  3. 关闭mysql服务

    cmd运行命令:net stop mysql

  4. 移除windows服务

    cmd运行命令:"e:\mysql-5.7.16-winx64\bin\mysqld" --remove

    注意:这里的路径也必须是绝对路径

3. 设置密码

mysql -u root -p: 管理员root用户 ,默认没有密码

  1. -u:user 用户名
  2. -p:password 密码
  3. -h:host 主机名或ip mysql -uroot -p -h 192.168.1.10
  4. -p:port 默认是3306
  • 管理员登录的情况下:

    set password = password('密码'); # 给当前数据库设置密码

  • 没有登录的情况下:

    mysqladmin -uroot password "123" :设置初始密码 由于原密码为空,因此-p可以不写

    mysqladmin -uroot -p "原密码" password "新密码":修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密

4. 忘记密码

  1. 关闭mysqld的windows服务
  2. cmd中执行:mysqld --skip-grant-tables(不用密码就可以登录,绕过密码验证的权限)
  3. cmd中执行:mysql
  4. cmd中执行:update mysql.user set authentication_string=password('新密码')where user = 'root';
  5. cmd中执行:flush privileges;
  6. cmd中执行:tasklist | findstr mysqldtaskkill -f /pid 进程号
  7. 重新启动

5. 新建账号

mysql> create user 'nick'@'192.168.10.%'   identified by '123';# 指示网段
mysql> create user 'nick'@'192.168.10.5'   # 指示某机器可以连接
mysql> create user 'nick'@'%'                    #指示所有机器都可以连接  
mysql> show grants for 'nick'@'192.168.10.5';查看某个用户的权限 
# 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3

# 给账号授权
mysql> grant all on *.* to 'nick'@'%';
mysql> flush privileges;    # 刷新使授权立即生效

# 创建账号并授权
mysql> grant all on *.* to 'nick'@'%' identified by '123'