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语句创建数据库
MySQL登录报错“ERROR 1049 (42000): Unknown database ‘Yioft7+pFzhW‘“