zoukankan      html  css  js  c++  java
  • 数据库

    
    
    一、介绍:
    mysql数据库管理软件:
    套接字:服务端,客户端;客户端可访问服务端得数据
    1.支持并发;操作得是共享得数据
    2.处理锁,数据安全,性能
    3.用别人得软件,得照着别人得规范,组织自己得语法规则

    本章学得内容:
    1.mysql基本管理
    2.sql语句得学习

    二、概述:
    1、数据库服务器:运行数据库管理软件的计算机
    2、数据库管理软件:mysql,oracle,db2,slqserver mysql被oracle 收购了
    3、库:文件夹
    4、表:文件
    5、记录:事物一系列典型的特征:egon,male,18,oldgirl
    6、数据:描述事物特征的符号

    三、MySQL 介绍:
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。
    mysql是什么
    mysql就是一个基于socket编写的C/S架构的软件
    客户端软件
       mysql自带:如mysql命令,mysqldump命令等
       python模块:如pymysql

    四、数据库管理软件分类:
    分两大类:
       关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
       非关系型:mongodb,redis,memcache

    可以简单的理解为:
    关系型数据库需要有表结构,表结构 = 字段 + 数据类型 + 约束条件
    非关系型数据库是key-value存储的,没有表结构

    五、下载安装:
    1.windows:
    windows - mysql下载安装
    2.Linux:
    http://www.cnblogs.com/linhaifeng/articles/7126847.html
            centos7:
                sudo su
                    yum -y install mariadb- server mariadb
                centos6:
                    yum -y install mysql- server mysql
                启动:
                    systemctl start mariadb
                    systemctl status mariadb
                mysql
                    ...  # 成功了
                centos:
                    设置密码:...mysqladmin -uroot -p password "123"
                    忘记密码 跳过授权
                    systemctl stop mariadb
                启动:
                    mysqld_safe --skip-grant-tables
                sudo su
                mysql -uroot -p 直接登录
                    update mysql.user set password=password("123") where user="root" and host="localhost";
                    flush privileges;
                    exit
                重启mysql 服务
                杀死之前的mysql
                    pkill -9 mysql
                再启动:
                    systemctl start mariadb  # 正常的登录
                mysql -uroot -p123
            ---------------------------------
            统一字符:
                mysql
                s
                exit
                vim /etc/my.cnf
                ini # 和上面一样 复制粘贴 内容.ini 到 my.cnf
                wq!
                systemctl restart mariadb
                mysql
                s
                就修改了... utf8
    
            ---------------------------------
            Ubuntu 安装mysql:
                sudo apt-get install mysql-server mysql-client
                sudo netstat -tap | grep mysql
                mysql -uroot -p123
    
    linux
    linux
        3.mac:
    ***.dmg 安装
            设置环境变量
                /usr/local/mysql
                vim /etc/profile
                    PATH=/usr/local/mysql/bin:/usr/local/mongodb/bin:$PATH
                    export PATH
                    :wq!
                .source /etc/profile  立即生效
                mysql
                >>>: ... 成功了
            mysql
            select user();
            exit;
            mysqladmin -uroot -p password "123"
            mysql -uroot -p123
            mysqladmin -uroot -p123 password "456"
            mysql -uroot -p456
            关掉已经开启的;
            跳过授权启动:
                mysqld_safe --skip-grant--tables
                sudo su
                mysql -uroot -p  # 不用密码也可以登录
            修改密码:
                update mysql.user set password=password("") where user="root" and host="localhost";
                flush privileges;
                exit
            关掉 再正常启动
                ps aux | grep mysql
                kill -9 6334
                kill -9 6249
                kill -9 6432
            正常启动 工具
                mysql -uroot -p  正常启动了 刚才没有设置密码
    
            ---------------------------------
            统一字符:
                mysql
                s
                exit
                vim /etc/my.cnf
                a
                .ini 之前的内容复制 粘贴
                esc :wq!
                重启服务
                mysql
                s  这样就修改了 utf-8
    
    mac
    mac
    六、MySQL启动与查看:
    1.linux平台下查看
    [root@egon ~]# systemctl start mariadb #启动
    [root@egon ~]# systemctl enable mariadb #设置开机自启动
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
    [root@egon ~]# ps aux |grep mysqld |grep -v grep #查看进程,mysqld_safe为启动mysql的脚本文件,内部调用mysqld命令
    mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
    mysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
    [root@egon ~]# netstat -an |grep 3306 #查看端口
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
    [root@egon ~]# ll -d /var/lib/mysql #权限不对,启动不成功,注意user和group
    drwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql

    You must reset your password using ALTER USER statement before executing this statement.
    安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    解决方法:
    step 1: SET PASSWORD = PASSWORD('your new password');
    step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    step 3: flush privileges;

    2.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用户登录本机,密码为空

    八、破解密码:
    1.linux平台下,破解密码的两种方式
    方法一:删除授权库mysql,重新初始化
    [root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!!
    [root@egon ~]# systemctl restart mariadb
    [root@egon ~]# mysql
    方法二:启动时,跳过授权库
    [root@egon ~]# vim /etc/my.cnf #mysql主配置文件
    [mysqld]
    skip-grant-table
    [root@egon ~]# systemctl restart mariadb
    [root@egon ~]# mysql
    MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";
    MariaDB [(none)]> flush privileges;
    MariaDB [(none)]> q
    [root@egon ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启
    [root@egon ~]# systemctl restart mariadb
    [root@egon ~]# mysql -u root -p123 #以新密码登录

    2.windows平台下,5.7版本mysql,破解密码的两种方式:
    方式一
    #1 关闭mysql
    #2 在cmd中执行:mysqld --skip-grant-tables
    #3 在cmd中执行:mysql
    #4 执行如下sql:
    update mysql.user set authentication_string=password('') where user = 'root';
    flush privileges;
    #5 tskill mysqld #或taskkill -f /PID 7832
    #6 重新启动mysql
    方式二
    #1. 关闭mysql,可以用tskill mysqld将其杀死
    #2. 在解压目录下,新建mysql配置文件my.ini
    #3. my.ini内容,指定
    [mysqld]
    skip-grant-tables
    #4.启动mysqld
    #5.在cmd里直接输入mysql登录,然后操作
    update mysql.user set authentication_string=password('') where user='root and host='localhost';
    flush privileges;
    #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了

    九、统一字符编码:
    强调:配置文件中的注释可以有中文,但是配置项中不能出现中文
    #在mysql的解压目录下,新建my.ini,然后配置
    #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
    [mysqld]
    ;skip-grant-tables
    port=3306
    character_set_server=utf8
    default-storage-engine=innodb
    innodb_file_per_table=1

    #解压的目录
    basedir=E:mysql-5.7.19-winx64
    #data目录
    datadir=E:my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据

    #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
    [client]
    port=3306
    default-character-set=utf8
    user=root
    password=123

    #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
    [mysql]
    ;port=3306
    ;default-character-set=utf8
    user=egon
    password=4573

    #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
    统一字符编码
    #1. 修改配置文件
    [mysqld]
    default-character-set=utf8
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    #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
    show variables like '%char%'

    十、初识sql语句:
    sql(Structured Query Language 即结构化查询语言)
    SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
    SQL语言分为3种类型:
    1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
    2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
    3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
    文件夹(库),文件(表),文件内容(记录);
    1.操作文件夹(库):
    增:create database db1 charset utf8
    查:show create database db1;
    show databases;
    改:alter database db1 charset gbk;
    删:drop database db1;
    2.操作文件(表):
    切换文件夹:
    use db1;
    select database();
    增:create table t1(id int,name char);
    查:show tables;
    desc t1;
    show create table t1;
    show create table t1G;
    改:alter table t1 modify name char(6);
    alter table t1 change name name1 char(7);
    删:drop table t1;
    3.操作文件内容(记录):
    增:insert into t1(id,name) values(1,'alice1'),(2,'alice2'),(3,'alice3');
    insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
    查:select id,name from db1.t1;
    select id from db1.t1;
    select * from db1.t1; # 不推荐使用 * 效率低
    改:update db1.t1 set name='alex';
    update t1 set name='egon' where id=2;
    删:delete from t1;
    delete from t1 where id=2;



  • 相关阅读:
    vue : 无法加载文件 C:UsersXXXAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    js全屏和退出全屏浏览器
    js 如何保存代码段并执行以及动态加载script
    计算年龄,精确到年月日
    js闭包问题
    构造函数和继承方法
    js 箭头函数不适用的场景
    获取一组数据的最大值和最小值
    地图
    json传输
  • 原文地址:https://www.cnblogs.com/mumupa0824/p/9415385.html
Copyright © 2011-2022 走看看