首页 文章 精选 留言 我的

精选列表

搜索[字节级],共10000篇文章
优秀的个人博客,低调大师

Django从1.8升级到2.0注意事项

我公司从2015年开发自动化部署平台,当时选用的开发框架是Django1.8版本。这两年多来,基于其上,很好的满足了我们的开发需求。 由于Django的产品周期问题,我们决定将Django从当前开发的1.8版本升级到2.0版本,此新最版本已不再支持python2,所以开发语言也需要相应升级到3.6版本。其间几个重要的变更技术点节录如下(以更改过程为主,不区别django还是python变更,且django中的变化也不一样是2.0中才开始具有的): 1, print Python3中,print从语句变为函数,所以所有的print语句需要改成print() 2,on_delete 在django 2中,models中on_delete=models.XXX不再是默认选项,需要显性指定 3, reverse 在新版本django中,这些包不再归于core,而是属于django.urls包,需要更改import路径 4, MIDDLEWARE 在新版本django中,中间件的key值由MIDDLEWARE_CLASSES变更为MIDDLEWARE 5, SessionAuthenticationMiddleware 在新版本django中SessionAuthenticationMiddleware这个中间件不需要了。 6, render_to_response 新版本django中render_to_response不建设使用,改为使用render函数。 7, 从__unicode__到__str__ 新版本python后,django的models定义需要从__unicode__变更到__str_ 8,dict的'has_key'方法弃用 新版python中字典的has_key方法取消,建议用”str” in dict判断 9, Direct assignment to the forward side of a many-to-many set is prohibited 新版django中,orm多对多外健不再用=等赋值,改为set方法 new_list = [obj1, obj2, obj3] e.related_set = new_list ===》 e.related_set.set([obj1, obj2, obj3]) 10, Only byte strings can be passed to C code 在使用PyCryptodome作AES加密解密时,注意python3里decode和encode的使用 11,html输出时,byte如何转换成unicode?(网页输出是b’’) str(b'','utf8')可以吧BYTES转换成unicode;bytes('','utf8')反向操作 12, orm migrate 在django升级之后,makemigration重作,migrate可能需要手工增加on_delete=models.XXX 13,python中virtualenv如何具有通用性? 如果安装好新版python3解释之后,通过更改active文件中的路径,可以实现拷贝目录通用.

优秀的个人博客,低调大师

基于Centos6.x企业级LNMP架构搭建实例

