常用命令总结

  • 在centOS7 下面安装 mysql 相关命令:
    • yum install mysql
    • yum install mysql-devel
    • yum install mariadb-server mariadb
    • systemctl start mariadb 启动
    • systemctl stop mariadb 停止
    • systemctl restart mariadb 重启
    • systemctl enable mariadb 开机启动
  • linux 环境进入 mysql 进行操作 :mysql -u root -pxxx 后面 紧挨着 p 的是你的 mysql root 密码
  • pic
    登录mysql
  • 选择要使用的数据库 也就是切换到 mysql :use mysql; 或者叫做在各个数据库之间切换
  • pic
    切换到mysql数据库
  • 查看 mysql 里面存在的数据库:show databases;
  • pic
    查看已存在的数据库
  • 查看一个数据库里面的数据表:show tables;
  • pic
    查看数据库里面的表
  • 新建一个数据库:CREATE DATABASE databaseName; 在创建新的数据库时最好指定 utf-8 编码:CREATE DATABASE databaseName default character set utf8 collate utf8_general_ci; 这样可以有效的避免数据库 中文乱码 的问题
  • pic
    新建一个数据库
  • pic
    建库时设置编码
  • 删除一个数据库:DROP DATABASE databaseName;
  • 创建数据表:一个例子,创建一个表名为 banner_table 的数据表
  • 数据字典定义如下:

    1
    2
    3
    4
    5
    6
    7
        banner(banner_table)
    id 主键 自动递增
    title 标题 varchar(32)
    sub_title 副标题 varchar(16)
    src 图片地址 varchar(64)
    //对应的SQL:
    CREATE TABLE IF NOT EXISTS `banner_table`(`id` INT UNSIGNED AUTO_INCREMENT,`title` VARCHAR(32) NOT NULL,`sub_title` VARCHAR(16) NOT NULL,`src` VARCHAR(64) NOT NULL,PRIMARY KEY (`id`))DEFAULT CHARSET=utf8;
  • pic
    新建表
  • 查看数据表结构:DESC tableName;
  • 增:INSERT INTO tableName (filed1,filed2,filed3) VALUES (v1,v2,v3);插入时字段和值需要一一对应
  • 删:

    1
    DELETE FROM `tableName` WHERE `ID`='123'
  • 改:

    1
    UPDATE `tableName` SET `src`= 'images/img3.jpg' WHERE `id`=3;
  • 查:SELECT * FROM table_name WHERE GROUP BY ORDER BY LIMIT; 查询的子句是有顺序的 按照 WHERE GROUP BY ORDER BY LIMIT 的顺序进行

  • Linux 环境导出数据库 mysqldump -uroot -pmima nameofdatabase > /home/www/fileName.sql

例子:利用 Node.js 查询 Mysql 再发给 ejs 模板渲染页面

  • 服务器部分代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    //server.js
    const express = require('express');//引入express框架
    const expressStatic = require('express-static');//引入express-static中间件
    const bodyParser = require('body-parser');//引入body-parser中间件
    const cookieParser = require('cookie-parser');//引入cookie-parser中间件
    const cookieSession = require('cookie-session');//引入cookie-session中间件
    //const jade = require('jade');//引入jade模板引擎
    //const ejs = require('ejs');//引入ejs模板引擎
    const consolidate = require('consolidate');//引入consolidate模板引擎适配器
    const mysql = require('mysql');//引入mysql
    const fs = require('fs');//引入js模块
    const path = require('path');//引入path模块
    const multer = require('multer');//引入multer中间件
    //In an average web app, only dest might be required, and configured as shown in the following example.
    var upload = multer({dest: 'uploads/'});//指定文件上传目录
    var server = express();//创建http服务器
    //创建连接池
    const db = mysql.createPool({
    connectionLimit : 10,
    host:'localhost',
    user:'root',
    password:'xxxxxxxxxx',
    database:'xxxxxxxxxx'
    });

    server.listen(xxxx);//监听端口
    //1.解析cookie用
    server.use(cookieParser('jfdifghdrihijdrfhdsefsefo'));//req里面就有req.cookies 和 req.signedCookies

    //使用session
    server.use(cookieSession({name:'sess',keys:['123','abc','123456'],maxAge:2*3600*1000}));

    //post数据
    //server.use(bodyParser.urlencoded({extended:false}));//不能处理multipart/form-data类型表单
    server.use(upload.single('f1'));//.single(fieldname)
    //Accept a single file with the name fieldname. The single file will be stored in req.file.

    //使用consolidate 适配模板引擎
    server.set('view engine','html');
    server.set('views','./views');
    server.engine('html',consolidate.ejs);

    //处理用户请求,查询数据,交由 ejs 解析渲染页面,发给用户
    server.get('/',function(req,res){
    db.query('SELECT * FROM banner_table',(err,data)=>{
    if(err) {
    console.log(err);
    res.status(500).send('database error').end();
    }else{
    console.log(data);
    res.render('index.ejs',{banners:data});
    }
    });
    });
    //static静态页面,当页面请求css,js等静态文件时起作用
    server.use(expressStatic('./www'));

    //index.ejs的部分代码:循环使用注册过来的对象数组
    <ul class="clearfix">
    <% for(var i =0;i<banners.length;i++){%>
    <li><img src="<%= banners[i].src %>" alt=""/>
    <div class="text-box">
    <h2><%= banners[i].title %></h2>
    <p><%= banners[i].sub_title %></p>
    </div>
    </li>
    <% } %>
    </ul>