MySQL数据库Summary(一)

目录

一.概论

什么是数据库?

数据库的分类

关系型数据库

MySQL数据库

数据语言

二.安装

1.linxu下安装MySQL

安装前检测 删除 强力删除

安装 MySQL

安装验证

2.win下安装

三.基本操作

1.用户设置

添加用户:

修改密码:

删除用户

赋予权限

回收权限

关于/etc/my.cnf 文件配置

2.管理命令


一.概论

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,

每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现
  • 2.每行为各种记录名称
  • 3.每列为记录名称所对应的数据域
  • 4.许多的行和列组成一张表单
  • 5.若干的表单组成database

定义:高效的存储和处理数据的介质

数据库的分类

关系型数据库(sql)

大型

      Oracle:属于Oracle(甲骨文)公司,主要用于java开发

      DB2:属于IBM公司,主要用金融,电信…..

中型

      SqlServer:属于微软,一般用于微软自己的语言

      Mysql :由AB公司初创,后被sun收购,sun被Oracle收购主要用于java开发

小型

      Access

非关系型数据库(Nosql:not only sql)

MongoDB、redis、memcached

 

两种数据库区别

关系型数据库数据存储在磁盘上,数据安全,但是效率低;

非关系型数据库数据存储在内存上,数据不安全,断电会丢失数据,但是效率高;

此外,关系型数据库存储结构是二维表,比较浪费空间 

 

关系型数据库

什么是关系型数据库?

一种建立在关系模型(数学模型)上的数据库

关系模型包含三个方面:

1、数据结构:二维表,解决数据如何存储

2、操作指令集合:所有的SQL语句,解决如何处理数据

3、完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)

MySQL数据库

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,所以你不需要支付额外的费用。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的SQL数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
  • MySQL 对PHP有很好的支持,PHP是目前最流行的Web开发语言。
  • MySQL 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了GPL协议,你可以修改源码来开发自己的 MySQL 系统。

数据语言

SQL(Structured Query Language),结构化查询语言,在数据库中90%以上的操作是查询操作

SQL分为三个部分 

数据定义语言(DDL  Data Defined Language)

用于维护存储数据的结构

create  table | database |…

alter   table | database | …

drop   table | database |…

数据操作语言(DML  Data Manipution Language) 

用来对数据进行操作

Insert  Update  Delete

内部单独分了一个DQL(Data Query Language),数据查询指令:select

数据控制语言(DCL Data Control Language)

主要负责用户权限管理

 Grant  Revoke  Commit  deny

二.安装

1.linxu下安装MySQL

  • 安装前检测 删除 强力删除

rpm -qa | grep mysql  //

rpm -e mysql  // 普通删除模式

rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

 

  • 安装 MySQL

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 
rpm -ivh mysql57-community-release-el7-9.noarch.rpm 
yum install mysql-server

这里因为我使用的是ubuntu,产生报错:

rpm:RPM should not be used directly install RPM packages, use Alien instead!
rpm:However assuming you know what you are doing...
警告: mysql57-community-release-el7-9.noarch.rpm: 头 V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql57-community-release-el7-9  ################################# [100%]
错误: 解压压缩文件  失败:cpio: mkdir
错误: mysql57-community-release-el7-9.noarch: 安裝 已失败

 

因为ubuntu只能安装deb格式的软件包,不能直接安装rpm类型的包...

sudo apt-get install mysql-server

 其中:

    MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
    MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
    MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
    MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
    MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

...这里我启动服务一直会卡死。。。但是可以进入本地的sql服务,就假装自己安装好了ORZ...

  • 安装验证

mysqladmin --version
#出现:
mysqladmin  Ver 8.42 Distrib 5.7.23, for Linux on x86_64


​

2.win下安装

https://blog.csdn.net/D_V_K_/article/details/82467266

三.基本操作

MySQL 语法对大小写不敏感,但是大写更容易看出。

mysqladmin -u root password "new_password";
#修改密码
mysql -u root -p
#登陆

1.用户设置

  • 添加用户:

mysql> use mysql;
Database changed

mysql> INSERT INTO user 
          (host, user, password, 
           select_priv, insert_priv, update_priv) 
           VALUES ('localhost', 'guest', 
           PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      | user    | password         |
+-----------+---------+------------------+
| localhost | guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

创建用户相当于往数据库中的mysql表中添加一条数据。

一种简便的添加方法:

语法:create user 用户名 identified by 密码

例:create user james identified by '123456';

注意:创建用户,用户名不需要用单引号包裹,但是密码需要用单引号包裹

其中

查看的密码是通过md5加密技术加密。

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string

注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。

注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。

你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:

   Select_priv
    Insert_priv
    Update_priv
    Delete_priv
    Create_priv
    Drop_priv
    Reload_priv
    Shutdown_priv
    Process_priv
    File_priv
    Grant_priv
    References_priv
    Index_priv
    Alter_priv

  • 修改密码:

语法:set password for "用户名" = password("密码");

set password for "james" = password("111111");

  • 删除用户

语法:drop user 用户名;

drop user james;

  • 赋予权限

授权:root通过mysql命令给指定的用户授予特定的权利

      权利包含DDL、DML、DQL而且细致入微

语法:grant 权限 on 数据库名.表名 to 用户

grant select on jsyunsi.stu to james;

grant insert on jsyunsi.stu to james;

grant all on jsyunsi.* to james;

将所有的权限赋予给james子用户,子用户可以对jsyunsi数据库中的所有表进行操作

  • 显示权限

语法:show grants for 用户名;

show grants for james;

  • 回收权限

如果按照顺序授权,那么授权过程的权限允许叠加,

但是回收权限也要回收所有的层次的权限回来

 

语法:revoke 权限 on 数据库名.表名 from 用户名

revoke all on jsyunsi.stu from james;

刷新权限

flush privileges;

 

把所有的权限都收回来

revoke all on *.* from "james";

  • 关于/etc/my.cnf 文件配置

默认文件数据

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

2.管理命令

  • USE 数据库名 :
    选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
  • SHOW DATABASES:
    列出 MySQL 数据库管理系统的数据库列表。
  • SHOW TABLES:
    显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
  • SHOW COLUMNS FROM 数据表:
    显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
  • SHOW INDEX FROM 数据表:
    显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
  • SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G:
    该命令将输出Mysql数据库管理系统的性能及统计信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值