-
群昵称:wyxtnbp 很高兴再次收到华为云小助手3邀请参加体验华为云数据库RDS-MySQL数据库体验,MySQL是广受欢迎的开源数据库,云数据库 MySQL 在读写性能、扩容能力、备份恢复功能、故障容忍能力方面相比以前都有显著优化提升,而华为云数据库MySQL更是以其特有的产品优势获得了大量的业界翘楚青睐! 产品优势: 1 不丢数据 增强版半同步协议,提供更低RTO保证,732天自动备份恢复,确保数据不丢失 2 性能强悍 内核优化,增强连接池特性,高并发场景下,性能大幅提升 3 高效运维 一键实现高可用部署、CPU/内存/存储扩容;支持实时监控告警,高效运维 4 安全合规 已通过工信部可信云认证、CSA STAR、ISO 27001、公安部等保三级等十多项认证,采用安全组、VPC技术 严格控制访问,具备安全事后审计功能 多应用场景: IoT 物联网应用,规模和可靠性至关重要。 云数据库提供了高吞吐量和并发性,您可以通过快速的响应时间来支持大量的连接。因此非常适合要求苛刻的物联网应用 优势: 兼容MySQL 兼容MySQL,应用无需改造 高并发高性能 高并发性能提升明显,满足苛刻性能要求 支持大量连接 大量连接下,更快速的响应时间 电子商务应用 可为您的电子商务和移动商务应用程序提供可靠且经济高效的数据存储,使您的应用在网络上快速安全地运行 优势: 增强的半同步协议 增强的半同步复制协议,快速无损复制 高并发高性能 高并发性能提升明显,满足苛刻性能要求 成本低廉 开源免费,为企业降低成本 电子政务 电子政务面临服务数十亿人次的潜在规模的挑战。 高性能,高吞吐量和高可用的云数据库是一个很好的选择 优势: 成熟方案 备份恢复、监控报警、主从架构,提供与商业数据库比肩的强大功能 安全可靠 VPC、安全组、SSL连接,保证数据安全访问 成本低廉 开源免费,为企业降低成本 移动游戏 云数据库凭借其高可靠、高性能等特性,让您轻松部署移动在线游戏服务 优势 高并发高性能 高并发性能提升明显,满足苛刻性能要求 支持大量连接 大量连接下,更快速的响应时间 增强的主从复制 多线程复制,解决复制延迟问题 以上的产品优势我所在的公司使用中有所体会,确实很不错,应用场景的优势我是通过官方渠道了解到,多应用场景适用不同环境,真的很方便,我所在环境只是其中一部分,所以不多做评价,不过像这样的针对多应用场景真的给不同的行业有了更多的选择,使其特点更加集中特出,这一点我们还是需要点个赞的! 这次的体验我以任务的形式体验了五部分 T1 步骤1 任务说明:快速浏览官网和产品单页,找到华为云MySQL数据库产品基本功能和优势 完成条件:完成MySQL单页浏览,并找出功能和优势内容 我在上面的阐述中似乎已经说的很明显了,有兴趣的朋友可以好好了解下,有不懂的地方可以咨询华为云相关技术人员,他们会以专业的知识素养解答您的一切问题,嘿嘿-.- 步骤2 任务说明:能在官网上找到满足使用要求的产品,并提供推荐规格 完成条件:完成相关规格推荐。 在产品栏找到云数据库MySQL ,点击立即购买,如下 购买数据参考如下: 最大连接数 ≈1300 每秒执行的事务数(TPS) >400 每秒执行的SQL数(QPS) >6000 引擎 MySQL5.7 价格 每月价格不超过600元 其他 数据库高可用性,适宜物联网场景,性价比最高 T2 MySQL购买过程也很方便,购买参数如下 至此,MySQL购买完成,下面需要设置下MySQL内网连接,进入T3 T3 MySQL内网连接,直接通过页面上方的控制台进入到弹性云服务面板,如下 进去后可以看到ECS-001的IP地址为192.168.1.252,如下 进入到安全组界面修改destest入方向规则,如下 至此,内网连接已完成,下面进入到T4 T4 MySQL数据库登录,通过自己的关系型数据库界面登录自己刚才创建的数据库,如下 登录成功后可以看到自己之前创建的实例,然后自己添加一条user数据库,字符集默认就好,点击确定就可以,如下 至此数据库登录已完成,且可视化创建了一个名为user的数据库,哈哈,长舒一口气,如释重负的感觉-.- T5 最后一步MySQL数据库参数设置,这边根据需求 找到SQL_MODE参数,设置参数值NO_ZERO_DATE NO_AUTO_CREATE_USER。如下,在实例管理界面点击自己开始创建的实例 点击后会进入到实例信息列表,选择左下角的参数修改,如下 点击参数修改后会看到自己一些参数设置,我们下拉找到SQL_MODE项,也可以右上角搜索栏搜索sql_mode直接跳转到该参数项,非常的方便。 点击“值”项的三角符号,会看到如下很多参数设置值,选择自己需要的参数值设置即可,如下 到目前为止所有的任务已经完成,体验过程非常的流畅轻松,可以说是一点问题也没遇到,对于小白来说我觉 得界面真的算是很清晰了,相比其他的产品,功能也很齐全,还是老样子,我会向公司和朋友推荐华为云的数据库服务,因为真的很不错啊,自己试试就知道到啦,再此也很感谢助手小哥哥(小姐姐)的帮助,能让我再次体验华为云的产品,非常的荣幸,希望华为云产品越做越好,再造传奇,棒棒哒!
-
RDS MySQL先吐槽一下,提供的用户名和密码里面有I 和1 ,这个简直....T1目的通过浏览让用户快速选择到适宜的数据库,并进行有效决策。问题描述产品选型最大链接数 1300每秒执行事务数 400每秒执行SQL数 6000MySQL 5.7RMB 600/m高可用,物联网,性价比操作体验是否能输出个报告输出的报告包含哪些内容可以看出,在包年折扣的情况下,满足这个需求有三个产品配置可以选: 2C4G,1C8G,1C4G。在点击立即购买之后,有相应的报告可以生成,对所选的配置进行了描述,购买时长和对应的价格都有说明。最后生成报告这个比较实用。T2目的了解用户购买的操作过程,寻找流程断点和操作困难点,检验产品易用性。问题描述买2U4G的MySQL数据库,用于物联网业务部署,创建一个RDS1908-DB的MySQL数据库。操作体验物联网业务真的适合用MySQL么?按需计费华北-北京一RDS1908-DBMySQL 5.7主备主可用区:可用区1 备可用区:可用区2 2 核 | 4 GB80GB不加密vpc-testdbstestUser_test基本上默认的选项都可以满足,不用怎么改。数据库创建时间有一定的周期。T3目的了解用户在进行内网链接时候所采用的筛选信息方式以及内网链接时,有效配置易用性。问题描述ECS-001操作体验提供的ECS-001是可用区3的,会不会有问题。T4目的了解用户购买的操作过程,寻找流程断点和操作困难点,检验产品的易用性。问题描述登陆数据库,并创建数据库user。操作体验这个操作有点简单吧。。。。T5目的查看用户参数配置中的操作过程和数据处理方式。问题描述数据库中的表中出现非法数据,经检查是参数中卫队SQL_MODE进行参数设置导致,需要修改参数。SQL——MODE -> NO_ZERO_DATE NO_AUTO_CREATE_USER操作体验这些参数配置都可以通过控制台操作,还是挺方便的。操作相关的视频,后续网盘吧。
-
详情见附件,此处省略。。。几千字
G-washington
发表于2019-09-08 11:51:31
2019-09-08 11:51:31
最后回复
G-washington
2019-09-08 11:51:31
2066 0 -
大家好,非常感谢华为云助手给我这次体验华为MySQL服务的测评机会,因为近期工作比较忙,拖到周末才发布测评报告,废话不多少,直接上图!T1——MySQL规格推荐步骤1任务说明:快速浏览官网和产品单页,找到华为云MySQL数据库产品基本功能和优势完成条件:完成MySQL单页浏览,并找出功能和优势内容打开华为云官网,依次选择“产品”、“基础服务”、“数据库”,最后定位到“云数据库MySQL”,如下图:系统进入云数据库MySQL单页,很容易就能看到“产品优势”项,如下图:步骤2任务说明:能在官网上找到满足使用要求的产品,并提供推荐规格完成条件:完成相关规格推荐。在云数据库MySQL单页面,继续下拉,会看到几个应用场景,第一个就是物联网场景(IoT),如下图:在云数据库MySQL单页面,继续下拉,会看到推荐配置,因为客户有高可用要求,推荐主备版,仔细建采相关的性能参数均满足客户的要求,如下图:体验与建议:整体体验顺畅,建议不同场景提供不同的推荐配置。T2——MySQL购买按照配置要求,购买MySQL实例,无困难点,非常顺利,易用性也很好。下面是配置规格确认页面,因为一旦创建,就要开始计费,给客户一个确认是很有必要的。建议规格详情页面布局可以优化一下,产品规格挤在一栏中,其他的列显得很空,不成比例。提交后,需要5-10分钟才能创建完成,创建完成的页面如下:建议:创建主备模式的MySQL时间有点长,希望能提升一下创建资源的速度。T3——MySQL内网连接步骤一:查找关联ECS内网地址1、打开该MySQL实例的详情页面,找到虚拟私有云(VPC)标签,点击vpc-test,如下:2、进入虚拟私有云(VPC)页面,点击左下角的“弹性云服务器”,如下图:3、控制台进入弹性云服务器列表页面,找到名称为ecs-001的主机,并复制其私有IP地址192.168.1.252,如下图:体验与建议:整体比较顺畅,唯一不太顺畅的是进入虚拟私有云界面后,找到关联的弹性云服务不太容易,要在右侧最下面才看到,建议UI进行优化,方便能够快速引导到弹性云服务的页面。步骤二 配置安全组回到RDS实例页面,点击"内网安全组“标签dbstest,如下图:进入安全组页面后,以此点击“入网规则”、“添加规则”,打开“添加入方向规则”页面后,选择自定义TCP:3306,IP地址为“IP地址 192.168.1.252/32”。添加成功后的页面如下:体验:安全组的配置体验非常顺畅,暂无优化建议。T4——MySQL数据库登录在RDS实例列表页面,找到RDS1908-DB实例列表,在操作栏点击"登录”标签,如下图:进入华为云DAS页面,此时弹出了数据库登录页面,输入数据库账号root,密码User_test,如下图:系统成功登录DAS管理页面,点击“新建数据库”按钮,弹出“新建数据库”页面,输入数据库名称user、字符集默认后确认,如下图:成功创建User数据库,如下图所示:体验与建议:整体操作很顺畅,无任何歧义,也无优化建议。总评:1、整体体验非常顺畅,个人用过阿里云的RDS界面,虽然功能更多一些,但整体易操作性更人性化一些,而不是一堆功能的堆砌。2、相关的建议在每个任务中均已体现,这里不再赘述。
-
一、前言需要在阿里云服务器部署Django-restframework框架,一开始不清楚情况,网上找了很多的文章和办法,东拼西凑也没有能够完全实现nginx和uwsgi的互通。参考过的文章有-视频:Nginx + uWsgi 部署 Django + Mezzanine 生产服务器-文章:uWSGI+django+nginx的工作原理流程与部署历程-文章:uwsgi官方文档-文章:Django Nginx+uwsgi 安装配置-文章:centos7 下通过nginx+uwsgi部署django应用二、网上文章的遗漏因为是东拼西凑,所以无论是网上的文章还是自己拼凑的配置,都是没有办法打通的。后来红包求助,才了解到有这几个地方:1、nginx执行权限2、uwsgi配置3、uwsgi设置虚拟环境4、uwsgi安装问题及插件安装问题5、django静态文件收集处理6、三、部署安装记录1、创建非管理员账户由于安全需求,还是配置一个非管理员(自己操作,增加sudo授权)账户操作,通过命令创建用户名密码adduser quinns # 新增用户 passwd quinns # 为quinns设置密码 复制代码设置好之后,还需要开启sudo权限,通过命令:vi /etc/sudoers 复制代码然后找到有 root ALL=(ALL)那一行,然后在下面增加一行:quinns ALL=(ALL) ALL 复制代码保存即可。下面的操作,用新用户quinns登录来操作。2、安装依赖uwsgi和nginx以及anaconda的安装会存在一些报错问题,这里为了避免出现这情况,所以先安装好依赖。sudo yum install gcc-c++ sudo yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libxml* pcre-devel python-devel bzip2 复制代码3、安装软件通过quinns账户登录,然后到quinns用户目录(/home/quinns)下新建一个utils目录,把一些软件下载在utils目录下。3.1安装anaconda通过wget方式下载anaconda(官网)wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh 复制代码如果想更快,就安装国内源(清华镜像):wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh 复制代码下载好之后sh安装sh Anaconda3-5.0.1-Linux-x86_64.sh 复制代码一路默认,到之后面安装完的时候会提示是否添加环境变量,输入yes即可。如果想要后面使用更快,可以更改仓库镜像(我没试过):conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes 复制代码这样的话安装软件都是国内源,速度比较快(听说是)3.2验证是anaconda否成功安装通过命令:conda list 复制代码来验证是否成功安装并加入环境变量,如果出现list列表则代表成功,如果出现报错提示信息则需要用命令:source ~/.bashrc 复制代码来添加,然后重复conda list命令。如果还是不行,则编辑/etc/profile文件,在底部添加环境变量及指向:export PATH=/home/quinns/anaconda3/bin:$PATH 复制代码通过文件添加的环境变量需重启服务器才能生效 sudo reboot3.3安装uwsgi在确认安装好anaconda之后,先不着急新建虚拟环境,直接在linux下输入python,检查默认python是否已自动替换为python3.6。接着通过pip安装uwsgi:pip install uwsgi 复制代码如果不成功则尝试使用aliyun的源 阿里云的源我复制下来了,是:http://mirrors.aliyun.com/pypi/packages/a2/c9/a2d5737f63cd9df4317a4acc15d1ddf4952e28398601d8d7d706c16381e0/uwsgi-2.0.17.1.tar.gz 复制代码待有安装成功的提示出来,再通过命令:uwsgi --version 复制代码来确认是否成功安装。3.4创建虚拟环境通过anaconda来创建python虚拟环境:conda create --name envname python=3.6.3 (亲身经历 3.6.5无法启动uwsgi,最好还是3.6.3) 复制代码观察过程,无报错即完成安装。3.5安装nginx直接通过yum来安装nginx即可,如果想安装新版,可以在网上寻找新方法。sudo yum install nginx 复制代码如果是centos7 是默认没有Nginx源的,需要给它添加源,才能使用Yum install 安装sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 复制代码安装完成后应该是自动启动服务,在浏览器输入ip即可访问nginx的欢迎页面。如果没有,通过命令:sudo service nginx start/restart 复制代码来启动或者重启nginx服务。3.6安装mysql先下载mysql的repo源wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 复制代码接着安装mysql-community-release-el7-5.noarch.rpm包sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 复制代码安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。最后执行安装sudo yum install mysql-server 复制代码3.7重置mysql密码先授权sudo chown -R root:root /var/lib/mysql service mysqld restart # 然后重启 复制代码接着重置密码mysql -u root //直接回车进入mysql控制台 mysql > use mysql; mysql > update user set password=password('quinns') where user='root'; mysql > exit; service mysqld restart # 然后再重启一次服务 复制代码3.8重点说明重点:在实际的应用当中,我们一般不推荐使用root账户,而是新增用户并对其进行授权。所以,这里我要加上删除线mysql默认是不开启远程访问的,想要在本地连接服务器的mysql,必须开启:mysql -u root -pmysql> use mysql;mysql> update user set host = '%' where user = 'root';service mysqld restart # 这里也要重启一次服务(过30秒或者1分钟再测试远程连接)如果不行的话,接着重启服务一次。3.9 新增用户并授权a.创建用户CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 复制代码命令含义说明:username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 复制代码比如这里我可以把命令改成:CREATE USER 'quinns'@'%' IDENTIFIED BY '123456'; 复制代码意味着我新建了一个名为quinns且密码为123456的用户,并给它开启了所有ip地址远程连接(当然也可以指定某个ip)b.用户授权GRANT privileges ON databasename.tablename TO 'username'@'host' 复制代码命令含义说明:privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.* 复制代码授权命令示例:GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; GRANT ALL ON *.* TO 'pig'@'%'; GRANT ALL ON maindataplus.* TO 'pig'@'%'; 复制代码c.置与更改用户密码命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); 复制代码如果是当前登陆用户用:SET PASSWORD = PASSWORD("newpassword"); 复制代码例子:SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); 复制代码d撤销用户权限命令:REVOKE privilege ON databasename.tablename FROM 'username'@'host'; 复制代码说明:privilege, databasename, tablename:同授权部分 复制代码例子:REVOKE SELECT ON *.* FROM 'pig'@'%'; 复制代码注意:假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%',则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。 复制代码具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 复制代码查看。e删除用户命令:DROP USER 'username'@'host'; 复制代码参考来源:传送门四、uwsgi服务测试安装好这些软件后,需要确保独立服务都是正常运行的。在/home/quinns目录下新建wwwroot目录,然后在里面新建一个测试文件uwsgitest.pydef application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World, This uwsgi server is running"] 复制代码保存后通过命令来启动uwsgi --http :8000 --wsgi-file uwsgitest.py 复制代码看到服务启动后,就可以在浏览器访问8080端口,如果能够正常显示文字内容,则代表uwsgi单独服务是可以正常运行的。如果没有,根据报错找原因。五、上传django-rest项目可以在本地,通过ssh对服务器进行连接,其中也包括上传下载服务。本地打开终端后输入:scp -r djangoName quinns@47.98.212.01:/home/quinns/wwwroot 复制代码将当前目录的djangoName文件夹通过quinns账户上传到/home/quinns/wwwroot目录内。回车执行后输入quinns的密码即可看到上传到指定的wwwroot目录内。六、配置django本地开发环境下的django和服务器的设置有些许不一样。首先要开放ALLOWED_HOSTS,使得程序可以远程访问,然后再设置静态文件,最后再通过命令来测试是否可以顺利启动。开启drf远程访问及静态设置找到django项目的settings.py文件,里面有个ALLOWED_HOSTS,是接收一个空列表,现在要将服务器地址或者域名添加进去(也可以放*号,代表所有都可以指向这里,但是不推荐这么做):ALLOWED_HOSTS = ['47.98.209.107'] 复制代码上面就算是开启了远程访问,接着设置静态(drf有一些样式,如果不设置,通过uwsgi启动是无法加载的)。同样是在settings.py文件中,下部分代码中有个STATIC_URL = '/static/',在它下面新增一行:STATIC_ROOT = os.path.join(BASE_DIR, "static/") 复制代码保存文件,然后在虚拟环境下执行命令:python manage.py collectstatic 复制代码这样django就会收集静态文件,放到指定目录内,也就是(static目录内)七、编写uwsgi配置uwsgi可以通过命令来启动django项目,也可以通过配置文件ini或者xml来启动。这里已ini为例。在项目根目录(manage.py同目录,其实哪个目录都可以,这里是方便寻找)新建文件夹conf,然后再在conf下新建uwsgi文件夹(这俩文件夹什么名字无所谓)。接着新建uwsgi的配置文件,这里暂且叫做lagou_uwsgi.ini 里面写上uwsgi与项目的配置信息:ite_uwsgi.ini file` [uwsgi] # Django-related settings # the base directory (full path) chdir = /home/quinns/wwwroot/GamesAPI # Django's wsgi file module = GamesAPI.wsgi # the virtualenv (full path) # process-related settings # master master = true # maximum number of worker processes processes = 4 threads = 2 # the socket (use the full path to be safe socket = 127.0.0.1:8001 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true virtualenv = /home/quinns/anaconda3/envs/envgames python-autoreload=1 logto = /home/quinns/wwwroot/GamesAPI/uwsgilog.log stats = %(chdir)/conf/uwsgi/uwsgi.status pidfile = %(chdir)/conf/uwsgi/uwsgi.pid 复制代码具体的含义在uwsgi文档都有,这里记录一下:chdir # 项目绝对路径 module # 项目内的uwsgi.py文件,其实与项目同名即可 master processes threads socket # 服务启动地址及端口 vacuum virtualenv # 这个就很重要了,python虚拟环境地址 python-autoreload=1 # python自启动 logto # 自动生成日志文件及存放路径 stats pidfile 复制代码这就算是编写好uwsgi的配置文件了,接着编写nginx的配置。八、单项目nginx配置最好不要改动原有的ningx,来新建一个新的.conf配置文件吧。同样在项目目录的conf目录内新建nginx文件夹,然后再在nginx文件夹里新建lagou.conf配置文件,里面写上nginx的配置:upstream games { # server unix:///path/to/your/mysite/mysite.sock; # for a file socket server 127.0.0.1:8001; # uwsgi的端口 } # configuration of the server error_log /home/quinns/wwwroot/nginxerror.log;#错误日志 server { # the port your site will be served on listen 8080; # 端口 server_name 47.98.209.107 ; # 服务器ip或者域名 charset utf-8; # max upload size client_max_body_size 75M; # adjust to taste # Django media location /media { alias /home/quinns/wwwroot/GamesAPI/media; # 指向django的media目录 } # Django static location /static { alias /home/quinns/wwwroot/GamesAPI/static; # 指向django的static目录 } # Finally, send all non-media requests to the Django server. location / { uwsgi_pass games; include uwsgi_params; # uwsgi服务 } } 复制代码里面都有说明了,我就不写了。其的upstream games中的games是自定义名称,但是要与下面的uwsgi_pass games中games名称相同。注意: .conf文件建立好后,要与让nginx知道并承认,所以需要通过软连接来链接到/etc/nginx/conf.d/目录下,如果不知道软连接怎么做,可以把这个文件copy到这个目录下。然后重启服务器sudo service nginx restart 复制代码有些版本的命令是:sudo systemctl restart nginx.service 复制代码如果没有报错,应该就是可以了。如果有报错,没有重启ng服务器,那肯定是配置文件写错了,得去看一下。九、启动项目既然uwsgi也配置好了,django项目的虚拟环境也pip install -r requirements.txt过了,ng的配置文件也写好了。那就可以启动服务了。nginx的服务启停通过linux命令来进行启停sudo service nginx restart/start/stop 复制代码如果之前启动过,就不用重启了。uwsgi启动项目找到刚才编写的lagou_uwsgi.ini配置文件目录,通过命令来启动:uwsgi -i lagou_uwsgi.ini & 复制代码如果没有报错,就代表启动了。就可以在浏览器访问之前.conf配置文件配置的8080端口了。意外的小问题后期部署发现,不同版本的Centos对权限的设定是不一样的。比如:不能在自定义的nginx.conf文件中填写erro_log的配置需要在/etc/nginx/nginx.conf里面将user改成root如果发现502 bad getway,就需要查看uwsgi日志和nginx日志,如果在nginx日志(默认/var/log/nginx/error.log)看到如下提示2018/08/19 21:06:37 [crit] 967#967: *1 connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 192.168.0.103, server: 192.168.0.61, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:8001", host: "192.168.0.61:8080" 复制代码就代表是权限方面的问题,经过网上文章搜索,找到原因SeLinux的导致的。解决办法有两种,比较直接的是运行命令:setsebool -P httpd_can_network_connect 1 复制代码后来又产生新的问题,Django的静态文件无法正常加载,nginx返回的是403.解决这种问题的办法是通过配置文件,长期关闭SeLinux,怎么关:《烦人的linux权限问题-SeLinux》十、nginx配置静态后端api没有问题后,前端也要部署。前端通过npm run build打包之后,将build文件通过ssh上传到wwwroot目录下:scp -r build quinns@xx.xx.xx.xx:/home/quinns/wwwroot 复制代码等到上传完成后,就到nginx那里进行静态的部属配置cd /etc/nginx 复制代码然后打开nginx.conf文件进行编辑。首先要给nginx文件进行访问授权,否则有些目录是会报错403的。其配置文件中有:user nginx; 复制代码这里得给他改成用户的权限,如quinns或者rootuser quinns; 复制代码看到server部分的代码:server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { # 配置这个,才能正确跳转路由,如47.98.110.67/detail/1 add_header Cache-Control "no-cache, no-store"; index index.html; try_files $uri /index.html; } …… …… } 复制代码是这样的,访问网址80端口默认指向/usr/share/nginx/html目录下的index.html因为静态打包后build也是由index.html来作为主入口的。所以这里只需要把root的指向改过来即可:server { listen 80 default_server; listen [::]:80 default_server; server_name _; #root /usr/share/nginx/html; root /home/quinns/wwwroot/build; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { # 配置这个,才能正确跳转路由,如47.98.110.67/detail/1 add_header Cache-Control "no-cache, no-store"; index index.html; try_files $uri /index.html; } …… …… } 复制代码将原来的root指向注释掉,增加build文件夹的指向然后重启nginx服务,打开浏览器访问,就可以看正常的页面了。心中一阵窃喜,这个坑终于是填上了。文章来源:掘金社区作者:云享专家韦世东
-
#化鲲为鹏,我有话说#1.查看数据库编码格式mysql> show variables like 'character_set_database';2.查看数据表的编码格式mysql> show create table <表名>;3.创建数据库时指定数据库的字符集mysql>create database <数据库名> character set utf8;4.创建数据表时指定数据表的编码格式create table tb_books ( name varchar(45) not null, price double not null, bookCount int not null, author varchar(45) not null ) default charset = utf8;5.修改数据库的编码格式mysql>alter database <数据库名> character set utf8;6.修改数据表格编码格式mysql>alter table <表名> character set utf8;7.修改字段编码格式mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;mysql>alter table user change username username varchar(20) character set utf8 not null;8.添加外键mysql>alter table tb_product add constraint fk_1 foreign key(factoryid) references tb_factory(factoryid);mysql>alter table <表名> add constraint <外键名> foreign key<字段名> REFERENCES <外表表名><字段名>;9.删除外键mysql>alter table tb_people drop foreign key fk_1;
-
平时也在使用RDS,本次体验也比较顺利,简单记录下本次内容: 本次体验任务如下: 任务编号场景任务T1了解感知官网浏览,单产品页浏览查找有用信息T2购买场景根据描述购买相应规格数据库T3使用场景通过内网连接数据库T4通过DAS登录数据库T5参数设置 第一个任务中,我一般喜欢从产品分类里面找到RDS进去。现在官网上左侧将产品Lass、Pass、Sass进行了很好的分层,产品脉络更加清晰 华为云RDS单产品页信息比较全面,产品优势,应用场景都可以找到。其他的一些专业比较深度的信息也可以在帮助中心文档查阅。 任务2购买数据库,此处选择的项还是比较多的,像是什么数据库引擎,版本,示例类型,可用区等,建议可以参考ECS购买,出一个快速购买页面。很多客户使用云RDS还是比较少的,更多的还是自建,所以购买流程精简一些挺好。 任务3 4,内网连接数据库,以及通过DAS登录数据库过程也比较顺利,在内网登录的时候还需要在安全组放行端口,这个是需要注意的 任务5参数设置,这个一般用的比较少,向我接触过的客户基本上购买了数据库就正常的使用了,参数设置华为云本身应该已经做过优化了,用起来还是比较省心的。
-
平时也在使用RDS,本次体验也比较顺利,简单记录下本次内容: 本次体验任务如下: 任务编号场景任务T1了解感知官网浏览,单产品页浏览查找有用信息T2购买场景根据描述购买相应规格数据库T3使用场景通过内网连接数据库T4通过DAS登录数据库T5参数设置 第一个任务中,我一般喜欢从产品分类里面找到RDS进去。现在官网上左侧将产品Lass、Pass、Sass进行了很好的分层,产品脉络更加清晰 华为云RDS单产品页信息比较全面,产品优势,应用场景都可以找到。其他的一些专业比较深度的信息也可以在帮助中心文档查阅。 任务2购买数据库,此处选择的项还是比较多的,像是什么数据库引擎,版本,示例类型,可用区等,建议可以参考ECS购买,出一个快速购买页面。很多客户使用云RDS还是比较少的,更多的还是自建,所以购买流程精简一些挺好。 任务3 4,内网连接数据库,以及通过DAS登录数据库过程也比较顺利,在内网登录的时候还需要在安全组放行端口,这个是需要注意的 任务5参数设置,这个一般用的比较少,向我接触过的客户基本上购买了数据库就正常的使用了,参数设置华为云本身应该已经做过优化了,用起来还是比较省心的。
-
先说体验RDS优化建议:1,在选取性能规格的时候,可针对连接数,TPS,QPS做数值型筛选。比如:TPS > 1000 ,QPS < 3000, 连接数> 10000类似这种的。在客户有数值型参考的前提下,可以更快速的筛选出对应的实例 。2,ECS, RDS等各项有安全组需求的服务要更快速的到配置自己实例所在安全组的地方,在安全组的地方,是否可能有相关的链接 ,直接能够loading本帐号下相关的ECS,或者其它服务的IP 这样流程不会中断,填的也更方便快捷一点儿。3,在添加安全组的时候,配置网络时有不少人不太了解192.168.1.32/32这种方式 ,习惯于 192.168.1.132 255.255.255.0的网络配置方式。是否有其它的方式 ,能够说明255.255.255.0和/32是等价的。或者自动填/32。我经历过的不少开发者确实不了解在网络配置中 /32和/24区别到底在哪儿。4,登陆数据库后,建表时,是否可有下拉菜单,选择SQL语句建表和向导建表两种。选择SQL语句建表可以直接打开SQL查询窗口即可。5,新增SQL性能诊断时,要提前说明仅支持select/update/insert语句,及insert/replace语句的部分写法 而非在运行诊断后,再进行提示。提前说明不支持哪些,可能就不会试DDL语句了。如下图 6,在库管理中 系统库和用户库我觉得要更清晰的表示一下,库名和表名尽可能显示全,因为在实际开发的过程中,库名和表名 有些情况下是业务相同的表名前缀均是相同的。如下图 7,数据方案中:数据追踪与回滚:需要更清晰的描述使用办法及使用说明8,添加用户 高级选项中相关的娄值型需要加单位,以便更清楚的说明类型9,全局权限中: 有可能的话,放一些中文解释可能会更好一些 接下来是夸奖时间:这个版本的RDS简直是太棒了,毫不夸张的说,满足了我对RDS服务应用的所有期待。尤其是云DBA功能,和数据方案中的自动生成数据,简直不要太方便。 功能整体性比较完整,慢日志功能:SQL审计,参数修改,云DBA,备份恢复,监控功能等都做了很大的完善。因为之前用过RDS服务,觉得这次体验很多的服务都更上了一层楼 1,实例拓扑图,直接点击可以快速创建灾备,只读等。2,参数调优直接会有建议3,云DBA的百宝箱科不要太好用了。 4,来试试智能诊断服务?5,新增SQL性能诊断 放个体验全家福 体验官华为云帐号:suse-dev
-
业务大促,订单暴增,网站流量暴涨几倍,数据库服务器容量又要扛不住了,眼睁睁看着生意白白溜走,再苦逼也无法解决,“肿”么办?别担心,一键开通读写分离,而且只需一个连接地址,就能让您无忧应对业务促销高峰,帮您在节日大促中轻松“躺赢”。怎么样?是不是超Easy!赶快来get一下吧。华为云数据库 MySQL 在读写性能、扩容能力、备份恢复功能、故障容忍能力等方面有着显著的优化提升,提供了高吞吐量和并发性,可以通过快速的响应时间来支持大量的连接。目前,MySQL新增了一键开通读写分离功能,专业应对企业业务高峰情景,助力企业业务升级。华为云数据库 MySQL一键读写分离功能操作便捷,易上手的同时并提供了权重设置的自由,灵活方便。1. 功能入口华为云数据库 MySQL实例配置限制少,门槛低,只要您拥有主备实例4U8G以上,+1个只读实例即可免费开通读写分离功能,如图1所示。 应用程序可直接连接图2的读写分离地址,即可快速实现读写分离访问,简单又高效,轻松又省心。2. 设置权重MySQL读写分离功能提供自动设置和手动设置两种方式。一般情况下,系统将根据您的实例规格容量,设置默认只读权重来分发流量比例(如图3默认的权重值为300:200),您也可以根据实际业务情况自定义设置只读权重。华为云数据库 MySQL在线扩展只读负载,一键规格变更实现CPU&内存扩容/缩容,在线存储容量扩容,具有强扩容高性能的优势。当前,华为云数据库一键开通读写分离后,还可以快速弹性扩展,几分钟便可完成只读实例添加,且最多可以增加10个,轻松应对各类高峰场景,助力企业业务创新升级。重磅活动推荐——2019华为全联接大会2019华为全联接大会,将于今年9月18日至9月20日在上海世博中心隆重举办,届时会有多位业界大神莅临现场。在这里你不仅可以与名企大咖零距离交流,更能现场围观各个开发者的竞技PK,机遇难得,不可错过!目前,华为全联接大会的限量早鸟票已开售,早鸟票价格低至150元,学生更是享受惊爆价99元!即刻加入华为全联接大会,与我们一起共创智能新高度!购票路径:PC端进入华为云官网,点击最新活动,下拉到底—其他活动—TaurusDB大赛—立即加入—HC大会购票; Ps:或关注“HW云数据库”微信公众号,进入华为云数据库专享通道,注册华为全联接大会账号,尊享HC大会早鸟票,买一赠一,先到先得。购票后在后台留言,私信购票截图,即可获赠赠票专属**,赠票为开发者票。
-
-
近日, DRS支持 MySQL 迁移时限速功能重磅上线,该功能让用户轻松把控迁移对源带宽、数据库IO的影响。使用DRS限速功能,可以让迁移对源业务高峰期性能影响最小化;搭配全量+增量迁移,可以让数据库迁移时,源业务不停机,有效的降低业务中断时间,让用户更专注业务发展。数据复制服务(Data Replication Service,简称为 DRS)是一种易用、稳定、高效,用于数据库在线迁移和数据库实时同步的云服务。下面介绍一下DRS的限速功能:流速模式支持两大选项:限速和不限速不限速模式:不限速对迁移速度不进行限制,通常会最大化使用源数据库的出口带宽。【用户疑问】那么不限速模式的实际迁移速度会是多少呢?对源又会造成怎么样的性能影响呢? 【专家答复】:该流速模式会对源数据库造成读消耗,消耗取决于源数据库的出口带宽,比如源数据库的出口带宽为100Mb/s,假设高速模式使用了80%带宽,则迁移对源数据库将造成80Mb/s的读操作IO消耗。限速模式:限速可以自定义的最大迁移速度,迁移过程中的迁移速度将不会超过该速度。用户疑问】:限速功能可以很好的确保在业务高峰期,用户迁移对源数据库造成业务较大的性能影响,具体如何使用的呢? 【专家答复】: 流速设置通常包括限速时间段和流速大小的设置。默认的限速时间段为全天,用户也可以根据业务需求自定义定时限速。自定义的定时限速支持最多设置3个定时任务,每个定时任务之间不能存在交叉的时间段,未设定在限速时间段的时间默认为不限速。【案例展示】:某业务系统数据库MySQL数据量达到1.5TB,基于成本原因迁移使用公网方式,希望迁移时业务不中断,其业务时间为早上9:00到晚上23:00为业务期,不希望迁移影响业务性能。【解决方案】:客户希望迁移不中断,使用DRS全量+增量模式可以在业务进行中实现数据库的搬迁。受带宽限制根据测算1.5TB迁移,将会超过24小时,不可避免跨越业务期和非业务期,为了确保业务期性能不受迁移较大影响,我们设定早上9:00到晚上23:00迁移速度限定在40Mb/s,其他时间段以最大迁移,这样完美的满足了客户的迁移诉求。当前,国内云计算市场正处于爆发增长期,华为云数据复制服务 DRS 新功能——DRS支持 MySQL 迁移时限速功能的上线,该功能对广大想要扩展云业务的用户而言非常实用,将助力用户的迁移体验更流畅。
-
1、简介MySQL是一种快速易用的关系型数据库管理系统(RDBMS),它通过插件形式提供了多种存储引擎,目前最通用的是InnoDB。作为一款开放源码的数据库软件,MySQL社区及用户活跃度很高,用户问题往往可以及时得到响应。此外,MySQL还具有软件体积小、安装简单易于维护等优点。官方链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads类别:数据库2、基础环境类别子项版本获取地址(方法)华为云华为云虚拟机RC3(916)--OSCentOS7.5Kernel4.14软件包GCC4.8.5MySQL5.6.44zlib1.2.7perl5.16.3cmake2.8.12.2openssl1.0.2klibaio0.3.1093、依赖安装清除yumyum clean all下载服务器包到本地缓存yum makecache更新yum 包yum -y update安装操作系统自带依赖软件版本yum install gcc gcc-c++ cmake ncurses-devel bison libaio-devel libncurses-devel libopenssl-devel zlib-devel autoconf perl per-devel4、组件编译安装 下文以此配置为例指定安装目录:${INSTALL_DIR}export INSTALL_DIR=/usr/local/mysql/ mysql-5.6.44/解压后的mysql源码目录:${PATH_TO_MYSQL}export PATH_TO_MYSQL=/usr/local/mysql/mysql-5.6.44解压后的boost源码目录:${PATH_TO_BOOST}export PATH_TO_BOOST=/usr/local/mysql/boost_1_70_0 从官网下载boost源码并解压cd /optwget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gztar -xvf boost_1_70_0.tar.gz -C /usr/local/mysql 从开源社区下载源码并解压cd /optwget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.44.tar.gztar -xvf mysql-5.6.44.tar.gz –C /usr/local/mysql 进入MySQL解压目录,建立编译目录并进入编译目录cd ${PATH_TO_MYSQL} && mkdir build && cd build 配置cmake ${PATH_TO_MYSQL} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DWITH_BOOST=${PATH_TO_BOOST}编译安装make && make install 版本检查。如果编译成功,会正确显示版本。${INSTALL_DIR}/bin/mysql --version5、系统配置 添加非root用户。useradd mysql 修改mysql安装目录的权限。chown -R mysql:mysql ${INSTALL_DIR}设置开机启动,并添加权限设置。cp ${INSTALL_DIR}/support-files/mysql.server /etc/init.d/mysqlchmod a+x /etc/init.d/mysqlchkconfig --level 345 mysql on设置环境变量,进入/etc/profile目录,并执行以下命令。export MYSQL_HOME=${INSTALL_DIR}export PATH=$PATH:${MYSQL_HOME}/bin使环境变量立即生效。source /etc/profile查看是否存在 /etc/my.cnf文件,如果第一次装mysql,肯定不存在,到mysql源码目录下,进行检索,找到一个my.cnf的模板,拷贝到/etc下,操作如下:find / -name 'my.cnf' (切记,此处为单引号)cp packaging/rpm-fedora/my.cnf /etc/my.cnf参照以下进行相关配置修改/etc/my.cnf给以下文件赋值权限chown -R mysql /var/lib/mysqlchgrp -R mysql /var/lib/mysql在mysql安装目录下执行:./scripts/mysql_install_db --user=mysql后台启动mysql 服务端bin/mysqld --defaults-file=/etc/my.cnf --user=root & 密码修改如果mysql安装成功并且环境变量设置正确,那么在任何目录下执行mysql即可进入mysql库命令行。如果建库正确,在mysql命令行下输入show databases; 可以查看现有的数据库实例;再次输入use mysql;即可切换至mysql实例;再次输入show tables;即可查看mysql实例下的表;输入update user set password = password ('password') where user = "root";修改root用户登录mysql命令行的密码;修改后输入flush privileges; 刷新权限;exit; 退出mysql命令行;删除之前在/etc/my.cnf文件中加入的skip-grant-tables一行,取消跳过校验密码;重启mysql服务;此时再输入mysql命令无法登录mysql命令行,需要输入mysql -uroot -p+密码或输入mysql -uroot -p回车后再输入密码即可登录mysql。 6、测试测试内容:查看MySQL服务状态测试结果:见下图 测试内容:登录数据库测试结果:见下图 测试内容:创建表测试结果:见下图 7、参考信息官方源码编译指导:https://dev.mysql.com/doc/refman/5.7/en/source-installation.html 8、FAQQ:为何在编译MySQL时指定boost源码路径?可否使用系统自带boost?A:MySQL从5.7版本之后,boost是必须的,且版本不低于1.59.0。因此建议自行下载boost库源码,并在编译MySQL时指定其路径。Q:编译时遇到libncurses-devel包错误A:可安装ncurses、ncurses-libs、ncurses-devel包,将编译目录中CMakeCache.txt删除,然后cmake重新编译,编译成功。Q:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)A:对sock文件创建软连接ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签