【Mysql】Mysql安装入门

本文介绍了在CentOS7环境下安装MySQL(通过安装mariadb和从官网下载mysql-server)的两种方法,包括启动、登录、数据库操作等基本步骤。同时,讲解了数据库的基本术语,如数据库、表、列、主键和外键,以及MySQL的体系结构。此外,还涵盖了数据库的三范式和MySQL的权限管理,如创建用户、授权及刷新权限。
摘要由CSDN通过智能技术生成

一、系统环境

[root@localhost rh]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

二、MYSQL安装

一般网上给出的资料都是

#yum install mysql
#yum install mysql-server
#yum install mysql-devel

安装mysql和mysql-devel都成功,但是安装mysql-server失败,如下:

[root@localhost rh]# yum install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.163.com
No package mysql-server available.
Error: Nothing to do

查资料发现是CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。

有两种解决办法:

方法一:安装mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

安装mariadb,大小59 M。

[root@localhost rh]# yum install mariadb-server mariadb 

mariadb数据库的相关命令是:

systemctl start mariadb #启动MariaDB

systemctl stop mariadb #停止MariaDB

systemctl restart mariadb #重启MariaDB

systemctl enable mariadb #设置开机启动

所以先启动数据库

[root@localhost rh]# systemctl start mariadb

然后就可以正常使用mysql了

[root@localhost rh]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]>

安装mariadb后显示的也是 MariaDB [(none)]> ,可能看起来有点不习惯。下面是第二种方法。

方法二:官网下载安装mysql-server
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

安装成功后重启mysql服务。

# service mysqld restart

初次安装mysql,root账户没有密码。

[root@localhost rh]# mysql -u root 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql>

设置密码

mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)

mysql> 

不需要重启数据库即可生效。

在mysql安装过程中如下内容:

Installed:
  mysql-community-client.x86_64 0:5.6.26-2.el7                mysql-community-devel.x86_64 0:5.6.26-2.el7                
  mysql-community-libs.x86_64 0:5.6.26-2.el7                  mysql-community-server.x86_64 0:5.6.26-2.el7               

Dependency Installed:
  mysql-community-common.x86_64 0:5.6.26-2.el7                                                                            

Replaced:
  mariadb.x86_64 1:5.5.41-2.el7_0          mariadb-devel.x86_64 1:5.5.41-2.el7_0   mariadb-libs.x86_64 1:5.5.41-2.el7_0  
  mariadb-server.x86_64 1:5.5.41-2.el7_0 

所以安装完以后mariadb自动就被替换了,将不再生效。

[root@yl-web yl]# rpm -qa |grep mariadb
[root@yl-web yl]# 

mysql安装的默认路径:

/var/lib/mysql

三、MYSQL基本操作

登录

mysql -u root -p

显示mysql数据库中的所有库

show databases;

显示mysql数据库当前有多少连接

show processlist;

退出数据库

exit

四、数据库术语

  • 数据库:数据库是一些关联表的集合;
  • 数据表:表是数据的矩阵;
  • :一列包含相同类型的数据;
  • :或者称为记录是一组相关的数据;
  • 主键:主键是唯一的;一个数据表只能包含一个主键;
  • 外键:外键用来关联两个表,来保证参照完整性;MyISAM存储引擎本身并不支持外键,只起到注 释作用;而innodb完整支持外键;
  • 复合键:或称组合键;将多个列作为一个索引键;
  • 索引:用于快速访问数据表的数据;索引是对表中的一列或者多列的值进行排序的一种结构;

五、MYSQL体系结构

请添加图片描述
MySQL由以下几部分组成:
连接池组件、管理服务和工具组件、SQL接口组件、查询分析器组件、优化器组件、缓冲组件、插
件式存储引擎、物理文件。

连接者
不同语言的代码程序和mysql的交互(SQL交互);

连接池
管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求;
网络处理流程:主线程接收连接,接收连接交由连接池处理;
主要处理方式:IO多路复用select + 阻塞的io; memcached
需要理解:MySQL命令处理是并发处理的;
select(,NULL) 一直阻塞

请添加图片描述
管理服务和工具组件
系统管理和控制工具,例如备份恢复、Mysql复制、集群等;

SQL接口
将SQL语句解析生成相应对象;DML,DDL,存储过程,视图,触发器等;

查询解析器
将SQL对象交由解析器验证和解析,并生成语法树;

查询优化器
SQL语句执行前使用查询优化器进行优化

缓冲组件
是一块内存区域,用来弥补磁盘速度较慢对数据库性能的影响;在数据库进行读取页操作,首先将从磁盘读到的页存放在缓冲池中,下一次再读相同的页时,首先判断该页是否在缓冲池中,若在缓冲池命中,直接读取;否则读取磁盘中的页,说明该页被LRU淘汰了;缓冲池中LRU采用最近最少使用算法来进行管理;

缓冲池缓存的数据类型有:索引页、数据页、以及与存储引擎缓存相关的数据(比如innodb引擎:undo页、插入缓冲、自适应hash索引、innodb相关锁信息、数据字典信息等);

六、数据库三范式

范式一:确保每列保持原子性;数据库表中的所有字段都是不可分解的原子值;
例如:某表中有一个地址字段,如果经常需要访问地址字段中的城市属性,则需要将该字段拆分为多个字段,省份、城市、详细地址等;

范式二:确保表中的每列都和主键相关,而不能只与主键的某一部分相关(组合索引);

范式三:确保每列都和主键直接相关,而不是间接相关;减少数据冗余;

七、CURD执行过程

请添加图片描述

八、MYSQL配置

centos mysql 配置文件为/etc/my.cnf
ubuntu mysql 配置为/etc/mysql/my.cnf

九、MYSQL权限管理

创建用户

CREATE USER username@host IDENTIFIED BY password;

host 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost ,如果想让该用户可以从任意远程主机登陆,可以使用通配符 % ;

授权

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

privileges :用户的操作权限,如 SELECT , INSERT , UPDATE 等,如果要授予所的权限则使用ALL;

databasename.tablename 如果是 . 表示任意数据库以及任意表;

WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定 WITH GRANT OPTION 选项导致后来该用户不能使用 GRANT 命令创建用户或者给其它用户授权。
如果不想这个用户有这个grant的权限,则不要加该 WITH GRANT OPTION 选项;

对视图授权

GRANT select, SHOW VIEW ON `databasename`.`tablename` to 'username'@'host';

刷新权限

-- 修改权限后需要刷新权限 
FLUSH PRIVILEGES;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值