day01 mysql
    
一.认识mysql
    关系型数据库:
        最流行的关系型数据库管理系统,支持大型数据库,处理上千万条记录
        关系型: oracle, sql_server, mysql: sql语句通用; 需要有表结构
        非关系型: mongodb, redis, memcache; key-value形式, 没有表结构
    应用环境: 
        lamp, lnmp
    mysql是什么: 
        一个基于socket编写的c/s架构的软件
    常用术语:
        数据库服务器      #服务器(对内存要求较高)
        数据库管理系统    #如: mysql软件开源 oracle收费 sql_server收费
        数据库            #存放数据的仓库
        表
        记录              #一行数据
        字段
        数据              #描述事物的符号记录称为数据, 经过数字化后存入计算机
        冗余              #存储两倍数据,降低了性能,但提高了安全性
        主键              #是唯一的
        外键              #用于关联两个表
        索引              #加快查询, 是一种数据结构
        参照完整性        #要求关系中不允许引用不存在的实体, 目的: 保持数据的一致性
 
二.mysql的安装(window版本)
    server端:
    1.官网下载 https://dev.mysql.com/downloads/mysql/
        版本: 5.7.28 64位软件, mysql5.5 - mysql5.7 语法基本差不多
    2.解压
        可以安装在指定目录:D:\mysql-5.7.28-winx64, 直接指定D盘, 安装目录解压可自动创建
    3.添加环境变量
        将安装目录下的bin目录路径,D:\mysql-5.7.28-winx64\bin添加到系统的环境变量中
    4.初始化  
        mysqld --initialize-insecure    #(initialize 初始化; insecure 不安全的)  
        普通用户没有权限? 右击左下角按钮, 选择"window powershell(管理员)",进去cmd管理员模式
            在安装目录下生成data目录,目录下有以下库
                mysql:授权库
                performance_schema (性能架构:)
                sys:系统库
                test:测试库,有的初始化后有这个库
    5.开启服务
        mysqld :命令行会夯住, 说明已经开启. 任务管理器可以看到mysql进程
   
     client端:
    1.连接mysql server, 第一次连接没有密码, password:提示的时候, 直接回车进入
        # mysql -uroot -p
    2.查看数据库:
        > show databases;
    3.创建数据库:
        > create database db1;
    4.查看数据库的版本信息等(端口号,字符集,)
        >  \s;
    5.退出数据库
        > exit
    6.管理员查看mysql进程
        # tasklist            #查看windows所有进程
        # tasklist | findstr mysql        (task 任务)
    7.管理员杀掉mysql进程, 根据上面命令找的PID
        # taskkill /F /PID 366824
    
    mysql服务: (window上添加mysqld服务)
    1.管理员安装mysqld服务
        # mysqld --install
    2.管理员卸载mysqld服务
        # mysqld --remove
    3.管理mysqld服务
        方式一.点来点去
            可以在window"服务"里,找到mysqld,启动,停止,暂停,重启
        方式二.管理员在命令行操作
            # net start mysql
            # net stop mysql
    
  mysqld设置密码:
    1.查看当前登录的用户账号
        > select user();    #mysql 的函数user()
    2.设置密码:
        方式一:命令行设置, 或修改密码, 123456暴露了不安全, 所以一般不用这种方法,而且设置的时候也会提示warning insecure
            # mysqladmin -uroot -p password "123456"        //不暴露老密码: 当第一次设置时,提示password直接回车, //若之前有密码,当提示password时,输入原密码
            # mysqladmin -uroot -p"123456" password "123"   //暴露老密码: -p后面没有空格,否则报错,这两个password后面的是新密码 
        方式二:sql语句设置
            > update mysql.user set authentication_string=password('123') where User='root';       #注意修改user表后, 不会立即生效(authentication 身份验证)
            > flush privileges;                                                                    #刷新权限,使user表立刻生效(不然,只能等重启mysql时才会生效)
            #用password()函数给mysql.user表的某个用户所在记录的'身份验证字段'赋值新的密码字符串
    3.忘记密码?
        root用户可跳过授权登录服务器, 然后重置密码即可:
        步骤一:root用户登录"以跳过授权表的方式开启的mysql服务器",先停掉之前的"以授权方式登录的mysql服务器"
            # net stop mysql
            跳过授权方式一:
                命令行启动服务时加参数,如下
                # mysqld --skip-grant-tables
            跳过授权方式二:
                写入配置文件: my.ini的 [mysqld] 下追加一行: skip-grant-tables
                然后启动服务: 注意使用这个方式的时候, 修改完密码,一定要把配置文件中的这个参数去掉
            > mysql -uroot -p
        步骤二: 用sql语句设置密码,命令行的设置密码此时无法使用
            > update mysql.user set authentication_string=password('123') where User='root';    #authentication_string字段和之前mysql版本不一样, 需注意,老的是password关键字
            > flush privileges;
        步骤三:退出"跳过授权方式的mysqld", 重新开启mysqld服务
            > tasklist | findstr mysql
            > taskkill /F /PID 382352
            # net start mysql
    
    统一字符编码
        1.查看默认字符集,
            > \s;
            Server characterset:    latin1        //默认字符集部分
            Db     characterset:    latin1
            Client characterset:    gbk
            Conn.  characterset:    gbk
        2.创建mysql的配置文件, 在安装目录下创建 my.ini
            [mysqld]
            # 设置mysql的安装目录
            basedir=D:\mysql-5.7.28-winx64
            # 设置mysql数据库的数据的存放目录,必须是data
            datadir=D:\mysql-5.7.28-winx64\data
            sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES      #(strict 强制,严格)    
            # mysql端口
            port=3306
            # 字符集
            [mysqld]
            character-set-server=utf8
            collation-server=utf8_general_ci
            [client]
            default-character-set=utf8
            [mysql]
            default-character-set=utf8
        3.重启mysql服务: 加载配置文件
        4.连接mysql,查看字符集
            > \s;
            Server characterset:    utf8
            Db     characterset:    utf8
            Client characterset:    utf8
            Conn.  characterset:    utf8
 
    创建mysql用户和用户授权
    1.创建用户名和设置密码
         create user 'bajie'@'192.168.150.%' identified by '';    //% 号为通配符,代表.* ,  _号代表. , by后面''填写密码, 新用户默认无任何权限(identified 鉴定)
    2.删除用户
        drop user 'bajie'@'192.168.150.%';
    3.修改用户名
        rename user 'bajie'@'192.168.150.%' to 'bajie'@'%';        //可以修改用户名和登录的地址 
    4.修改用户密码
        set password for 'bajie'@'%'=password('123');   
    5.给用户授权
        grant select,insert,update on db1.* to 'wukong'@'%';
        grant all privileges on *.* to 'wukong'@'%';               //授所有权限, 但不包括授权的权限
    6.取消用户权限
        revoke all privileges on *.* from 'wukong'@'%';
    7.查看某个用户的授权
        show grants for 'wukong'@'%';
    
      建库建表
