拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. 数据中心
  3. 新框架系统集合
  4. 正文

ASPNetcore安装过程(Linux 7系列+mysql_5.7.40+ASPNetcore_3.1)

2023年11月29日 1231点热度 0人点赞 0条评论

目录

  • 一、环境要求
    • 1、系统环境:
    • 2、数据库版本:
  • 二、Mysql 数据库安装
    • 1、安装流程:
    • 2、设置mysql表名不区分大小写
      • (1)lower_case_table_names参数详解:
      • (2)查看当前设置
      • (3)更改流程
  • 三、mysql数据库创建、授权
    • 1、更新root用户,可以在外部访问
    • 2、创建netcore数据库
    • 3、查看创建的数据库
    • 4、创建netcore用户并设置密码Data123
    • 5、查看创建的用户
    • 6、更新用户,使用户可以在外部登录
    • 7、防火墙放通3306端口
  • 四、数据导入
    • 1、源数据库导出
    • 2、目的数据库数据导入
  • 五、netcore 依赖环境安装
    • 1、依赖环境安装
      • (1)安装一些包
      • (2)添加微软提供的yum源,linux默认没有提供
      • (3)如果只是部署程序安装(只安装运行时即可)
      • (4)如果需要开发调试安装下面程序()
  • 六、程序部署
    • 1、程序下载安装
      • (1)下载
      • (2)解压安装
    • 2、修改数据库连接配置
    • 3、运行测试
      • (1)Mysql数据库权限授权
      • (2)运行netcore程序
      • (3)后台运行netcore程序(后面可以配置守护进程)
  • 六、问题汇总
    • 1、报错
      • (1)报错Failed to load ,
      • (2)报错FailFast:
      • (3)报错FailFast:
    • 2、时区修改
    • 3、安装libgdiplus 解决导出问题
      • (1)方法1:编译安装-下载安装包:
      • (2)方法2:直接安装即可(如果可以)
      • (3)创建符号链接:
  • 七、安装进程守护
  • 一、linux编译打包netcore程序
    • 1、安装npm依赖程序
    • 2、添加包源
    • 3、查看刚添加的包源
    • 4、后台编译
    • 5、打包输出
    • 6、程序测试部署
  • 二、Jenkins如何实现自动编译和打包部署
    • 1、设置源码版本库
    • 2、构建触发器
    • 3、构建过程
    • 4、构建后操作
  • 三、使用脚本简单实现进程守护
    • 1、编写一个脚本,内容如下,守护mysql程序
    • 2、后台运行守护进程脚本
    • 3、手动停止掉mysql服务进行测试
  • 八、总结

一、环境要求

1、系统环境:

Centos/RHEL/OL7系列

系统安装:https://www.topunix.com/post-4556.html

环境优化:https://www.topunix.com/post-10615.html

2、数据库版本:

mysql5.7系列

二、Mysql 数据库安装

1、安装流程:

--https://www.topunix.com/post-11781.html

2、设置mysql表名不区分大小写

(1)lower_case_table_names参数详解:

其中0:区分大小写,1:不区分大小写

(2)查看当前设置

mysql> show variables like '%lower%';

(3)更改流程

--用root登录,修改 /mysql/data/3306/my.cnf
--在[mysqld]节点下,加入一行: lower_case_table_names=1
--重启MySQL : service mysql restart

三、mysql数据库创建、授权

1、更新root用户,可以在外部访问

mysql> update mysql.user set host='%' where user='root'; 
mysql> flush privileges; 
mysql> select user,host from mysql.user;

2、创建netcore数据库

mysql> create database netcore;

3、查看创建的数据库

mysql> show databases;

4、创建netcore用户并设置密码Data123

mysql> grant all privileges on netcore.* to 'netcore'@'localhost' identified by 'Data123'; 
mysql> flush privileges;

5、查看创建的用户

mysql> select user,host from mysql.user;

6、更新用户,使用户可以在外部登录