阅读目录 1.1 部署LNMP架构说明 第2章 LNMP环境搭建步骤 2.1 部署linux系统 2.2 部署nginx网站服务 2.3 部署mysql数据库服务 2.4 部署php服务 2.5 nginx 与 php 建立连接关系 2.6 编辑php与mysql连通性测试文件,并进行测试 2.7 测试php与数据库连通性 2.8 下载部署wordpress博客程序 3.1 mysql数据库迁移 3.2 本地数据挂载到nfs共享储存 回到顶部 1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNMP架构步骤 01.配置Nginx配置文件 02.配置mysql数据库信息(SQL语句) 03.配置wordpress博客网站 1.1.3 架构服务器串联 01.数据库数据信息迁移(web服务器上的mysql数据 迁移到10.0.0.51 数据库服务器上) 02.将本地储存数据挂载到NFS共享储存服务器里(共享储存用户上传的数据信息) 1.1.4 LNMP FastCGI知识说明 工作原理讲解说明: ①. 用户请求的静态文件,由nginx服务自行处理,根据静态的location配置进行处理 用户请求的动态文件,由php服务进行处理,根据动态的location配置进行处理 ②. nginx服务接收到动态请求,会将请求抛送给fastcgi,类似于nginx服务接收动态请求的秘书,秘书会将动态请求送给PHP程序 ③. PHP如果可以处理,会将处理结果直接通过fastcgi返回给nginx程序;如果不可以处理,还会请求后端数据库,最终再把处理结果返回给nginx 回到顶部 第2章 LNMP环境搭建步骤 回到顶部 2.1 部署linux系统 基本优化(ip地址 yum更新 字符集) 安全优化完成(iptables关闭 selinux关闭 tmp目录权限777) 说明:详细配置参见https://www.cnblogs.com/znix/p/7736899.html 回到顶部 2.2 部署nginx网站服务 2.2.1 检查软件安装的系统环境 [root@web01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@web01 ~]# uname -r 2.6.32-696.el6.x86_64 2.2.2 安装nginx的依赖包(pcre-devel openssl-devel) yum install -y pcre-devel openssl-devel pcre:兼容perl语言正则表达式,perl compatible regular expressions rewirte模块 参数信息(perl方式定义正则表达式) openssl:ssh---openssh/openssl---https 总结:所有安装依赖软件,后面都要加上-devel 2.2.3 下载nginx软件 wget http://nginx.org/download/nginx-1.10.2.tar.gz 说明:软件很小,用心查看一下 解压软件 tar xf nginx-1.10.2.tar.gz 2.2.4 创建管理用户 www useradd -M -s /sbin/nologin www 2.2.5 nginx软件编译安装过程 2.2.5.1注意 软件编译安装步骤 a>软件解压配置(将软件程序安装到哪个目录中 开启nginx软件的哪些功能) b>软件编译过程 c>软件编译安装过程 注意顺序,顺序不对软件安装会出错 2.2.5.2编译安装软件 1、配置软件,在软件的解压目录中 [root@web01 nginx-1.10.2]# ./configure --prefix=/application/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module 编译参数说明: --prefix 表示指定软件安装到哪个目录中,指定目录不存在会自动创建 --user/--group nginx工作进程由哪个用户运行管理 --with-http_stub_status_module 启动nginx状态模块功能(用户访问nginx的网络信息) --with-http_ssl_module 启动https功能模块 通过软件编译过程中的返回值是否正确,确认配置是否正确 [root@web01 nginx-1.10.2]# echo $? 0 2、编译软件 [root@web01 nginx-1.10.2]# make 3、编译安装 [root@web01 nginx-1.10.2]# make install 2.2.6 创建软连接 [root@web01 application]# ln -s /application/nginx-1.10.2/ /application/nginx 2.2.7 精简化nginx.conf 主配置文件内容, 编写nginx配置文件 [root@web01 conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf 2.2.8 启动程序 [root@web01 application]# /application/nginx/sbin/nginx [root@web01 application]# 检查是否启动 [root@web01 application]# ps -ef |grep nginx root 26548 1 0 20:13 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx www 26549 26548 0 20:13 ? 00:00:00 nginx: worker process root 26551 23431 3 20:13 pts/0 00:00:00 grep --color=auto nginx 检查端口信息 [root@web01 application]# netstat -lntup |grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26548/nginx 服务部署完成, 修改hosts解析文件,进行浏览器访问测试 至此软件安装完毕! 回到顶部 2.3 部署mysql数据库服务 2.3.1 下载mysql软件 这里使用的是5.6.34版本;在下载mysql的时候一定要注意与系统匹配的版本。 mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 方法一:mysql官网下载地址 https://dev.mysql.com/downloads/mirrors/ 尽量使用ftp下载,http的下载方式较为繁琐。下载的时候选择与自己近的服务进行下载即可。 方法二: 使用搜狐的镜像站也可以进行下载,注意使用的软件版本。 http://mirrors.sohu.com/mysql/ 2.3.2 【二进制包方式】安装mysql数据库软件 2.3.2.1解压二进制包软件🔥 cd /server/tools/ [root@web01 tools]# tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 2.3.2.2创建储存目录管理用户mysql🔥 [root@web01 tools]# useradd -s /sbin/nologin -M mysql 2.3.2.3将解压后的二进制包放置到程序目录中🔥 将mysql解压后的程序包搬家到程序目录下,并创建软连接。 cd /server/tools/ mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 ln -s /application/mysql-5.6.34 /application/mysql 2.3.2.4对mysql数据储存目录进行授权🔥 让mysql用户管理 /application/mysql/data [root@web01 ~]# chown -R mysql.mysql /application/mysql/data/ [root@web01 ~]# ll /application/mysql/data/ -d drwxr-xr-x 3 mysql mysql 4096 Oct 26 11:26 /application/mysql/data/ 2.3.2.5初始化数据库服务🔥 /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql ①始化参数说明: --basedir数据库软件命令,软件安装在哪里 --datadir数据存放目录,数据存放在哪里 --user管理mysql的用户,MySQL使用的用户谁 ②【*】判定初始化命令执行成功的方法 1)确认返回值,看是否为0 [root@web01 ~]#echo$? 2)确认输出的内容中有两个ok 3)通过数据库初始化操作,在data目录中创建出默认的数据库信息和相关表信息 [root@web01 ~]# ls -l /application/mysql/data/ total 110604 -rw-rw---- 1 mysql mysql 12582912 Oct 26 11:56 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Oct 26 11:56 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Oct 26 11:56 ib_logfile1 drwx------ 2 mysql mysql 4096 Oct 26 11:56 mysql drwx------ 2 mysql mysql 4096 Oct 26 11:56 performance_schema drwxr-xr-x 2 mysql mysql 4096 Oct 26 11:26 test ③初始化输出的内容信息 To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system 启动mysql服务,可以复制support-files/mysql.server到系统的启动目录中 mysql.server程序自带的启动脚本文件 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /application/mysql/bin/mysqladmin -u root password 'new-password' /application/mysql/bin/mysqladmin -u root -h web01 password 'new-password' 说明: 表示对mysql服务管理源root用户设置密码 You can start the MySQL daemon with: cd . ; /application/mysql/bin/mysqld_safe & 可以以后台方式运行 mysqld_safe 脚本命令,也可以运行mysql服务 2.3.2.6将启动脚本文件复制到启动目录中🔥 [root@web01 ~]# cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld 修改启动服务脚本相关文件内容--更改软件的存放目录 注意:修改的是两个位置 sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld 添加到开机自启动,让chkconfig 管理,能够开机自启动 [root@web01 ~]# chkconfig --add mysqld [root@web01 ~]# chkconfig mysqld on 2.3.2.7设置mysql服务配置文件🔥 mysql默认配置文件保存位置 /etc/my.cnf 从软件中复制出来配置文件,使用软件中自带的配置文件即可 \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf 2.3.2.8启动mysql服务🔥 [root@web01 ~]# /etc/init.d/mysqld start Starting MySQL...... SUCCESS! 2.3.2.9检查端口信息,确认服务是否启动🔥 [root@web01 ~]# netstat -lntup |grep 3306 tcp 0 0 :::3306 :::* LISTEN 54042/mysqld 2.3.2.10设置root用户密码信息🔥 [root@web01 ~]# /application/mysql/bin/mysqladmin -u root password 'clsn123' Warning: Using a password on the command line interface can be insecure. 2.3.2.11测试 [root@web01 ~]# /application/mysql/bin/mysql -uroot -pclsn123 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 5.6.34 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 登录数据库命令简化方法 echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile source /etc/profile which mysql 2.3.3 管理mysql数据库 2.3.3.1 查看数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.26 sec) 2.3.3.2 查看数据表信息 mysql> use mysql;show tables; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 28 rows in set (0.00 sec) 2.3.3.3 退出数据库 quit | exit 退出数据库时,尽量不要用ctrl+c进行退出mysql 用ctrl+d进行退出 数据库基础操作(数据库框架) show databases; <--- 查询默认的数据库信息 create database clsn; <---创建新的数据库 drop database clsn; <---删除存在的数据库 use mysql; <--- 表示选择使用一个数据库,相当于cd进入一个数据库 show tables; <---查看数据库中表信息 select database(); <--- 表示查看当前所在数据库,类似于pwd命令的功能 select user(); <--- 查看当前登录数据库的用户,类似于whoami命令 并且mysql还可以限制指定用户可以从哪里进行连接登录数据库 select * from user\G; <---查看user表中所有信息,并且纵行显示 select user,host from user; ---查看user表中指定信息,并且横行显示 select user,host from mysql.user; ---查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库 grant all on *.* to user@'host' identified by 'clsn123'; ---创建用户 grant all on *.* to Old_Boy@'localhost' identified by 'clsn123'; ---创建用户(大写用户) drop user 'user'@'host'; flush privileges; --- 刷新权限 回到顶部 2.4 部署php服务 2.4.1 解决PHP软件的依赖关系(14个依赖包) 2.4.1.1基于base源的个依赖包 yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y 检查的方法一:rpm rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel 检查的方法二:再安装一遍即可确认是否都安装上 yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel 2.4.1.2libiconv软件和字符集转换相关软件 由于该软件yum安装不上,需要单独安装一下。 mkdir -p /server/tools cd /server/tools #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make make install 说明:此软件在centos6.8之后已经自带此软件功能,可以不进行安装 编译好的软件如何删除 删除安装后的程序目录即可 fpm定制rpm包 rpm包制作软件---把编译后的程序目录进行打包,通过fpm相关参数指定rpm解压之前要先安装哪些依赖 2.4.1.3安装加密相关的依赖软件(3个) 这三个软件依赖与epel源 yum -y install libmcrypt-devel mhash mcrypt rpm -qa libmcrypt-devel mhash mcrypt 2.4.2 编译安装php过程 解压安装包 cd /server/tools/ [root@web01 lnmp]# tar xf php-5.5.32.tar.gz 配置php(配置的参数较多) mysqlnd本地没有mysql ./configure \ --prefix=/application/php-5.5.32 \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-iconv-dir=/usr/local/libiconv \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --enable-short-tags \ --enable-static \ --with-xsl \ --with-fpm-user=www \ --with-fpm-group=www \ --enable-ftp \ --enable-opcache=no PHP编译参数详解 View Code PHP编译参数详解 输出的信息 Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. 防错 ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ touch ext/phar/phar.phar 编译 &&编译安装 make && make install 2.4.3 PHP软件程序创建软链接 ln -s /application/php-5.5.32/ /application/php 2.4.4 配置php解析文件/配置php-fpm配置文件 两个默认的配置文件区别 cd /server/tools/php-5.5.32 ll php.ini* -rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development -rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production 配置文件说明: php.ini-developments是开发人员调试用配置文件 php.ini-production是生产常见所有配置文件 文件区别对比: 生产的文件不会输出过多的日志信息,而开发文件会输出大量程序测试日志信息。 对比俩个文件不同的命令 diff / vimdiff 复制配置文件(2个) # 创建软连接 : ln -sf /application/php-5.5.32 /application/php [root@web01 ~]#cd /server/tools/php-5.5.32 [root@web01 php-5.5.32]# cp php.ini-production /application/php/lib/php.ini [root@web01 etc]# cd /application/php/etc/ [root@web01 etc]# cp php-fpm.conf.default php-fpm.conf 2.4.5 启动php-fpm程序 [root@web01 ~]# /application/php/sbin/php-fpm 确认php 9000端口是否正确启动(检查服务是否启动) [root@web01 ~]# netstat -lntup |grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 回到顶部 2.5 nginx 与 php 建立连接关系 2.5.1 修改nginx配置文件,使nginx程序与php程序建立联系 vim extra/blog.conf server { listen 80; server_name blog.etiantian.org; location / { root html/blog; index index.php index.html index.htm; } location ~* .*\.(php|php5)?$ { root html/blog; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } } 说明:利用nginx的location区块实现动态请求与静态请求的分别处理 <-- 需要注意编辑修改默认首页文件 index index.php index.html index.htm; 让nginx服务具有动态请求解析功能。 2.5.2 重启服务 [root@web01 ~]# /application/nginx/sbin/nginx -t nginx: the configuration file /application/nginx-1.10.2/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.10.2/conf/nginx.conf test is successful [root@web01 ~]# /application/nginx/sbin/nginx -s reload 2.5.3 编辑nginx与php连通性测试文件,并进行测试 测试动态请求是否可以处理: echo '<?php phpinfo(); ?>' >/application/nginx/html/blog/test_info.php 测试站点 curl http://blog.etiantian.org/index.html <-- 静态请求站点文件信息测试 curl http://blog.etiantian.org/test_info.php <-- 动态请求站点文件信息测试 说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误 linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些 2.5.4 浏览器测试 浏览器访问 http://blog.znix.top/test_info.php 回到顶部 2.6 编辑php与mysql连通性测试文件,并进行测试 2.6.1 创建数据库 mysql -uroot -pclsn123; show databases; <--- 查看当前数据库信息 create database wordpress; <---创建博客储存数据库 2.6.2 在mysql中添加用户信息 创建数据库授权用户 grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'clsn123'; flush privileges; 授权 所有权限 为 wordpress库的所有表 用户@地址 设置密码 ; 刷新数据库 添加上用于blog使用的mysql用户 drop user wordpress@'172.16.1.8'; <--- 删除用户信息 select user,host from mysql.user; <--- 查看用户信息 mysql -uwordpress -p123456 <--- 测试创建的用户连接 show databases; <--- 查看当前数据库信息 回到顶部 2.7 测试php与数据库连通性 vim test_mysql.php <?php //$link_id=mysql_connect('主机名','用户','密码'); //mysql -u用户 -p密码 -h 主机 $link_id=mysql_connect('localhost','wordpress','clsn123') or mysql_error(); if($link_id){ echo "mysql successful by clsn !\n"; }else{ echo mysql_error(); } ?> 2.7.1 网站访问测试 测试动态请求访问nginx服务是否可以到达数据库 回到顶部 2.8 下载部署wordpress博客程序 下载地址:https://cn.wordpress.org 2.8.1 解压出来 tar xf wordpress-4.7.3-zh_CN.tar.gz 2.8.2 代码上线 [root@web01 wordpress]# pwd /server/tools/lnmp/wordpress [root@web01 wordpress]# mv ./* /application/nginx/html/blog/ 2.8.3 统一代码属主.属组 对站点目录进行 授权 [root@web01 wordpress]# cd /application/nginx/html/blog/ [root@web01 blog]# chown www.www -R /application/nginx/html/blog/ [root@web01 blog]# ll total 200 -rw-r--r-- 1 www www 11 Oct 25 09:20 index.html -rw-r--r-- 1 www www 418 Sep 25 2013 index.php …… 说明:wp-config.php文件创建需要能够有权限对目录操作。 此文件定义数据库连接信息 2.8.4 创建数据库 mysql -uroot -pclsn123; show databases; create database wordpress; 2.8.5 添加wordpress数据库用户 mysql> grant all on wordpress.* to 'wordpress'@'10.0.0.%' identified by 'clsn123'; Query OK, 0 rows affected (0.16 sec) mysql> select user,host from mysql.user; +-----------+-----------+ | user | host | +-----------+-----------+ | wordpress | 10.0.0.% | | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | web01 | | root | web01 | +-----------+-----------+ 7 rows in set (0.00 sec) 2.8.6 安装wordpress 访问网站进行初始化操作 填写的数据为 连接数据库配置说明 数据库名:指定数据存储到哪一个数据库当中,例如:存储到wordpress数据库中 用户名:以什么用户身份管理wordpress数据库 密码: 用户的密码 数据库主机: 指定连接的数据库服务器地址信息 表前缀:标识相应表属于哪一个数据库 说明:配置完数据连接信息后,会自动创建wp-config.php文件,此文件定义数据库连接配置信息 安装完成效果 第3章 mysql数据/储存数据迁移 回到顶部 3.1 mysql数据库迁移 说明: 以上的mysql配置都是在web01 上进行 ,现在需要将web01上的mysql数据进行迁移到db01(数据库服务器)上去。 3.1.1 备份数据库中的数据 [root@db01 ~]# mysqldump -uroot -pclsn123 --all-databases >/tmp/bak.sql 使用mysqldump命令将数据库中的全部数据进行备份 备份到 /tmp/bak.sql 。 mysqldump命令参数说明: 参数 参数说明 --add-drop-table 在每个创建数据库表语句前添加删除数据库表的语句; --add-locks 备份数据库表时锁定数据库表; --all-databases 备份MySQL服务器上的所有数据库; --comments 添加注释信息; --compact 压缩模式,产生更少的输出; --complete-insert 输出完成的插入语句; --databases 指定要备份的数据库; --default-character-set 指定默认字符集; --force 当出现错误时仍然继续备份操作; --host 指定要备份数据库的服务器; --lock-tables 备份前,锁定所有数据库表; --no-create-db 禁止生成创建数据库语句; --no-create-info 禁止生成创建数据库库表语句; --password 连接MySQL服务器的密码; --port MySQL服务器的端口号; --user 连接MySQL服务器的用户名。 3.1.2 将备份数据传输到mysql服务器(db01) [root@web01 tools]# rsync -avz /tmp/bak.sql 172.16.1.51:/tmp/ The authenticity of host '172.16.1.51 (172.16.1.51)' can't be established. RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.16.1.51' (RSA) to the list of known hosts. root@172.16.1.51's password: sending incremental file list bak.sql sent 377261 bytes received 31 bytes 83842.67 bytes/sec total size is 1483738 speedup is 3.93 使用rsync将数据推送到MySQL服务器的/tmp 目录下面。 3.1.3 数据库服务器部署mysql服务(快速部署命令集) mysql服务快速部署过程脚本。详情参见mysql数据库部署安装。 cd /server/tools tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz useradd -s /sbin/nologin -M mysql mkdir -p /application/ mv /server/tools/mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34 ln -s /application/mysql-5.6.34/ /application/mysql chown -R mysql.mysql /application/mysql /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld \cp /application/mysql/support-files/my-default.cnf /etc/my.cnf /etc/init.d/mysqld start /application/mysql/bin/mysqladmin -u root password 'clsn123' 3.1.4 将备份的数据恢复到数据库服务器上 [root@db01 ~]# /application/mysql/bin/mysql -uroot -pclsn123 </tmp/bak.sql Warning: Using a password on the command line interface can be insecure. 注意,数据库导入之后要刷新数据库,让导入的数据被识别(重要) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 3.1.5 在web01服务器上进行远程登陆数据库测试 [root@web01 ~]# /application/mysql/bin/mysql -u wordpress -pclsn123 -h 10.0.0.51 Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.34 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | wordpress | +--------------------+ 3 rows in set (0.00 sec) 3.1.6 修改web服务器php连接数据库主机的配置文件 修改wordpress软件的配置,将连接的主机地址改为数据库服务器的地址 [root@web01 ~]# vim /application/nginx/html/blog/wp-config.php …… /** MySQL主机 */ define('DB_HOST', '10.0.0.51'); …… 回到顶部 3.2 本地数据挂载到nfs共享储存 3.2.1 确认本地数据的储存位置(三种方法) 01.通过网页图片属性信息进行确认路径 http://blog.clsn.top/wp-content/uploads/2017/10/cropped-Frog-2.png 02.通过find查看数据储存路径信息,上传个图片,查找相同中1分钟以内的文件 find -type f -mmin -1 03.通过inotify软件进行监控 确认文件的储存目录 /application/nginx/html/blog/wp-content/uploads 3.2.2 将已有数据进行迁移备份 备份数据是因为挂载的时候会将当前的数据全部'覆盖'掉,只显示nfs共享目录的信息。 [root@web01 uploads]# pwd /application/nginx/html/blog/wp-content/uploads [root@web01 uploads]# mkdir /tmp/wordpress_bak [root@web01 uploads]# mv ./* /tmp/wordpress_bak/ 3.2.3 nfs储存服务配置 配置nfs服务的时候注意权限的设置 [root@nfs01 data]# cat /etc/exports #share user:hzs /data 172.16.1.0/24(rw,sync,root_squash,no_all_squash,anonuid=501,anongid=501) 注意: anonuid 与 anongid 要和web服务器上的www用户的相同(UID与GID相同) [root@nfs01 /]# id www uid=501(www) gid=501(www) groups=501(www) 目录的属组要是与nfs配置的anonuid,anongid相同的用户。 [root@nfs01 /]# ll /data/ -d drwxr-xr-x 3 www www 4096 Oct 27 12:11 /data/ NFS的配置详情参见:NFS存储服务部署一篇。 3.2.4 将储存目录挂载到nfs共享目录上 注:作为nfs客户端需要安装nfs-utils 和 rpcbind ①先检查是否能挂载,显示可以挂载的目录 [root@web01 uploads]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /data 172.16.1.0/24 ②将磁盘进行挂载 [root@web01 uploads]# mount -t nfs 172.16.1.31:/data /application/nginx/html/blog/wp-content/uploads/ ③显示磁盘信息 [root@web01 uploads]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 3.7G 15G 21% / tmpfs 238M 0 238M 0% /dev/shm /dev/sda1 190M 40M 141M 22% /boot 172.16.1.31:/data 19G 1.5G 17G 9% /application/nginx-1.10.2/html/blog/wp-content/uploads 3.2.5 恢复数据(将之前备份的数据还原回来) [root@web01 uploads]# pwd application/nginx-1.10.2/html/blog/wp-content/uploads [root@web01 uploads]# mv /tmp/wordpress_bak/* ./

