MySql高级-01.mysql架构介绍

目录

1.mysql简介

1.1什么是Mysql

1.2.mysql高级

2.linux安装mysql

2.1.rpm安装

2.2.mysql配置文件

3.mysql用户和权限管理

3.1.用户管理

3.2.权限管理


前言:学习B站阳哥视频的笔记

1.mysql简介

1.1什么是Mysql

  1. MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。
  2. Mysql 是开源的,可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 Mysql 系统。
  3. MySQL 使用标准的 SQL 数据语言形式。
  4. Mysql 可以允许于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、 Eiffel、Ruby 和 Tcl 等。 
  5. MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支 持最大的表文件为 8TB

1.2.mysql高级

        数据库内部结构和原理

        数据库建模优化

        数据库索引建立

        SQL 语句优化

        SQL 编程(自定义函数、存储过程、触发器、定时任务)

        mysql 服务器的安装配置

        数据库的性能监控分析与系统优化

        各种参数常量设定

        主从复制

        分布式架构搭建、垂直切割和水平切割

        数据迁移

        容灾备份和恢复

        shell 或 python 等脚本语言开发

        对开源数据库进行二次开发

2.linux安装mysql

2.1.rpm安装

1、下载rpm文件:地址是https://dev.mysql.com/downloads/mysql/

2、下载四个文件:(选择对应的版本)按照顺序来
              
            (mysql-community-common-5.7.30-1.el7.x86_64.rpm)
            (mysql-community-libs-5.7.30-1.el7.x86_64.rpm)
            (mysql-community-server-5.7.30-1.el7.x86_64.rpm)
            (mysql-community-client-5.7.30-1.el7.x86_64.rpm)

3、执行命令安装
如果存在冲突或者缺少依赖:卸载: rpm -e --nodeps mysql-community-common-8.0.19-1.el7.x86_64
        
        sudo rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
    sudo rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
    sudo rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
    sudo rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
    到这里默认就安装结束,同时已经启动mysql的服务

数据库目录:/var/lib/mysql/
命令配置:/usr/share/mysql  (mysql.server命令及配置文件)
相关命令:/usr/bin   (mysqladmin mysqldump等命令)
启动脚本:/etc/rc.d/init.d/   (启动脚本文件mysql的目录)
系统配置:/etc/my.conf



4、查看mysql运行状态,并重启
     systemctl status mysqld
     systemctl restart mysqld
5、重置密码
    5.1:vim /etc/my.cnf
    5.2:在最后加上: skip-grant-tables
    5.3:重启mysql服务: systemctl restart mysqld
    5.4: mysql -u root-p  不需要输入密码直接enter即可
    5.5:设置root账号的密码: 
            设置密码:update mysql.user set authentication_string=password('123456') where user='root' ;
            刷新:FLUSH PRIVILEGES;
    5.6:退出mysql:将之前加入的跳过密码验证删掉
                 命令:vim  /etc/my.cnf  
                 把skip-grant-tables去掉
    5.7: 重新登录数据库
            执行命令出现不能操作情况:show databases; 
            修改密码即可:alter user 'root'@'localhost' identified by 'Root123.@';
    5.8:外部不能连接问题
            use mysql   
            GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123.@' WITH GRANT OPTION;
            flush privileges;刷新

2.2.mysql配置文件

frm文件:存放表结构;

myd文件:存放表数据

myi文件:存放表索引

如何配置

windows:my.ini文件:

linux: /etc/my.cnf

1、 二进制日志log-bin,主重复制

2、错误日志log-error,默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等.

3、查询日志log,默认关闭,记录查询的sql语句,如果开启会减低mysql的整体性能,因为记录日志也是需要消耗系统资源的

4、数据文件

windows: D:\ProgramFiles\MySQL\MySQLServer5.5\data目录下可以挑选很多库

linux: 看看当前系统中的全部库后再进去: 默认路径:/var/lib/mysql

3.mysql用户和权限管理

3.1.用户管理

-- 创建名称为 zhang3 的用户,密码设为 123123;-- 
create user zhang3 identified by '123123';

-- 查看用户和权限的相关信息-- 
select host,user,select_priv,insert_priv,drop_priv from mysql.user where user='zhang3';

select * from mysql.user where user='zhang3';

-- 所有通过user 表的修改,必须用flush privileges;命令才能生效 
update mysql.user set authentication_string=password('123') where user='zhang3';
 
flush privileges;

-- 所有通过user 表的修改,必须用flush privileges;命令才能生效 
update mysql.user set user='li4' where user='zhang3';

-- 不要通过delete fromuseruwhere user='li4' 进行删除,系统会有残留信息保留。 
drop user li4

host :表示连接类型

% 表示所有远程通过 TCP 方式的连接

IP 地址 如 (192.168.1.2,127.0.0.1) 通过制定 ip 地址进行的 TCP 方式的连接机器名 通过制定 i 网络中的机器名进行的 TCP 方式的连接

::1 IPv6 的本地 ip 地址 等同于 IPv4 的 127.0.0.1

localhost 本地方式通过命令行方式的连接 ,比如 mysql -u xxx -p 123xxx 方式的连接。user:表示用户名

同一用户通过不同方式链接的权限是不一样的。

password:密码

所有密码串通过 password(明文字符串) 生成的密文字符串。加密算法为MYSQLSHA1 ,不可逆。mysql 5.7 的密码保存到 authentication_string 字段中不再使用 password 字段。select_priv , insert_priv 等

为该用户所拥有的权限。

3.2.权限管理

create database test default character set utf8mb4 collate utf8mb4_unicode_ci;
use litemall;

create user 'yg'@'%' identified by 'yg123456';

1.授予权限 
grant all privileges on test.* to 'yg'@'%';
flush privileges;

2.收回权限


收回部分权限
REVOKE select,insert ON test.* FROM 'yg'@'%';

 收回全库全表的所有权限
REVOKE ALL PRIVILEGES ON mysql.* FROM 'yg'@'%';

3.查看权限
show grants  for yg
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值