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


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
76 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
38 3
|
1月前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
102 3
|
2月前
|
JavaScript 前端开发 测试技术
组件化开发:创建可重用的Vue组件
【10月更文挑战第21天】组件化开发:创建可重用的Vue组件
27 1
|
2月前
|
JavaScript 前端开发
vue全局公共组件自动引入并注册,开发效率直接起飞!
【10月更文挑战第14天】vue全局公共组件自动引入并注册,开发效率直接起飞!
55 1
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
108 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
421 0
|
2月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
255 1