优秀的个人博客,低调大师

消息中间件的多个企业级场景案例--分析

1 用户注册后(会立即提示注册成功),过一会发送短信和邮件通知 发布/订阅模型 以上模式一般是用户注册成功后,写入一条数据到mysql,在发送一条消息到MQ! 如果不用消息中间件(或者简单的做成异步发送),做成了用户提交了注册之后,成功后,就同步立即执行发送邮件和短信服务脚本(这样耗时间),这样用户体验不好时间慢! 术语: SOA 2 把日志进行集中收集,用于日志分析和流量回放分析 术语:灰度发布,小流量 3 将数据源头复制到多个目的地,一般是要求顺序或者因果关系序的 用于跨机房数据传输,搜索 离线数据和其他DB等 术语: AOP 4 消息暂存地 把消息中间件当成可靠的消息暂存地 定时进行消息投递,比如模拟用户秒杀访问,进行系统性能压测 消费者消费完后不删除消息! 这种压测方式比较真实,比一般的并发压测软件更符合真实环境! 5 缓存数据同步更新 往应用推送数据 就像很多数据都是缓存在本地的应用中的如tomcat应用,如一个数据价格缓存,当有数据更新的时候,就需要及时(而不是通过租约到期去解决) 这个时候就需要中间件,不是一个一个去通知更新 本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1769423如需转载请自行联系原作者 cuizhiliang

