主流的数据库有Oracle、MySQL、SQL Server、PostgreSQL,其中最主流的就是MySQL数据库。
Oracle:大型的收费数据库,Oracle公司产品,价格昂贵。
MySQL:开源免费的中小型数据库,后来Sun公司收购了MySQL,而Oracle又收购了Sun公司。目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。
PostgreSQL:开源免费的中小型数据库。
DB2:IBM公司的大型收费数据库产品。
SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
MariaDB:开源免费的中小型数据库。是MySQL数据库的另外一个分支、另外一个衍生产品。
关系型数据库,简称RBDMS,关系型数据库是建立在关系模型的基础之上,由多张相互关联的二维表组成的数据库,如下图所示,有人员信息表和职业信息表,在人员信息表中有个job字段,这个字段对应着职业名称,在职业信息表中有一个job_name字段,在这个字段中存储的是职业的名称,从逻辑上看,这两张数据表就存在着关联关系,job和job_name字段相互对应。
关系型数据库的特点:
MySQL的数据模型如下图所示,客户端连接上DBMS,也就是数据库系统,比如MySQL,使用SQL语句就可以在MySQL数据库管理系统中可以创建出多个数据库,在一个数据库中可以创建出多个表,在表中可以存储无限条数据。
MySQL官方提供了两种不同的版本:
社区版本(MySQL Community Server)
商业版本(MySQL Enterprise Edition)
MySQL数据库的下载地址:https://downloads.mysql.com/archives/community/,本次MySQL数据库的版本选择8.0.26,并且使用rpm包的方式搭建,如下图所示,找到RPM Bundle,点击右侧的下载按钮,在这个包中包含了所有MySQL8.0.26版本所需的RPM包。
[root@mysql aa]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
1)解压MySQL的压缩包
MySQL8.0.26版本所有的rpm包都在这个压缩包中。
[root@mysql mysql-tools]# mkdir mysql-rpm
[root@mysql mysql-tools]# tar xf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-rpm/
[root@mysql mysql-tools]# ll mysql-rpm/
总用量 789340
-rw-r--r-- 1 7155 31415 47836256 7月 2 2021 mysql-community-client-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4694644 7月 2 2021 mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 634632 7月 2 2021 mysql-community-common-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 6806272 7月 2 2021 mysql-community-devel-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23638156 7月 2 2021 mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4243808 7月 2 2021 mysql-community-libs-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1264168 7月 2 2021 mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 454689776 7月 2 2021 mysql-community-server-8.0.26-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 264457624 7月 2 2021 mysql-community-test-8.0.26-1.el7.x86_64.rpm
2)逐个按照顺序来安装MySQL的rpm包
1.安装以来的软件包
[root@mysql mysql-tools]# yum install openssl-devel
2.按照如下顺序安装MySQL
[root@mysql mysql-tools]# cd mysql-rpm/
[root@mysql mysql-rpm]# rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
[root@mysql mysql-rpm]# rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
1.启动mysql
[root@mysql ~]# systemctl start mysqld
[root@mysql ~]# systemctl enable mysqld
2.查看mysql的进程
[root@mysql ~]# ps aux | grep mysql
mysql 13662 1.3 4.6 1771784 369128 ? Ssl 21:01 0:01 /usr/sbin/mysqld
3.查看mysql的端口号
[root@mysql ~]# netstat -lnpt | grep mysql
tcp6 0 0 :::33060 :::* LISTEN 13662/mysqld
tcp6 0 0 :::3306 :::* LISTEN 13662/mysqld
最后一个字段就是root的密码,不容易记忆。
[root@mysql ~]# grep 'password' /var/log/mysqld.log
2022-05-01T13:01:06.618860Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 7DdaV)CKiJ;i
[root@mysql ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
3Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
系统随机生成的root密码不容易记忆,我们下面对root的密码进行修改,MySQL 5.7版本之后对密码复杂性有一定的要求,不过也可以进行调整。
1)调整MySQL账户密码的复杂度
将密码的复杂度设置成简单模式,并将密码的长度设置为最低6位。
mysql> set global validate_password.policy = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.length = 6;
Query OK, 0 rows affected (0.00 sec)
2)修改root的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.06 sec)
在MySQL 8.x中,默认情况下,系统的root用户只允许localhost连接,无法远程访问,我们还需要再创建一个名为root的账号,用于远程访问。
mysql> create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.07 sec)
mysql> grant all on *.* to 'root'@'%';