xshell+阿里云linux+vue+mysql开发练习

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 这篇文章记录了我在阿里云进行Linux基础学习的过程,以及根据阿里云进行一些简单的开发实践。


开发记录

XShell连接阿里云Linux操作系统

  1. 新建会话
    网络异常,图片无法展示
    |

    网络异常,图片无法展示
    |

  2. 双击连接
    网络异常,图片无法展示
    |

安装MySQL

  1. 在root目录下创建temp目录用于存放压缩包
    mkdir temp
  2. 移动到temp下
    cd temp
  3. 安装lresz
    yum install lrzsz -y
  4. 将下载好的压缩包传入temp
    rz
  5. 解压
    tar -zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  6. 移动到 /usr/local/mysql
    cp mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql -r
  7. 创建mysql用户组
    groupadd mysql
  8. 创建mysql用户
    useradd -r -g mysql mysql
  9. 在mysql目录下授权用户组和用户
    cd /usr/local/mysql
    chgrp -R mysql . //最后的 . 是指对当前目录授权
    chown -R mysql .
  10. 初始化
    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
    网络异常,图片无法展示
    |

    注意: 一定要保留初始密码用于第一次登录
  11. 复制启动文件到服务文件夹(support-files)
    cp mysql.server /etc/init.d/mysql
    cp mysql.server /etc/init.d/mysql
  12. 启动mysql
    service mysql start
    设置开机自启动: systemctl enable mysql
  13. 登录mysql
    mysql -u root -p//输入刚才初始化时的密码
  14. 进入mysql后设置密码
    set password=password("密码");
  15. 关闭防火墙
    service firewalld stop
  16. 设置可通过任意方式访问
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
  17. navicat配置连接(连接失败)
  18. 这里跟虚拟机不一样,需要在阿里云控制台配置安全组
    网络异常,图片无法展示
    |

选择快速添加,选择3306和22进行添加

  1. 再次进行navicat连接

到这里数据库远程连接就完成了。

Vue CLI

快速开发

只需要一个App.vue,对单个文件实现快速开发。

vue servevue build

vue + mysql

  1. 根据下方vue.sql文件写入数据

启动Linux端后开启以下端口:

22:服务端口号

8080:服务器端口号

3306:数据库端口号

3000:服务器端口号

安装异步加载依赖:npm install vue-resource --save

安装中间件依赖:cnpm install express mysql body-parser

将数据库文件写入mysql数据库:

 

初始化

配置 db.js :数据库配置

// 数据库配置文件

module.exports= {

   mysql:{

       host:'192.168.***.***',

       user:'root',

       password:'******',

       database:'vue',

       port:'3306'

   }

}

数据库连接实现增删改查

在接口文件 /api/userApi.js 中设置增删改查接口.

varmodels=require('../db');

 

varexpress=require('express');

 

varrouter=express.Router();

 

varmysql=require('mysql');

 

 

// 连接数据库

varconn=mysql.createConnection(models.mysql);

conn.connect();

 

varjsonWrite=function(res, ret) {

 if(typeofret==='undefined') {

   res.json({

     code: '1',

     msg: '操作失败'

   });

 } else {

   res.json(ret);

 }

};

 

// 增加用户接口

router.post('/addUser', (req, res) => {

 varparams=req.body;

 varsql='insert into user(username, password) values (?, ?)';

 console.log(params);

 conn.query(sql, [params.username, params.password], function(err, result) {

   if (err) {

     console.log(err);

   }

   if (result) {

     jsonWrite(res, result);

   }

 })

});

 

// 查询用户接口

router.post('/queryUser', (req, res) => {

 varparams=req.body;

 varsql=" select * from user where username = '"+params.username+"'";

 console.log(params);

 conn.query(sql, [params.username], function(err, result) {

   if (err) {

     console.log(err);

   }

   if (result) {

     console.log(res);

     jsonWrite(res, result);

   }

 })

});

 

// 修改用户接口

router.post('/updateUser', (req, res) => {

 varparams=req.body;

 varsql=" update user set password = '"+params.password+"' where username = '"+params.username+"'";

 console.log(params);

 conn.query(sql, [params.username], function(err, result) {

   if (err) {

     console.log(err);

   }

   if (result) {

     console.log(res);

     jsonWrite(res, result);

   }

 })

});

 

// 删除用户接口

router.post('/deleteUser', (req, res) => {

 varparams=req.body;

 varsql=" delete from user where username = '"+params.username+"'";

 console.log(params);

 conn.query(sql, [params.username], function(err, result) {

   if (err) {

     console.log(err);

   }

   if (result) {

     console.log(res);

     jsonWrite(res, result);

   }

 })

});

 

