了解MySQL之前,我们必须连接数据库以及数据库相关的内容

什么是数据

描述事物的符号记录称为数据,它可以表示是为文字,数字,符号等

什么是数据库

数据库是长期存放在计算机内、有组织、可共享的数据集合

什么是DBMS

数据库管理系统,他负责科学地组织和存储数据。

数据库的发展历史:

 人工管理阶段

当时的硬件水平:外存只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备

当时的软件状况:没有操作系统,没有管理数据的软件,数据的处理方式是批处理。

人工管理数据具有以下特点:

1 数据不保存:计算机主要用于科学计算,数据临时用,临时输入,不保存

2 应用程序管理数据:数据要有应用程序自己管理,应用程序需要处理数据的逻辑+物理结构,开发负担很重

3 数据不共享:一组数据只对应一个程序,多个程序之间涉及相同数据时,必须各自定义,造成数据大量冗余

4 数据不具有独立性:数据的逻辑结构或物理结构发生变化后,必须对应用程序做出相应的修改,开发负担进一步加大
View Code

文件系统阶段

硬件水平:有了磁盘、磁鼓等可直接存取的存储设备
软件水平:有了操作系统,并且操作系统中已经有了专门的数据管理软件,即文件系统;处理方式上不仅有了批处理,而且能够联机实时处理

文件系统管理数据具有以下优点:
1 数据可以长期保存:计算机大量用于数据处理,因而数据需要长期保存,进行增删改查操作
2 由文件系统管理数据:文件系统这个软件,把数据组织成相对独立的数据文件,利用按文件名,按记录进行存取。实现了记录内的结构性,但整体无结构。并且程序与数据之间由文件系统提供存取方法进行转换,是应用程序与数据之间有了一定的独立性,程序员可以不必过多考虑物理细节。

文件系统管理数据具有以下缺点:
1 数据共享性差,冗余度大:一个文件对应一个应用程序,不同应用有相同数据时,也必须建立各自的文件,不能共享相同的数据,造成数据冗余,浪费空间,且相同的数据重复存储,各自管理,容易造成数据不一致性
2 数据独立性差:一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义。应用程序的改变,也将引起文件的数据结构的改变。因此数据与程序之间缺乏独立性。可见,文件系统仍然是一个不具有弹性的无结构的数据集合,即文件之间是孤立的,不能反映现实世界事物之间的内存联系。
View Code

数据库系统阶段

硬件水平:有了大容量磁盘,硬件架构下降

软件水平:软件价格上升(开发效率必须提升,必须将程序员从数据管理中解放出来),分布式的概念盛行。

数据库系统的特点:
1 数据结构化(如上图odboy_stu)
2 数据共享,冗余度低,易扩充
3 数据独立性高
4 数据由DBMS统一管理和控制
  a:数据的安全性保护        b:数据的完整性检查

  c:并发控制                    d:数据库恢复            
View Code

数据库的类型

关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
非关系型:mongodb,redis,memcache

本章将主要使用mysql(关系型数据库)

mysql数据的安装(5.7)

  1. 下载安装包:
        进入官网选择,redhat的5.7版本。按键f12.找到下载的连接。使用迅雷下载。
        yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel
  1. 解压安装包:
            tar -xvf 名字
  1. 剪除mariadb的干扰问题
        rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
        rpm -e mariadb-server-5.5.64-1.el7.x86_64 --nodeps
        rpm -e mariadb-* --nodeps
        rpm -qa|grep mariadb
  1.     安装数据库,使用rpm的形式
        rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
        rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
        rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
        rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
  1. 初始化
        mysqld --initialize --user=mysql
  1. 获取密码,然后使用密码登录即可。
         grep 'temporary password' /var/log/mysqld.log
  1. 如果密码登录很麻烦,或者密码已经失效的话。请使用如下处理方式
  2. vim my.cnf
            [mysqld]
             skip-grant-tables
            datadir=/var/lib/mysql
            socket=/var/lib/mysql/mysql.sock
            symbolic-links=0
            log-error=/var/log/mysqld.log
            pid-file=/var/run/mysqld/mysqld.pid
            explicit_defaults_for_timestamp=true
    View Code

     

  1. 然后启动MySQL,进入MySQL无需写入密码,修改root密码
  2.        mysql> use mysql;
            mysql> update mysql.user set authentication_string=password('Keepl023') where user='root';
            mysql> flush privileges;
            Query OK, 0 rows affected (0.00 sec)
            mysql> exit
            在my.cnf文件中,把刚才加入的那一行“skip-grant-tables”注释或删除掉。 
            然后重启MySQL服务后需要执行命令set password=password('newpassword');后,问题搞定。
    View Code

     

 

        service mysqld start
        mysql -u root -pKeepl023
        mysql> use mysql;
        mysql> set password=password('Keepl023');
 
 
第一次登陆进去后必须马上修改密码,不然下次登陆会报错。
 
mysql> show databases;
 
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
 可以忽略:
mysql> set global validate_password_policy=0;       //只验证长度
mysql> set global validate_password_length=6;      //修改密码长度,默认值是8个字符
View Code

mysql> alter user user()identified by"123456";     //修改登陆密码,长度应大于8且有复杂度如:Aa123689#

 成功登陆后,可以创建一个数据库来使用下:
create database stu;
use stu;
create table object(math int,chinese int,english int);
describe stu      //查看属性
insert into object values(01,02,03)
select * from object    //查看表数据
 
 
 
 

 

posted on 2020-03-14 11:34  topass123  阅读(115)  评论(0编辑  收藏  举报