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

    一 :什么是数据(DATA)

    描述事物的符号记录称之为数据,描述事物的符号既可以是数字,也可以是文字、图片、图像、声音、语言等

    据由多种表现形式,它们都可以经过数字化存入计算机

    在计算机中描述,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如;

    1 ryan,male,1997,18,上海,会计,2018

    单纯的一条记录并没有任何意义,如果我们按照逗号作为分隔,以此定义成各个字段的意思,相当于定义表的标题

    1 name,sex,born_year,age,born_address,major,year
    1 ryan ,male,1997,18,上海,会计,2018

    这样我们就可以了解ryan,性别为男,年龄18岁,出生于上海,专业是会计,今年是2018年

    二 什么是数据库(DataBase,简历DB)

    数据库即存放数据的仓库,只不过这个仓库是计算机存储设备上,而且数据是按照一定的格式存放的

    数据库中按照一定的数据模型组织、描述和存储、具有较小的冗余度,较高的数据独立性和以易扩展性,并可以为各种,用户共享

    三 什么是数据库管理系统

    在了解了Data与DB的概念后,如何科学的组织和存储数据,如何高效获取和维护数据成了关键的

    这就用到了一个系统软件---数据库管理系统

    如Mysql、Oracle、SQLite、MSSQL Server

    mysql主要用于大型门户,例如搜狗、新浪,它的主要的优势就是开放源代码,因为开放源代码这个数据是免费的,她现在是甲骨文公司的产品。

    oracle主要用于银行、铁路、飞机场等。该数据库功能强大、软件费用高。也就是甲骨文公司的产品

    sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等。

    四 mysql介绍

    Mysql是一个关系型数据库管理系统,由瑞典Mysql AB公司开发,目前属于Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

    mysql是什么

    #mysql 就是一个基于socket编写的C/B架构的文件
    #客户端软件
            mysql自带:如mysql命令,mysqldump命令等
            python模块:如pymysql

    数据库管理软件分类

    #分两大类:
      关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用
      非关系型:mongodb,redis,memcache
    
    #可以简单的理解为:
        关系型数据库需要有表结构
        非关系型数据库是key-value存储的,没有表结构

    五 下载安装

    1: linux版本

    1.解压tar包
    cd /software
    tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
    mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
    
    2.添加用户与组
    groupadd mysql
    useradd -r -g mysql mysql
    chown -R mysql:mysql mysql-5.6.21
    
    3.安装数据库
    su mysql
    cd mysql-5.6.21/scripts
    ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
    
    4.配置文件
    cd /software/mysql-5.6.21/support-files
    cp my-default.cnf /etc/my.cnf
    cp mysql.server /etc/init.d/mysql
    vim /etc/init.d/mysql   #若mysql的安装目录是/usr/local/mysql,则可省略此步
    修改文件中的两个变更值
    basedir=/software/mysql-5.6.21
    datadir=/software/mysql-5.6.21/data
    
    5.配置环境变量
    vim /etc/profile
    export MYSQL_HOME="/software/mysql-5.6.21"
    export PATH="$PATH:$MYSQL_HOME/bin"
    source /etc/profile
    
    6.添加自启动服务
    chkconfig --add mysql
    chkconfig mysql on
    
    7.启动mysql
    service mysql start
    
    8.登录mysql及改密码与配置远程访问
    mysqladmin -u root password 'your_password'     #修改root用户密码
    mysql -u root -p     #登录mysql,需要输入密码
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;     #允许root用户远程访问
    mysql>FLUSH PRIVILEGES;     #刷新权限

    源码安装mariadb

    1. 解压
    tar zxvf  mariadb-5.5.31-linux-x86_64.tar.gz   
    mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录
    
    2. 权限
    groupadd mysql             //增加 mysql 属组 
    useradd -g mysql mysql     //增加 mysql 用户 并归于mysql 属组 
    chown mysql:mysql -Rf  /usr/local/mysql    // 设置 mysql 目录的用户及用户组归属。 
    chmod +x -Rf /usr/local/mysql    //赐予可执行权限 
    
    3. 拷贝配置文件
    cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf     //复制默认mysql配置 文件到/etc目录 
    
    4. 初始化
    /usr/local/mysql/scripts/mysql_install_db --user=mysql          //初始化数据库 
    cp  /usr/local/mysql/support-files/mysql.server    /etc/init.d/mysql    //复制mysql服务程序 到系统目录 
    chkconfig  mysql on     //添加mysql 至系统服务并设置为开机启动 
    service  mysql  start  //启动mysql
    
    5. 环境变量配置
    vim /etc/profile   //编辑profile,将mysql的可执行路径加入系统PATH
    export PATH=/usr/local/mysql/bin:$PATH 
    source /etc/profile  //使PATH生效。
    
    6. 账号密码
    mysqladmin -u root password 'yourpassword' //设定root账号及密码
    mysql -u root -p  //使用root用户登录mysql
    use mysql  //切换至mysql数据库。
    select user,host,password from user; //查看系统权限
    drop user ''@'localhost'; //删除不安全的账户
    drop user root@'::1';
    drop user root@127.0.0.1;
    select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。
    flush privileges;  //刷新权限
    
    7. 一些必要的初始配置
    1)修改字符集为UTF8
    vi /etc/my.cnf
    在[client]下面添加 default-character-set = utf8
    在[mysqld]下面添加 character_set_server = utf8
    2)增加错误日志
    vi /etc/my.cnf
    在[mysqld]下面添加:
    log-error = /usr/local/mysql/log/error.log
    general-log-file = /usr/local/mysql/log/mysql.log
    3) 设置为不区分大小写,linux下默认会区分大小写。
    vi /etc/my.cnf
    在[mysqld]下面添加:
    lower_case_table_name=1
    
    修改完重启:#service  mysql  restart
    
    源码安装mariadb

    2:windox版本

    #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服务器
    
    安装

    将Mysql服务器制作成windows服务器

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

    六:mysql软件基本管理

    1:启动查看

      未制作系统服务的启动方式

      1、启动服务器

        mysql

      2、启动客户端

        mysql -uroot  -p -h127.0.0.1 -p 3306

        如果是在本机登录mysql服务端可以简写:

          mysql -uroot -p

              制作完系统服务器后就可以鼠标点击启动或关闭mysql:

        windows+r

        输入services.msc

        找到mysql,启动或关闭

    2:破解管理员密码

      1、先关闭mysql服务端

      2、以跳过授权表的方式在命令行中启动mysql服务端

        mysql --skip-grant-tables

      3、客户端直接以无密码的方式登录root用户,修改密码

        mysql -uroot -p

        

    mysql> update mysql.user set password=password("123") where user="root" and host="localhost";
    Query OK, 0 rows affected (0.00 sec)
    Rows matched: 1 Changed: 0 Warnings: 0
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

      4、在命令行中用taskkill杀死mysqld服务,然后正常启动mysqld

     

       taskkill /F /PID 131312 
    
        def password(mingwen):
    
          import hashlib
    
          m=hashlib.md5()
          m.update(mingwen)
          return m.hexdigest()

    七、统一字符编码

      1、在mysql安装目录下新建my.ini文件

      2、修改my.ini

        

            [mysqld]
            character-set-server=utf8
            collation-server=utf8_general_ci
    
            [client]
            default-character-set=utf8
    
            [mysql]
            default-character-set=utf8

      3、重启mysql

      4、客户端登录,输入s查看结果

    八:基本的sql语句

    1、文件夹(库)
        增
            create database db1 charset utf8;
        改
            alter database db1 charset gbk;
        查
            查看所有库的库名
            show databases;
            单独查看某一个库的信息
            show create database db1;
        删
            drop database db1;
    
    2、文件(表)
        首先切换文件夹:
            use db1;
            select database(); #查看当前所在的文件夹
        增
            create table t1(id int,name char);
        改
            alter table t1 modify name char(16);
        查
            查看当前库下所有的表名
            show tables;
            查看t1表的详细信息
            show create table t1;
            查看表结构
            desc t1;
    
        删
            drop table t1;
    
    3、文件的一行内容(记录)
        增
            insert into db1.t1 values
            (1,'egon'),
            (2,'alex'),
            (3,'lxx');
        改
            update db1.t1 set name='sb' where id > 1;
        查
            select id,name from db1.t1;
        删
            delete from db1.t1 where name = "SB" ;
    
    
    
    
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=blackhole;
    create table t4(id int)engine=memory; 
  • 相关阅读:
    百度之星资格赛1001——找规律——大搬家
    HDU1025——LIS——Constructing Roads In JGShining's Kingdom
    DP(递归打印路径) UVA 662 Fast Food
    递推DP UVA 607 Scheduling Lectures
    递推DP UVA 590 Always on the run
    递推DP UVA 473 Raucous Rockers
    博弈 HDOJ 4371 Alice and Bob
    DFS(深度) hihoCoder挑战赛14 B 赛车
    Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)
    DP(DAG) UVA 437 The Tower of Babylon
  • 原文地址:https://www.cnblogs.com/wuchenyu/p/9003296.html
Copyright © 2011-2022 走看看