module.exports=router;

 

 

后端服务器

// node 后端服务器

 

constuserApi=require('./api/userApi');//接口

constfs=require('fs');

constpath=require('path');//路径

constbodyParser=require('body-parser');//中间件

constexpress=require('express');

constapp=express();

app.use(bodyParser.json());//启用中间件

app.use(bodyParser.urlencoded({extended: false}));

 

// 后端api路由

app.use('/api/user', userApi);

 

// 监听端口

app.listen(3000);

 

console.log('success listen at port:3000......');

 

 

根据四表修改查找功能

// 数据库接口, 实现数据增删改查

varmodels=require("../db");

varexpress=require('express');

varrouter=express.Router();

varmysql=require('mysql');

 

varconn=mysql.createConnection(models.mysql);

conn.connect();

 

varjsonWrite=function(res,ret){

   if(typeofret=='undefined'){

       res.json({

           code:'1',

           msg:"操作失败"

       });

   }else{

       res.json(ret);

   }

}

 

// 查询

router.post('/queryMsg',(req,res)=>{

   varparams=req.body;

   console.log(params)

   varsql="SELECT * FROM "+params.table;

   vardatas=[];

   console.log(params);

   // console.log(sql)

   conn.query(sql,function(err,data,result){

       if(err){    

           console.log("ERR:"+err);

           return;

       }

       console.log(data);

       res.json(data)

       returndata;

   })

});

 

module.exports=router;

//获取数据库列表信息并更新

<script>

exportdefault {

 name: 'myHello',

 data () {

   return {

     msg:[]

   }

 },

 created(){

     this.queryMsg()

 },

 methods:{

     queryMsg(){

         letthat=this;

         this.$http.post('/api/user/queryMsg',{table:"学校新闻数据"},{})

         .then((response)=>{

           console.log(response);

           that.msg=response.body;

           

         })

     }

 }

}

</script>

问题

1.vue init webpack process无限download template问题

解决办法:

webpack版本过低,需要重装webpack

npm uninstall -g webapck

npm install -g webapck

2.eslint报错

网络异常,图片无法展示
|

解决办法:

/build/webpack.base.conf.js 中找到 createLintingRule 将内容注释掉

constcreateLintingRule= () => ({

 // test: /\.(js|vue)$/,

 // loader: 'eslint-loader',

 // enforce: 'pre',

 // include: [resolve('src'), resolve('test')],

 // options: {

 //   formatter: require('eslint-friendly-formatter'),

 //   emitWarning: !config.dev.showEslintErrorsInOverlay

 // }

})

3.vue 界面加载同步渲染 created()

<script>

exportdefault {

 name: 'myHello',

 data () {

   return {

     msg:[]

   }

 },

 created(){

     this.queryMsg()

 },

 methods:{

     queryMsg(){

         letthat=this;

         this.$http.post('/api/user/queryMsg',{table:"学校新闻数据"},{})

         .then((response)=>{

           console.log(response);

           that.msg=response.body;

           

         })

     }

 }

}

</script>

4.自定义表名

created(){

     this.queryMsg({str:"专家介绍数据"})

 },

 methods:{

     queryMsg(req){

         letthat=this;

         this.$http.post('/api/user/queryMsg',{table:req.str},{})

         .then((response)=>{

           console.log(response);

           that.msg=response.body;

           

         })

     }

 }

Uncaught ReferenceError: expertsIntro is not defined


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Linux
linux xshell telnet 进去后如何退出
【8月更文挑战第27天】Telnet协议支持用户远程登录并操控另一台计算机。在Linux系统中结束Telnet会话可采用多种方式:直接输入"exit";利用快捷键Ctrl + ]后跟"quit";同样可通过Telnet命令结合快捷键"Ctrl + ]q"实现;此外,图形界面下直接关闭窗口也是一个简便的选择。用户可根据个人习惯及客户端类型选取合适的方法退出会话。
340 4
|
5月前
|
SQL 关系型数据库 MySQL
【MySQL】根据binlog日志获取回滚sql的一个开发思路
【MySQL】根据binlog日志获取回滚sql的一个开发思路
|
27天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
3月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
3月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
3月前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
110 1
|
3月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
86 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
4月前
|
安全 Unix Linux
Xshell和Xftp的下载和在linux虚拟机中的使用
这篇文章介绍了Xshell和Xftp的下载、安装和使用方法,包括如何在Linux虚拟机中使用它们进行远程连接和文件传输。
Xshell和Xftp的下载和在linux虚拟机中的使用