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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 这篇文章记录了我在阿里云进行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
相关文章
|
1月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
684 67
|
11天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
29 3
|
11天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
25 3
|
14天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
18天前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
21天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
66 3
|
1月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
172 1
|
1月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
1月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
1月前
|
网络协议 安全 Linux
阿里云国际上如何检查 Linux 上正在使用哪些端口
阿里云国际上如何检查 Linux 上正在使用哪些端口