DataBase ❀ MySQL在Linux系统中的部署与安装教程

Posted 国家级干饭型选手°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataBase ❀ MySQL在Linux系统中的部署与安装教程相关的知识,希望对你有一定的参考价值。


MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 mysql 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一;数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,MySQL是数据库中的一种免费服务。

在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • : 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • :一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

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

  • MySQL 是开源的,目前隶属于 Oracle 旗下产品。
  • 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 系统。

1、安装部署

Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:

  • MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
  • MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
  • MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
  • MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
  • MySQL-bench - MySQL数据库服务器的基准和性能测试工具。
[root@localhost ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# yum install mysql-server -y

[root@localhost ~]# chown mysql:mysql -R /var/lib/mysql		/服务账户添加权限;
[root@localhost ~]# mysqld --initialize						/初始化MySQL数据库;
[root@localhost ~]# systemctl start mysqld					/开启服务;
[root@localhost ~]# systemctl enable mysqld					/开启服务自启;
[root@localhost ~]# rpm -qc mysql-server					/MySQL数据库配置文件
/etc/logrotate.d/mysqld
/etc/my.cnf.d/mysql-default-authentication-plugin.cnf
/etc/my.cnf.d/mysql-server.cnf
/var/log/mysql/mysqld.log

[root@localhost ~]# mysql -V								/MySQL数据库版本;
mysql  Ver 8.0.17 for Linux on x86_64 (Source distribution)
[root@localhost ~]# mysql --version
mysql  Ver 8.0.17 for Linux on x86_64 (Source distribution)
[root@localhost ~]# mysqladmin --version 
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)

2、设置MySQL登录密码

首次安装MySQL的root用户是无密码的,为了安全登录设定,需要对root用户设定登录密码,配置如下:

[root@localhost ~]# mysqladmin -u root password "root";
Warning: Using a password on the command line interface can be insecure.

[root@localhost ~]# mysql -u root -p						/使用密码登录MySQL;
Enter password: root
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 17
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2019, 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 |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

3、基础登录预配置

为了后续方便学习,使用需要创建一个用来学习的数据库,并且创建好对应的表与数据;

mysql> create database test;
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> create table students(
    -> id int,
    -> name varchar(20),
    -> age int,
    -> username varchar(20),
    -> password varchar(20));
Query OK, 0 rows affected (0.03 sec)
mysql> create table teachers(
    -> id int,
    -> name varchar(20),
    -> age int,
    -> username varchar(20),
    -> password varchar(20));
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| students       |
| teachers       |
+----------------+
2 rows in set (0.00 sec)

mysql> desc students;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> desc teachers;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| username | varchar(20) | YES  |     | NULL    |       |
| password | varchar(20) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> insert into students(id,name,age,username,password) value(1,'aaa111',20,'admin','admin');
Query OK, 1 row affected (0.01 sec)
/依次创建数据,数据内容自选,两个表中分别创建五个数据项即可;

mysql> select * from students;
+------+--------+------+----------+----------+
| id   | name   | age  | username | password |
+------+--------+------+----------+----------+
|    1 | aaa111 |   20 | admin    | admin    |
+------+--------+------+----------+----------+
1 row in set (0.00 sec)

以上是关于DataBase ❀ MySQL在Linux系统中的部署与安装教程的主要内容,如果未能解决你的问题,请参考以下文章

MySQL快速入门:CREATE DATABASE语句创建数据库

linux hive 查 哪些database

Linux(Ubuntu)下MySQL的安装与配置

MySQL登录报错“ERROR 1049 (42000): Unknown database ‘Yioft7+pFzhW‘“

linux中数据库的管理

初识mysql