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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 这篇文章记录了我在阿里云进行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。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
11月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
532 41
|
11月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
661 17
|
11月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
341 18
|
11月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
604 11
|
11月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
311 10
|
12月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
528 17
|
12月前
|
Oracle 关系型数据库 MySQL
Oracle linux 8 二进制安装 MySQL 8.4企业版
Oracle linux 8 二进制安装 MySQL 8.4企业版
520 1
|
7月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
792 1
二、Linux文本处理与文件操作核心命令
|
7月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
462 137
|
7月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1239 58