优秀的个人博客,低调大师

中国物联网产业规模逼近万亿级 巨无霸企业有望诞生

物联网正成为各国竞相争夺的下一个产业高地。9月10日,由工信部、科技部和江苏省人民政府主办的2017世界物联网博览会暨世界物联网无锡峰会召开。与会人士认为,物联网将很有可能推动第四次工业革命,并催生新一代的巨无霸企业。 江苏省委书记李强表示,物联网作为全新的连接方式,千亿连接量必定催生新一代的巨无霸企业。他认为,物联网作为新一代信息通信技术的典型代表,其快速发展和应用,将现有产业领域和要素资源,经过相互渗透、融合或裂变,整合连接到一起,实现产业价值链的延伸或突破,使产业边界日益模糊,跨界融合的趋势特征更加彰显。从目前态势看,智能、健康、环境在产业跨界融合上是最具优势、最有需求、最可能突破的三大领域。 工信部副部长罗文在峰会上透露,中国已经形成了包括芯片和元器件、设备、软件、系统集成、电信运营、物联网服务等较为完善的物联网产业链。已部署的机器到机器终端数量突破1亿,物联网产业规模已从2009年的1700亿元跃升至2016年超过9300亿元,年复合增长率超过25%。罗文表示,将围绕制造业重点行业智能化改造,实施一批试点示范项目,推动生产制造全过程、全产业链、产品全生命周期的深度感知、动态监控、数据汇聚和智能决策,促进产业提质增效升级。 科技部党组书记、副部长王志刚则在峰会上表示,信息化发展到今天,已从计算机时代、互联网时代延伸到物联网,并将感知技术、大数据以及人工智能等新的科技包罗其中,很大可能会以此为基础产生第四次工业革命。“十三五”期间将继续强化在信息技术领域的集成应用能力,推动云计算、大数据、智能硬件、互联网、高性能计算、物联网、智慧城市等领域实现跨界集成与垂直整合,拓展经济发展新空间。 阿里巴巴集团董事局主席马云表示,物联网和云计算、大数据,合在一起才是真正的未来。他认为,未来数据将成为最重要的生产资料,计算能力将成为一种强大的生产力。新零售以后,巨大的变革是新制造,大批的制造业,在未来的十年到十五年之间,面临的痛苦远远超过今天的想象。未来的制造业不是靠规模化、不是靠流水线,未来的制造业一定是个性化的、定制化的,一定是C2B,而不是B2C。 本文转自d1net(转载)