> create database db1;
> create table db1.t1(id int,name char(10)); 
> create table  db1.t1(id int,name char(10)) default charset='utf8';  //指定编码创建表
> show databases;
> show tables;
> desc db1.t1;                                                    //查看表结构
> insert into db1.t1(id,name) values(1,'tongxue');                //插入一条记录
> insert into db1.t1(id,name) values(2,'tongxue'),(3,'悟空');     //插入多条记录
> show create table db1.t1;                                       //查看当时是如何创建这个表的
> drop table db1.t1;                                              //删除表
 
 
 
内容总结
    1.mysql是基于c/s架构的软件
    2.如何安装mysql
    3.安装mysql服务
        # mysqld --install
        # mysqld --remove
        # net start mysql
        # net stop mysql
    4.破解密码
        # mysqld --skip-grant-tables
    5.统一字符编码
        my.ini
        > \s;
    6.创建用户
        > create user 'username'@'hostname' identified by 'password';
    7.给用户授权
        > grant all privileges on *.* to 'username'@'hostname';
    8.撤销用户权限
        > revoke all privileges on *.* from 'username'@'hostname';
    9.sql语句
        > select user();
        > show databases;
        > create database db1;
        > create table db1.t1(id int,name char(10)); 
        > insert into db1.t1(id,name) values(1,'bajie'), (2,'wukong'); 

