MySQL

  • MySQL 是关系型数据库管理系统 RDBMS , 使用 SQL 作为查询语言.
  • 用于需要复杂数据结构和关系的应用程序
    • 例 : web应用程序 , 企业级应用程序和大型数据库系统
数据的类型 :
  1. 关系型数据库 (RDBMS)
    • 采用表格结构存储数据 , 使用SQL语言进行操作和管理
  2. 非关系型数据库 (NoSQL)
    • 使用键值对 , 文档等数据结构存储数据
  3. 图形数据库 (Graph Database)
    • 用于存储图形数据 , 如社交网络 , 知识图谱等数据
  4. 内存数据库 (In-Memory Database)
    • 将数据缓存在内存中 , 具有告诉读写 , 低延迟的优点
  5. 分布性数据库 (Distributed Database)
    • 将数据分布存储在不同的节点上 , 实现水平扩展
搭建基础MySQL 8.0
  1. 安装mysqlmysql-server
    yum -y install mysql mysql-server
  2. 启动 mysqld 服务
    systemctl mysqld
  3. 关闭 Selinuxfirewalld
    setenforce 0
    systemctl stop firewalld
  4. 启动 mysql 测试
    mysql
MySQL参数
  1. /etc/my.cnf.d/mysql-server.cnf //主配置文件
  2. /var/lib/mysql //数据库目录
  3. mysqld //进程名
  4. 3306 //端口号
  5. TCP //传输协议
  6. mysql:mysql //进程, 文件权限所属组 , 所有者
  7. /var/log/mysql/mysqld.log //错误日志文件
MySQL连接服务
  • mysql -hlocalhost -P3306 -u用户 -p密码
  • 无参数默认本机 , 3306 , root , 123456
基础操作
  • select version(); //查看服务软件版本
  • select user(); //查看登陆用户
  • show databases; //查看已有库
  • user 库名; //切换库
  • select database(); //查看当前所有库
  • show tables; //查看库里已有表
  • insert into 库名(表名) values("内容") //向库.表里添加内容
  • desc 库.表 //查看表头
  • exit quit //断开连接
MySQL的基础库
  • 默认存在四个基础库 , 不可删除 , 存储的是服务运行时加载的不同功能的程序和数据 .
    1. information_schema
      • MySQL数据库提供的一个虚拟的数据库 , 存储了MySQL数据库中的相关信息 , 比如数据库 , 表 , 列 , 索引 , 权限 , 角色等信息.
      • 它并不存储实际的数据 , 而是提供了一些试图和存储过程 , 用于查询和管理数据库的源信息.
    2. mysql
      • 存储了MySQL服务器的系统配置 ,用户 , 帐号和权限信息等.
      • 是MySQL数据库最基本的库 , 存储了MySQL服务器的核心信息
    3. performance_schema
      • 存储了MySQL数据库的性能指标 , 事件和统计信息等数据 , 可以用于性能分析和优化.
    4. sys
      • MySQL 8.0版本新引入的库,基于information_schema performance_schema试图 , 提供更方便 , 更直观的方式来查询和管理MySQL数据库的源数据和性能数据.
MySQL密码管理

数据库操作系统管理员用户才有权限进行密码管理

设置用户 –> 密码登陆

mysqladmin -hlocalhost -uroot -p password "新密码"

  • -h : 登陆数据库的IP地址
  • -u : 用户
  • -p : 密码
修改密码

mysqladmin -hlocalhost -uroot -p旧密码 password "新密码"

不知道旧密码时需要破解密码(有root权限)
  1. 配置服务可以无密码登陆
    1. 修改MySQL配置文件 /etc/my.cnf.d/mysql-server.cnf

      • 添加无密码登陆权限
      • skip-grant-tables //手动添加此行 作用登陆时不验证密码
    2. 重启MySQL服务 systemctl restart mysqld

  2. 删除不知道的原密码
    1. 无密码链接MySQL服务 mysql
    2. 查看原用户 , 密码等参数
      • desc mysql.user; 查看表头名
        • select host , user , authentication_string from mysql.user; 查看表头的值
    3. 设置删除用户root的密码 , 设置为空
      • update mysql.user set authentication_string="" where user="root";
    4. 刷新权限 , 确保以上操作生效 flush privileges;
  3. 配置服务需要的密码登陆
    1. 修改配置文件 , 删除无密码登陆权限 vim /etc/my.cnf.d/mysql-server.cnf
    2. 重启MySQL服务 systemctl restart mysqld
  4. 登陆后设置新密码
    1. mysql -hlocalhost -P3306 -uroot -p新密码
    2. -P : 大写的P指定链接MySQL的端口 , 默认为3306