优秀的个人博客,低调大师

物联网憧憬万亿级产业空间 传感器将成“支点”

“我们感谢共享单车,它让大家切身感受到了物联网和智能化的价值。”近日,在成都举行的第四届全球传感器高峰论坛暨中国物联网应用峰会上,有演讲嘉宾感慨道。而在中科院微电子所所长叶甜春看来,物联网发展到现在,最大的瓶颈依然在两端,即信息的收集和处理,其中传感器既是物联网最薄弱的环节又是发展空间最为可观的领域。 叶甜春认为,近十年来,物联网都是处于打基础的阶段。现在,物联网已开始出现快速增长的趋势,我国正从“工业化与信息化融合”转向“全面的信息化时代”。其中,至少有七个方向大有可为:可穿戴&VR(虚拟现实)、车联网+智能驾驶、机器人、智能家居、智慧工业、智慧医疗、智慧城市。有数据预测,到2020年,中国物联网的整体规模将超过1.8万亿元。 “地域上看,一些边远地区也在积极发展物联网,这些地区还有后发优势。”叶甜春表示,边远地区发展信息产业,一个比较好的做法就是引入物联网概念,从公共领域开始,通过信息融合,实现综合治理。“在一个统一的平台上,实现多领域的政务、社会管理,这是非常先进的理念,我们称之为‘智慧城乡’;边远地区因为前期建设少,没有既定的‘各自为政’的阻碍,实施时更有优势。” 例如,作为首批七个NB-IoT(窄带物联网)试验省份之一,四川提出了打造千亿物联网产业集群,已形成以成都为中心,以绵阳、乐山、遂宁等为支撑的物联网产业发展集群。 物联网数字化世界的最终目标是实现信息化,即获取决策信息。对此,叶甜春认为,物联网发展到现在,最大的瓶颈依然在两端,即信息的收集和处理。由此,传感器和数据处理成为关键点,而现有的传感器并不能满足实际需求。 “我们需要一些体积更小、功能更综合的传感器。”有来自电力系统的参会人员对记者表示。对此,斯坦福大学材料系和电机系终身教授王善祥在接受采访时表示,以往的传感器大多是电容传感器,不仅体积大、价格昂贵,不能完全满足需求,还被西门子等国外厂商所垄断。据悉,王善祥与清华大学合作,正在研制巨磁阻传感器,不仅可同时完成电流、电压、功率测量,预计未来一到两年可实现产品化。 仅在电力行业,对传感器的需求就非常可观。国际咨询机构Global Data预测,到2020年,中国输电线路总里程将超过159万公里。王善祥认为,作为全球直流电网领先者,中国电力系统可能需要上亿颗传感器。 在叶甜春看来,传感器是物联网最薄弱的环节,其最大的需求在工业领域。叶甜春认为,传感器正在朝着四个趋势发展:一是进行新原理、新材料、新工艺的研发和应用;二是集成化、小型化与多功能;三是柔性化;四是智能化与网络化。突破瓶颈的核心技术还是MEMS技术。 除了传感器,对数据的处理也是制约物联网发展的一大瓶颈。叶甜春强调,当物联网系统连接的设备成千上万时,如何进行数据的管理及处理就成为关键。从语音、视频等数据中挖掘信息,再通过判断把信息变成情报,最终用于决策,这才是物联网的价值所在。这样的信息处理不仅是在后端,在信息收集的前端就应开始,也就对设备提出新的软硬件需求,包括传感器的智能化。 此外,叶甜春认为,物联网安全需要提上日程、引起重视。随着物联网智能化的发展,隐私信息被泄露和侵犯成为一个问题,可能导致大量的网络暴力。应加强物联网安全,在对信息的控制和应用方面,需要重新进行伦理和法理衡量。 本文转自d1net(转载)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册