day01 mysql认识 安装 配置 起服务 密码 字符集 用户授权的更多相关文章

  1. mysql 免安装配置 数据库修改密码和远程IP登陆

    MySQL Windows安装包说明: 1.mysql-5.5.20-win32.msi:Windows 安装包,图形化的下一步下一步的安装. 2.mysql-5.5.20.zip,这个是window ...

  2. MySQL初次安装配置及修改密码

    安装前的准备工作: 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql-8.0.11 下. 接下来我们需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 ...

  3. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  4. Mysql主从安装配置

    Mysql主从安装配置   环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2  一. MySQL主服务器配置 1.编辑配置 ...

  5. 在win2003上安装配置win 服务 遇到的问题

    在win2003上安装配置win 服务 win服务安装后启动不起来 .. 没有装.net framework4.0   要装这个版本 mysql-connector-net-6.3.4.zip    ...

  6. mysql主从复制安装配置

    mysql主从复制安装配置 基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.182.111(主) node2:192.168.1 ...

  7. 记一次 mysql主从复制安装配置 过程

    mysql主从复制安装配置 1.centos安装及准备 去centos官网下载相应source版本的镜像文件并在vmware中安装,安装中会遇到填写installation source,输入以下即可 ...

  8. [mysql]brew 安装 配置 操作 mysql(中文问题)

    mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...

  9. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置NTP服务,保证集群时间保持同步

    一.所有节点上使用yum安装配置NTP服务yum install ntp -y 二.选定一台节点作为NTP server, 192.168.58.11修改/etc/ntp.conf vim /etc/ ...

随机推荐

  1. 实现一个EventEmitter类,这个类包含以下方法: on/ once/fire/off

    实现一个EventEmitter类,这个类包含以下方法: on(监听事件,该事件可以被触发多次)- once(也是监听事件,但只能被触发一次)- fire(触发指定的事件)- off(移除指定事件的某 ...

  2. timezone

    Calendar cal2 = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss&q ...

  3. 【读书笔记】剑指offer

    导语 所有的编程练习都在牛客网OJ提交,链接: https://www.nowcoder.com/ta/coding-interviews 九章算法的 lintcode 也有这本书的题目.https: ...

  4. Android项目中实现native调用

    转载自搜狗测试公众号,本人学习使用,侵权删 最近小编在做公司输入法项目中java与native交互部分的测试,先简单学习了java代码调用native代码的实现原理,本次与大家一起分享jni协议,了解 ...

  5. vue-resource请求

    man.js引入 import Vue from 'vue' import VueResource from 'vue-resource' import App from './App.vue' Vu ...

  6. python 爬取头条视频

    知识点总结 1. 利用webdriver 模拟浏览器访问 from selenium import webdriver 2.import requests 3. from bs4 import Bea ...

  7. Unity Document

    { https://docs.unity3d.com/ScriptReference/Events.UnityEventTools.html }

  8. Java——面向对象知识总结

    面向对象的三条主线: 一.类及类的成分 1.类与类的关系: java程序是关注于类的设计. 类从代码的角度:并列关系! 从执行.设计的角度:关联关系.继承关系.聚合关系 class A{ } clas ...

  9. 高级运维(五):构建memcached服务、LNMP+memcached、使用Tomcat设置Session、Tomcat实现session共享

    一.构建memcached服务 目标: 本案例要求先快速搭建好一台memcached服务器,并对memcached进行简单的添.删.改.查操作: 1> 安装memcached软件,并启动服务d ...

  10. gensim中TaggedDocument 怎么使用

    我有两个目录,我想从中读取它们的文本文件并给它们贴上标签,但我不知道如何通过taggedDocument来实现这一点.我以为它可以作为标记文档([strings],[labels])工作,但这显然不起 ...