当前位置:   article > 正文

MySql高级-01.mysql架构介绍_mysql是一个高性能的开源不能改支持定制化开发的关系型数据库

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. 1、下载rpm文件:地址是https://dev.mysql.com/downloads/mysql/
  2. 2、下载四个文件:(选择对应的版本)按照顺序来
  3. (mysql-community-common-5.7.30-1.el7.x86_64.rpm)
  4. (mysql-community-libs-5.7.30-1.el7.x86_64.rpm)
  5. (mysql-community-server-5.7.30-1.el7.x86_64.rpm)
  6. (mysql-community-client-5.7.30-1.el7.x86_64.rpm)
  7. 3、执行命令安装
  8. 如果存在冲突或者缺少依赖:卸载: rpm -e --nodeps mysql-community-common-8.0.19-1.el7.x86_64
  9. sudo rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
  10. sudo rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
  11. sudo rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
  12. sudo rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
  13. 到这里默认就安装结束,同时已经启动mysql的服务
  14. 数据库目录:/var/lib/mysql/
  15. 命令配置:/usr/share/mysql (mysql.server命令及配置文件)
  16. 相关命令:/usr/bin (mysqladmin mysqldump等命令)
  17. 启动脚本:/etc/rc.d/init.d/ (启动脚本文件mysql的目录)
  18. 系统配置:/etc/my.conf
  19. 4、查看mysql运行状态,并重启
  20. systemctl status mysqld
  21. systemctl restart mysqld
  22. 5、重置密码
  23. 5.1:vim /etc/my.cnf
  24. 5.2:在最后加上: skip-grant-tables
  25. 5.3:重启mysql服务: systemctl restart mysqld
  26. 5.4: mysql -u root-p 不需要输入密码直接enter即可
  27. 5.5:设置root账号的密码:
  28. 设置密码:update mysql.user set authentication_string=password('123456') where user='root' ;
  29. 刷新:FLUSH PRIVILEGES;
  30. 5.6:退出mysql:将之前加入的跳过密码验证删掉
  31. 命令:vim /etc/my.cnf
  32. 把skip-grant-tables去掉
  33. 5.7: 重新登录数据库
  34. 执行命令出现不能操作情况:show databases;
  35. 修改密码即可:alter user 'root'@'localhost' identified by 'Root123.@';
  36. 5.8:外部不能连接问题
  37. use mysql
  38. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123.@' WITH GRANT OPTION;
  39. 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.用户管理

  1. -- 创建名称为 zhang3 的用户,密码设为 123123;--
  2. create user zhang3 identified by '123123';
  3. -- 查看用户和权限的相关信息--
  4. select host,user,select_priv,insert_priv,drop_priv from mysql.user where user='zhang3';
  5. select * from mysql.user where user='zhang3';
  6. -- 所有通过user 表的修改,必须用flush privileges;命令才能生效
  7. update mysql.user set authentication_string=password('123') where user='zhang3';
  8. flush privileges;
  9. -- 所有通过user 表的修改,必须用flush privileges;命令才能生效
  10. update mysql.user set user='li4' where user='zhang3';
  11. -- 不要通过delete fromuseruwhere user='li4' 进行删除,系统会有残留信息保留。
  12. 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.权限管理

  1. create database test default character set utf8mb4 collate utf8mb4_unicode_ci;
  2. use litemall;
  3. create user 'yg'@'%' identified by 'yg123456';
  4. 1.授予权限
  5. grant all privileges on test.* to 'yg'@'%';
  6. flush privileges;
  7. 2.收回权限
  8. 收回部分权限
  9. REVOKE select,insert ON test.* FROM 'yg'@'%';
  10. 收回全库全表的所有权限
  11. REVOKE ALL PRIVILEGES ON mysql.* FROM 'yg'@'%';
  12. 3.查看权限
  13. show grants for yg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/469411
推荐阅读
相关标签
  

闽ICP备14008679号