zoukankan      html  css  js  c++  java
  • 10.28MySQL的介绍和安装

    数据库是什么

    存数据的仓库

    为什么使用数据库(*********)

    之前使用Excel进行管理数据
    Excel缺点:
    管理不了大量的数据
    不能同时多人操作
    不支持高级操作
    数据库:
    支持高级操作(分组,连表等)

    数据库分类(*********)

    关系型数据库

    对每一列的数据类型会有约束(ID:整型;name:字符串)
    MySQL,maridb→用的比较多,免费,两个是同一个作者
    SqlServer→微软,大学,政府部门,汽车之家
    Oracle→甲骨文,收费,金融公司,阿里
    sqlite→小型的文件数据库,自己玩,没什么人用

    非关系型数据库

    对每一列的数据类型没有约束(字典存取)
    memcache→存内存,十年前产品(新浪博客)
    mongodb→存内存,文档型数据库
    redis→存内存,微博,解决了内存断电即消失问题

    最大区别

    关系型数据库:把数据存在硬盘中(文件)
    非关系型数据库:把数据存在内存中

    MySQL的架构

    类似于Socket的客户端和服务端
    流程:
    MySQL服务端先启动,监听在某一个特定的端口(3306)
    MySQL客户端连接服务端
    MySQL客户端就可以发送相关的操作命令,去操作服务端存储的数据

    MySQL的安装(windows)

    先去官网查看

    安装

    '''
    #1、下载:MySQL Community Server 5.7.16
    http://dev.mysql.com/downloads/mysql/
    #2、解压
    如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:mysql-5.7.16-winx64
    #3、添加环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】
    #4、初始化
    mysqld --initialize-insecure
    #5、启动MySQL服务
    mysqld # 启动MySQL服务
    #6、启动MySQL客户端并连接MySQL服务
    mysql -u root -p # 连接MySQL服务器
    安装
    '''
    

    设置系统的服务

    '''
    上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
    注意:--install前,必须用mysql启动命令的绝对路径
    # 制作MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.7.16-winx64inmysqld" --install
    "D:python培训mysql-5.7.28inmysqld" --install
    # 移除MySQL的Windows服务,在终端执行此命令:
    "c:mysql-5.7.16-winx64inmysqld" --remove
    注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
    # 启动MySQL服务
    net start mysql
    # 关闭MySQL服务
    net stop mysql
    将MySQL服务制作成windows服务
    '''
    

    改密码

    '''
    初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
    设置密码
    [root@egon ~]# mysqladmin -uroot password "123"
    设置初始密码 由于原密码为空,因此-p可以不用
    [root@egon ~]# mysqladmin -uroot -p"123" password "456"
    修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
    命令格式:
    [root@egon ~]# mysql -h172.31.0.2 -uroot -p456
    [root@egon ~]# mysql -uroot -p
    [root@egon ~]# mysql
    以root用户登录本机,密码为空
    '''
    

    常用参数

    -u: user 用户名
    -p(小写): password 密码
    -h: host 主机名或IP mysql -uroot -p -h 192.168.1.10
    -P(大写): port 默认是3306 mysql -uroot -p -h 192.168.1.10 -P 3306

    忘记密码

    '''
    方式一:
    ###  服务端  :服务端:  服务端
    #1 关闭mysql的系统服务
    #2 在cmd中执行:mysqld --skip-grant-tables(意思:不用密码就可以登入)
    ###  客户端  :客户端:  客户端
    #3 在cmd中执行:mysql(相当于执行:mysql -uroot -p)
    #4 执行如下sql指令:
    update mysql.user set authentication_string=password('') where user = 'root';
    flush privileges;(一定要操作)
    ###  然后重新启动服务就可以了
    #5 tskill mysqld #或taskkill -f /PID 7832
    #6 重新启动mysql
    '''
    

    初始MySQL

    SQL指令

    操作数据库

    数据库命名规范

    可以由字母,数字,下划线,@,#,$
    区分大小写
    唯一性
    不能使用关键字create和select
    不能单独使用数字
    最长128位

    create database 数据库名;

    drop database 数据库名;(如果文件夹有数据,也会全部删除)慎用

    删除在添加(alter database 前数据库名 charset 后数据库名)慎用

    show databases;

    使用数据库

    use 数据库名;

    操作数据表

    先切换到文件夹下:use db1

    create table t1(id int,name char);

    drop table t1;

    alter table t1 modify name char(3)

    show tables;

    操作表记录(*********)

    insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');

    delete from t1 where id=1;

    update t1 set name='sb' where id=2;

    select * from t1;

    清空表

    delete from t1; (如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始.)
    truncate table t1; (数据量大,删除速度比上一条快,且直接从零开始.)

    自增和加速查找

    auto_increment (表示:自增)
    primary key (表示:约束(不能重复且不能为空);加速查找)

  • 相关阅读:
    composer 中国全量镜像 laravel-china.org
    Increase PHP script execution time with Nginx
    How to make a USB stick use ISO image file in debian
    Getting svn to ignore files and directories
    Carbon document
    Use Laravel/homestead 环境维护基于 brophp 开发的老项目
    Vagrant WinNFSd
    How to use jQuery countdown plugin
    消息系统的设计与实现
    VMvare 复制的数据库,需要改变的配置
  • 原文地址:https://www.cnblogs.com/793564949liu/p/11755958.html
Copyright © 2011-2022 走看看