MySQL的安装及客户端的使用
文章目录
- 一、数据库简介
- 1.2 RDBMS专业名词
- 二、数据库的分类
- 三、关系型数据库和非关系型数据库比较:
- 四、MySQL的安装
- 1.1使用yum安装
- 五、客户端的使用
- 1.2Navicat Premium 12安装
- 1.3客户端连接数据库
一、数据库简介
数据库:就是数据的仓库,它是长期存储在计算机内,有组织的、可共享的数据的集合。
数据库管理系统 (DBMS)用来对数据进行存储、管理等操作的软件。
1.2 RDBMS专业名词
常见的关系型数据库管理系统:
MySQL:MySQL,MariaDB,Percona-Server
PostgreSQL:简称为pgsql
Oracle
MSSQL
SQL:Structure Query Language,结构化查询语言
约束:constraint,向数据表提供的数据要遵守的限制
主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。且必须提供数据,不能为空(NOT NULL)。
一个表只能存在一个
惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。允许为空(NULL)
一个表可以存在多个
外键约束:一个表中的某字段可填入数据取决于另一个表的主键已有的数据
检查性约束
索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储
二、数据库的分类
数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。
关系型数据库
关系 :关系就是二维表。并满足如下性质:
- 表中的行、列次序并不重要
- 行row:表中的每一行,又称为一条记录
- 列column:表中的每一列,称为属性,字段 field 域
- 主键PK(Primary key):用于惟一确定一个记录的字段 外键FK
- 域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值
缺点: 性能没有非关系性数据库好 优点:数据统计有严谨性
非关系型数据库
NoSQL数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
- 搜索键值存储数据库(key-value):
键值数据库就类似传统语言中使用的哈希表。可以通过key来添加、查询或者删除数据库,因为使用key主键访问,所以会获得很高的性能及扩展性。Key/value模型对于IT系统来说的优势在于简单、易部署、高并发。典型产品:Memcached、Redis、MemcacheDB。 - 列存储(Column-oriented)数据库
列存储数据库将数据存储在列族中,一个列族存储经常被一起查询的相关数据,比如人类,我们经常会查询某个人的姓名和年龄,而不是薪资。这种情况下姓名和年龄会被放到一个列族中,薪资会被放到另一个列族中。
这种数据库通常用来应对分布式存储海量数据。 - 面向文档(Document-Oriented)数据库
- 文档型数据库可以 看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。面向文档数据库会将数据以文档形式存储。典型产品:**MongoDB **适用于敏捷开发。
常见的关系型数据库:
- 大型:Oracle、DB2 等;
- 中型:SQL Server、MySQL 等;
- 小型:Access 等。
三、关系型数据库和非关系型数据库比较:
** 关系型数据库**: 关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库的最大特点就是事务的一致性 : 统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统.。
优点:
- 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
- 使用方便:通用的SQL语言使得操作关系型数据库非常方便。
- 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率。
缺点:
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足。对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
- 具有固定的表结构,因此扩展困难。
- 多表的关联查询导致性能欠佳。
非关系型数据库
特点:
- 非结构化的存储
- 基于多维关系模型
- 具有特有的使用场景
优点:
- 高并发,大数据下读写能力较强。(基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高)
- 基本支持分布式,易于扩展,可伸缩。(因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。)
- 简单,弱结构化存储。
缺点:
- 事务支持较弱。
- 通用性差。
- 无完整约束复杂业务场景支持较差。
四、MySQL的安装
1.1使用yum安装
1)配置一个网络源或者(本地源)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
2)Yum安装mariaDB 、mariaDB-server
yum -y install mariadb mariadb-server
等待安装完毕
已安装:
mariadb.x86_64 1:5.5.68-1.el7 mariadb-server.x86_64 1:5.5.68-1.el7
作为依赖被安装:
mariadb-libs.x86_64 1:5.5.68-1.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7
3)安装完成后启动服务并设置开机自启
[root@localhost yum.repos.d]# systemctl start mariadb
[root@localhost yum.repos.d]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
4)设置mariadb基本配置
[root@localhost ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
//可以回车是因为没有设置密码
Enter current password for root (enter for none):
OK, successfully used password, moving on...
//设置root密码
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
//删除匿名用户登录-根据你自己的需求选择,在此我选择删除匿名用户
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
// 是否禁止远程登录-根据你自己的需求选择
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
// 删除测试数据
y default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
// 现在重新加载特权表
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
//接下来就可以登陆数据库了
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
5)登录数据库
mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB [(none)]> show databases; //查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> create database xu //创建数据库
-> ;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| xu |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> exit; //使用exit加分号退出
Bye!
五、客户端的使用
1.2Navicat Premium 12安装
1)双击安装,点击下一步。
2)同意协议,点击下一步;
3)选择安装位置(可默认),点击下一步;
4)创建开始菜单文件夹,点击下一步:
5)创建桌面快捷方式,点击下一步:
6)准备安装,点击下一步:
7)正在安装中,等待安装完成:
8)安装完成,点击完成:
1.3客户端连接数据库
赋予root用户远程连接的权限
MariaDB [(none)]> grant all privileges on *.* to 'root(用户)'@'%' identified by '设置的root密码';
MariaDB [xu]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
打开Navicat点击创建连接,输入主机ip(mysql不识别主机名),输入密码,点击连接。
已连接上,发现之前创建的库(xu)