Ubuntu+dotnetcore+mysql部署

打开命令提示符并运行以下命令:

wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

安装.NET SDK

更新可用于安装的产品,然后安装.NET SDK

在命令提示符中,运行以下命令:

sudo apt-get install apt-transport-https

sudo apt-get update

sudo apt-get install dotnet-sdk-2.1

 

 

cd /home/ubuntu/mvcapp/publish

dotnet Chloe.Admin.dll

 

 

安装 Nginx

sudo apt-get install nginx

通过运行以下命令显式启动:

sudo service nginx start

确认浏览器显示 Nginx 的默认登陆页。 可在 http://<server_IP_address>/index.nginx-debian.html 访问登陆页面。

配置 Nginx

若要将 Nginx 配置为反向代理以将请求转接到 ASP.NET Core 应用,请修改 /etc/nginx/sites-available/default 在文本编辑器中打开它,并将内容替换为以下内容:

nginx复制

server {

    listen        80;

    server_name   example.com *.example.com;

    location / {

        proxy_pass         http://localhost:5000;

        proxy_http_version 1.1;

        proxy_set_header   Upgrade $http_upgrade;

        proxy_set_header   Connection keep-alive;

        proxy_set_header   Host $host;

        proxy_cache_bypass $http_upgrade;

        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header   X-Forwarded-Proto $scheme;

    }

}

 

完成配置 Nginx 后,运行 s

udo nginx -t 

来验证配置文件的语法。 如果配置文件测试成功,可以通过运行

 sudo nginx -s reload 

强制 Nginx 选取更改。

 

 

创建服务文件

创建服务定义文件:

bash复制

sudo nano /etc/systemd/system/kestrel-helloapp.service

以下是应用的一个示例服务文件:

 

[Unit]

Description=Example .NET Web API App running on Ubuntu

 

[Service]

WorkingDirectory=/home/ubuntu/mvcapp/publish

ExecStart=/usr/bin/dotnet /home/ubuntu/mvcapp/publish/Chloe.Admin.dll

Restart=always

# Restart service after 10 seconds if the dotnet service crashes:

RestartSec=10

KillSignal=SIGINT

SyslogIdentifier=dotnet-example

User=www-data

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

 

[Install]

WantedBy=multi-user.target

 

必须转义某些值(例如,SQL 连接字符串)以供配置提供程序读取环境变量。 使用以下命令生成适当的转义值以供在配置文件中使用:

systemd-escape "<value-to-escape>"

保存该文件并启用该服务。

sudo systemctl enable kestrel-helloapp.service

启用该服务,并确认它正在运行。

sudo systemctl start kestrel-helloapp.service

sudo systemctl status kestrel-helloapp.service

 

 

 

 

 

 

 

MYSQL:

1. sudo apt-get install mysql-server

 

2. apt-get isntall mysql-client

 

3.  sudo apt-get install libmysqlclient-dev

 

sudo chmod 777 /etc/mysql/mysql.conf.d/mysqld.cnf

 

sudo service mysql restart

sudo ufw allow 3306

 

 

mysql -u root -p

 

drop database Chloe;

 

mysqldump -h 127.0.0.1 -u root -p Chloe > admin.sql

 

mysqladmin -h 127.0.0.1 -u root -p create Chloe

mysqldump -h 127.0.0.1 -u root -p Chloe < /home/ubuntu/admin.sql

 

 

MySQL允许远程访问的设置

1.注释bind-address = 127.0.0.1

代码如下:


>sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 127.0.0.1注释掉(即在行首加#),如下:

代码如下:


# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address          = 127.0.0.1

除了注视掉这句话之外,还可以把后面的IP地址修改成允许连接的IP地址。但是,如果只是开发用的数据库,为了方便起见,还是推荐直接注释掉。

从上面的注释中,可以看出,旧版本的MySQL(从一些资料上显示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用旧版本的小伙伴请注意一下。

2.删除匿名用户

登录进数据库:

代码如下:


>mysql -uroot -p123456


然后,切换到数据库mysqlSQL如下:

代码如下:


use mysql;


然后,删除匿名用户。SQL如下:

代码如下:


delete from user where user='';

3.增加允许远程访问的用户或者允许现有用户的远程访问。

接着上面,删除匿名用户后,给root授予在任意主机(%)访问任意数据库的所有权限。SQL语句如下:

代码如下:


mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;


如果需要指定访问主机,可以把%替换为主机的IP或者主机名。另外,这种方法会在数据库mysql的表user中,增加一条记录。如果不想增加记录,只是想把某个已存在的用户(例如root)修改成允许远程主机访问,则可以使用如下SQL来完成:

代码如下:


update user set host='%' where user='root' and host='localhost';

4.退出数据库

代码如下:


mysql> exit

MySQL Shell执行完SQL后,需要退出到Bash执行系统命令,需要执行exit。因为这个太常用也太简单。以下内容就提示退出,不再重复列出这个命令。

5.重启数据库

完成上述所有步骤后,需要重启一下数据库,才能让修改的配置生效。执行如下命令重启数据库:

代码如下:


>sudo service mysql restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值