zoukankan      html  css  js  c++  java
  • 初识数据库MySQL

    一、认识数据库

     1:什么是数据(Data)

       描述事物的符号记录被称为数据,这个符号可以是数字,文字,图片,声音,语言等

    2:什么是数据库(DataBase,简称DB)

      数据库是存放数据的仓库,库一般存放在计算机存储设备上,而数据是按一定的格式存放的

    3:什么是数据库管理系统(DataBase Mangement System简称:DBMS)

      关系型数据:数据与数据之间可以有关联和限制的;关系型的数据库通常都是表结构,也就是意味着你在用关系型数据的时候

      非关系型数据库:是以key-value存储的,没有表结构

    关系型:如:sqllite,db2,oracle,access,sq1 sever,MySQL,  注意:sql语句通用

    非关系型:mongodb(文档型数据,非常接近关系型的非关系型数据), redis, memcache

    二、初识MySQL

      1、MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司

    mysql是什么?

      就是一个基于socket(套接字)编写的c/s架构的软件,本质就是一款基于网络通信的应用软件 

        服务端
            -基于socket通信
            -收发消息
            -SQL语句(是一个公共的标准)
        客户端
            -基于socket通信
            -收发消息
            -SQL语句

    ps:MySQL 不仅仅支持MySQL的客户端来操作,也支持其他编程语言直接操作

      python ,java,c++,php,c 等,语法都不一样而已

    2、相关的概念:

     MySQL其实也可以把它看成一款支持远程操作文件的软件

    库:就是文件夹

    表:就是文件

    记录:文件内一行行的数据叫做一条条的记录

    表头:就是表格的第一行数据

    字段:字段名+字段类型

    三、安装MySQL及使用

      在IT行业,不要轻易的尝试安装最新版本的软件。不稳定,容易出现不可必要的Bug,且不易修复,需谨慎。

    1、大致的步骤:

      官网下载(5.7/5.6版本)>>下载后解压>>打开找到bin目录下的mysl.exe,复制路径>>>添加到环境变量>>>

    用管理员权限打开CMD>>>mysqld打开服务端>>mysql -uroot -p 打开连接服务端>>把服务端制作成系统服务(开机启动) 

    2、命令行启动:D: (切换到D盘)>>>cd +exe所在的文件夹路径 >>输入 mysql.exe或者mysqld.exe

    3、常用的操作命令:

      (1)mysql中的sql语句是以分号;为结束的,不输分号,默认为你没有输完,会继续等待输入,

      (2)当命令输入错误的时候  可以用\c取消前面的命令  cancel

      (3)\s查看 mysql服务端简单配置

    4、客户端登录: mysql -h 127.0.0.1 -P 3306 -uroot -p  可以简写:mysql -uroot -p

      如果不输入用户名和密码 默认是访客模式登陆  所能用到的功能很少

    5、客户端退出登陆:exit;   quit;

    6、查看所有的数据库:show databases;

    7、查看某个进程: tasklist |findstr 名称(mysql或mysqld)

    8、杀死进程: taskkill /F /PID 进程号(动态的)

    9、制作环境变量
          将启动文件所在的路径添加到系统的环境变量中
        注意:配置完之后一段要重新启动mysql服务端及cmd终端
    10、将mysqld制作成系统服务
          制作系统服务 你的cmd终端一定要是管理员身份
        mysqld --install
     net start mysql 查看msyql服务是否起来
    报错:
    C:\Windows\system32>net start mysql
    The MySQL service is starting.
    The MySQL service could not be started.
    The service did not report an error.
    More help is available by typing NET HELPMSG 3534.

    解决:

    1)删除mysql安装主目录下的data目录下所有文件
    
    2)之后两行命令
    
    mysqld --initialize 
    
    mysqld --initialize-insecure 
    11、修改密码
          没有密码的情况下
              mysqladmin -uroot -p password 123
          有密码的情况下
              mysqladmin -uroot -p123(原始密码) password 123456
    """
    3、修改root用户密码
    
    1)通过root无密码登录mysql
    
    mysql -u root -p
    
    password:直接回车
    
    2)修改root用户密码
    
    update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
    ""
    ————————————————
    12、破解密码
     
      先将已经启动的服务端停止掉
     1.跳过用户名和密码的验证功能 启动服务端
            mysqld --skip-grant-tables  启动服务端 跳过授权表
        2.修改管理员用户对应的密码
            update mysql.user set password=password(123) where user='root' and host='localhost';
        3.关闭当前服务端  重新以校验用户名密码的方式启动
        4.正常以用户名密码的方式 连接mysql服务端

    13:配置文件

     \s查看 mysql服务端简单配置
        通常情况下配置文件的后缀都是ini结尾
        mysql自带的配置文件不要修改
        但是你可以新建一个配置文件 my.ini
        mysql服务端在启动就会自动加载你的my.ini配置文件内的配置
        修改完配置文件之后需要先将服务端停止  重新启动 才能生效
        修改了配置文件一定要重启服务端
    #mysql5.5以上:修改方式有所改动
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    
    #2. 重启服务
    #3. 查看修改结果:
    \s

    my.ini 配置文件

    [Client]
    #设置3306端口
    port = 3306
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=C:\xmox\mysql-5.7.10-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=C:\xmox\mysql-5.7.10-winx64\data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8

    也可以在配置文件中,客服端里绑定用户和密码 输入mysql 直接就可以以管理员的身份运行,查看

    四、数据库的基本操作:

    库:类似于文件夹

            增
                create database db1;
    
            查
                show databases;  查所有
                show create database db1;  查单个
    
            改
                alter database db1 charset='gbk';  修改编码
    
            删
                drop database db1;  删库        

     表:类似于文件

    在创建表的时候 需要先指定库
                指定库:  use 库名
                查看当前虽在的库: select database()
    
    
            增
                create table userinfo(id int,name char);
    
            查
                show tables;  查看某个库下面的所有的表
                show create table userinfo;
                desc userinfo;    <==> describe userinfo;
            改
                alter table userinfo modify name char(32);
            删
                drop table userinfo;

    记录:文件内一行行的数据叫做一条条的记录

    先创建一个库或者指定一个已经存在的库
            切换到该库下 创建表
            然后再操作记录
    create database db1; create table userinfo(id int,name char(
    32),password int); 增 insert into userinfo values(1,'jason',123); 插入单条数据 insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据 查 select * from userinfo; 查询所有的字段信息 select name from userinfo; 查询指定字段信息 select id,name from userinfo where id=1 or name=tank; 带有筛选条件的字段信息 改 update userinfo set name='kevin' where id=1; 修改数据的一个字段信息 update userinfo set name='jason',password=666 where id=1; 修改数据的多个字段 删 delete from userinfo where id =1; 指定删符合条件的数据 delete from userinfo; 将表中的数据全部删除

     忘记root密码,如何修改?

    MySQL数据库查看密码的方法如下:

    以系统管理员身份运行cmd.

    查看mysql是否已经启动,如果已经启动,就停止:net stop mysql.

    切换到MySQL安装路径下:D:\WAMP\MySQL-5.6.36\bin;如果已经配了环境变量,可以不用切换了。

    在命令行输入:mysqld -nt --skip-grant-tables

    重启以管理员身份运行一个cmd,输入:mysql -uroot -p,Enter进入数据库。

    如果不想改密码,只是想看原来的密码的话,可以在命令行执行这个语句

    select host,user,password from mysql.user;//即可查看到用户和密码

    如果要修改密码的话,在命令行下 依次 执行下面的语句

    use mysql
    update user set password=password("new_pass") where user="root";// 'new_pass' 这里改为你要设置的密码
    flush privileges;
    exit
     
     
      
     
     


          

      

      

  • 相关阅读:
    解析Javascript事件冒泡机制
    LeetCode——Flatten Binary Tree to Linked List
    流动python
    HDU2586
    Cannot find ActionMappings or ActionFormBeans collection
    reactor设计模式
    简单的Ajax应用实例
    CString——Left、Right、Find、ReverseFind
    MATLAB新手教程
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/Gaimo/p/11366371.html
Copyright © 2011-2022 走看看