mysql> update mysql.user set host='%' where user='netcore'; 
mysql> flush privileges; 
mysql> select user,host from mysql.user; 
+---------+-----------+ 
| user    | host      | 
+---------+-----------+ 
| netcore | %         | 
| root    | 127.0.0.1 | 
| root    | ::1       | 
| root    | %         | 
+---------+-----------+ 
4 rows in set (0.00 sec)

7、防火墙放通3306端口

[root@master01 opt]# firewall-cmd --permanent --add-port=3306/tcp; 
[root@master01 opt]# firewall-cmd --reload

四、数据导入

1、源数据库导出

mysqldump -uroot -p pwproject >pwproject.sql

导出的数据模板

2、目的数据库数据导入

我们导入数据的时候怎么做呢?我们可能会想到还是用mysqldump只要把输出符号换为输入符号即可。其实不然,那样导入后,虽说不报错,但是数据库中是没有任何数据的!

我们就需要直接通过mysql命令来实现了,方法如下:

mysql -uroot -p pwproject < pwproject.sql

五、netcore 依赖环境安装

1、依赖环境安装

(1)安装一些包

yum install -y libunwind
yum install -y icu

(2)添加微软提供的yum源,linux默认没有提供

mv /etc/yum.repos.d/* /etc/yum.repos.d/bk/
yum remove packages-microsoft-prod
rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
或:
cd /etc/yum.repos.d
rpm -Uvh https://download.topunix.com/ASPnetcore/dotnet-Linux7/packages-microsoft-prod.rpm

(3)如果只是部署程序安装(只安装运行时即可)

yum clean all
yum install -y aspnetcore-runtime-3.1

注意:之前只安装此依赖环境去部署我们的程序的时候有出现无法启动的情况,如果出现无法启动的情况建议把开发调试环境也一起安装。

(4)如果需要开发调试安装下面程序()

yum install -y dotnet-sdk-3.1.x86_64

--查看安装的版本号

dotnet --version

* .Net Core SDK 用于开发者构建 App,包含有较多开发相关的工具 包(实际上,SDK 也是包含 Runtime)
* .Net Core Runtime 仅作为运行时使用,不包含开发工具包,体积较小。
既然要部署 Asp.Net Core,自然离不开 Runtime(如果装 SDK 也能跑,不过不推荐在运行环境装 SDK)。

六、程序部署

1、程序下载安装

(1)下载

mkdir -p /data
cd /data
wget https://download.topunix.com/ASPnetcore/publish.zip

(2)解压安装

cd /data
unzip publish.zip

2、修改数据库连接配置

vi /data/publish/appsettings.json 

 "Server": "192.168.1.41",
//端口号
"Port": 3306,
//用户名
"UserId": "root",
//密码
"Password": "rootroot",

3、运行测试

(1)Mysql数据库权限授权

grant all on *.* to 'pwproject'@'%';
flush privileges;

(2)运行netcore程序

cd /data/publish/
dotnet NetModular.Demo.WebHost.dll --urls http://*:5000

(3)后台运行netcore程序(后面可以配置守护进程)

nohup dotnet NetModular.Demo.WebHost.dll --urls http://*:5000 &

六、问题汇总

1、报错

(1)报错Failed to load ,

 error: libunwind.so.8: cannot open shared object file: No such file or directory

Failed to bind to CoreCLR at ‘/root/dotnet/shared/Microsoft.NETCore.App/2.0.0/libcoreclr.so‘

解决办法:yum install libunwind

(2)报错FailFast:

 Couldn‘t find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.

解决办法:yum install icu

(3)报错FailFast:

[root@peerp PEProject]# dotnet NetModular.Demo.WebHost.dll --urls http://*:5000
Unhandled exception. System.InvalidOperationException: Sequence contains no elements
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at Dapper.SqlMapper.ThrowZeroRows(Row row) in /_/Dapper/SqlMapper.cs:line 1158
at Dapper.SqlMapper.QueryRowImpl[T](IDbConnection cnn, Row row, CommandDefinition& command, Type effectiveType) in /_/Dapper/SqlMapper.cs:line 1212
at Dapper.SqlMapper.QueryFirst[T](IDbConnection cnn, String sql, Object param, IDbTransaction 
...

解决办法:数据库PEProject问题,删除数据库重新安装,并导入数据。

2、时区修改

timedatectl status
timedatectl set-timezone “Asia/ShangHai"

3、安装libgdiplus 解决导出问题

(1)方法1:编译安装-下载安装包:

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.4.tar.gz

--编辑安装过程见:

https://www.topunix.com/post-8352.html

(2)方法2:直接安装即可(如果可以)

yum install -y libgdiplus0

(3)创建符号链接:

ln -s /usr/local/lib/libgdiplus.so /usr/lib64/libgdiplus.so
ln -s /usr/local/lib/libgdiplus.so /usr/libgdiplus.so

七、安装进程守护

https://www.topunix.com/post-5795.html


 

至此,netcore安装完毕,下述文档无需再看。


一、linux编译打包netcore程序

1、安装npm依赖程序

curl --silent --location https://rpm.nodesource.com/setup_12.x | bash - yum install -y nodejs

2、添加包源

[root@master01 ~]# dotnet nuget add source http://172.18.1.232:8081/repository/nuget-group/ 
[root@master01 ~]# npm config set registry http://172.18.1.232:8081/repository/group-npm/

3、查看刚添加的包源

[root@master01 ~]# cd /data/NetModular.PEProject/src/WebUI/ 
[root@master01 WebUI]# npm install 
[root@master01 WebUI]# npm update 
[root@master01 WebUI]# npm run build

4、后台编译

[root@master01 WebHost]# dotnet clean 
[root@master01 WebHost]# dotnet pack 
[root@master01 WebHost]# dotnet restore 
[root@master01 WebHost]# dotnet build

5、打包输出

[root@master01 WebHost]# dotnet publish -c Release -o /data/publish

6、程序测试部署

dotnet NetModular.Demo.WebHost.dll --urls http://*:5000

 

二、Jenkins如何实现自动编译和打包部署

1、设置源码版本库

2、构建触发器

3、构建过程

 

cd /root/.jenkins/workspace/NetCore_Build/NetModular.PEProject/src/WebUI 
/usr/local/node-v12/bin/npm update 
/usr/local/node-v12/bin/npm run build 
cd /root/.jenkins/workspace/NetCore_Build/NetModular.PEProject/src/WebHost/ 
dotnet clean 
dotnet pack 
dotnet restore 
dotnet build 
dotnet publish -c Release -o /data/publish

4、构建后操作

scp -r /data/publish 172.18.1.232:/opt 
ssh 172.18.1.232 "bash /opt/net.sh"

脚本文件

#!/bin/bash 
pkill dotnet 
mv  /data/publish /data/publish_`date +%Y%m%d%H%M` 
mv /opt/publish /data/ 
cd /data/publish 
#BUILD_ID=dontKillMe 
nohup dotnet NetModular.Demo.WebHost.dll --urls http://*:5000 >> nohup.out &

三、使用脚本简单实现进程守护

1、编写一个脚本,内容如下,守护mysql程序

vim pid.sh 
while true; 
do 
        server=`ps aux | grep mysql| grep -v grep` 
        if [ ! "$server" ]; then 
           nohup /etc/init.d/mysqld57 start & 
        fi 
        sleep 5 
done

2、后台运行守护进程脚本

nohup sh pid.sh &

3、手动停止掉mysql服务进行测试

[root@master01 ~]# /etc/init.d/mysqld57 stop

八、总结

  1. 数据盘挂载(添加、分区、LVM创建)
  2. mysql安装(yum、rpm、源码编译)
  3. dotnet安装
  4. npm环境安装
  5. netcore部署
  6. netcore在linux中的编译打包
  7. Jenkins流程简单了解
  8. 简单设置进程守护
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2023年12月27日

admin

这个人很懒,什么都没留下

打赏 点赞
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号