php怎么设置gzip,mysql数据库版本不同导致无法导入数据?
这个错误是说明你没有权限创建数据库在CREATE DATABASE IF NOT EXISTS `mvm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;前面加上--,把创建数据库注释掉--CREATE DATABASE IF NOT EXISTS `mvm` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;mysql数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。2. 方法一 SQL脚本形式操作步骤如下:2.1. 导出SQL脚本在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump命令行,导出SQL脚本。2.1.1 用phpMyAdmin工具导出选项中,选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项。选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。将导出的SQL文件保存下来。2.1.2 用mysqldump命令行命令格式mysqldump -u用户名 -p 数据库名 > 数据库名.sql范例:mysqldump -uroot -p abc > abc.sql(导出数据库abc到abc.sql文件)提示输入密码时,输入该数据库用户名的密码。2.2. 创建空的数据库通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。2.3. 将SQL脚本导入执行同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。2.3.1 用phpMyAdmin工具从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。gzip使用方法:# gzip xxxxx.sql得到xxxxx.sql.gz文件。提示输入密码时,输入该数据库用户名的密码。3 直接拷贝如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。3.1 准备原始文件用tar打包为一个文件3.2 创建空数据库3.3 解压在临时目录中解压,如:cd /tmptar zxf mydb.tar.gz3.4 拷贝将解压后的数据库文件拷贝到相关目录cd mydb/cp * /var/lib/mysql/mydb/对于FreeBSD:cp * /var/db/mysql/mydb/3.5 权限设置将拷贝过去的文件的属主改为mysql:mysql,权限改为660chown mysql:mysql /var/lib/mysql/mydb/*chmod 660 /var/lib/mysql/mydb/*
nginx如何配置?
Nginx概述Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。
Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
常用功能反向代理,代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果。实现限流、负载均衡、动静分离等。负载均衡(Load Balance),是分布式系统中一个非常重要的概念。当访问的服务具有多个实例节点时,需要根据某种“均衡”的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡。多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。web缓存,Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理配置示例修改Nginx目录下nginx.conf配置文件,如下所示:
upstream server {
ip_hash;
server 192.168.200.129:80; #第一台负载的ip及端口
server 192.168.200.131:80; #第二台负载的ip及端口
}
server {
listen 80;
server_name localhost Nginx_ip;
location / {
proxy_pass http://server;
proxy_redirect default;
}
}
参数说明upstreamupstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器。
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com fail_timeout=5s slow_start=30s;
server backend3.example.com resolve;
server backend4.example.com service=http resolve;
server backup1.example.com backup;
server backup2.example.com backup;
}
serverserver模块配置是http模块中的一个子模块,用来定义一个虚拟访问主机。
server {
listen 80;
server_name localhost nginx_ip;
root /nginx/www;
index index.php index.html index.html;
charset utf-8;
access_log logs/access.log;
error_log logs/error.log;
}
locationlocation模块配置在路由访问信息配置中关联到反向代理、负载均衡等等各项功能。
语法规则: location [=|~|~*|^~] /uri/ { … }
多个location优先级:首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
location / {
root /nginx/www;
index index.php index.html index.htm;
}
location ^~ /test {
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header Host $host;
}
location /:表示匹配访问根目录。
root:用于指定访问根目录时,访问虚拟主机的web目录。
index:在不指定访问具体资源时,默认展示的资源文件列表。
如果解决了你的疑惑,请点点关注和评论,谢谢支持。
正春华枝俏,待秋实果茂,与君共勉。
如何理解Nginx和Tomcat?
Nginx 是一个轻量级高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品,Nginx选择 epoll and kqueue作为开发模型,能够支持高达 50,000 个并发连接数的响应。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行,也就是说没有Apache,只有Tomcat也可以解析静态页面和动态页面(jsp)。
在实践中,我们经常把Tomcat作为Java服务端的 Servlet容器,我们的 war 包部署在 Tomcat 上,我们的spring boot项目构建的 jar 包使用内置Tomcat(或Jetty)进行部署提供服务,同时单纯的静态页面服务也可以使用Tomcat进行服务容器。而使用 Nginx 作为HTTP层的负载均衡器,在容器中部署Nginx,以便可以对一容器多实例(Tomcat)进行路由分发,也在网关层部署Nginx,以便对多台容器进行路由分发。
总体而言,Nginx具备负载均衡、反向代理、处理静态文件优势,这也就是为啥java服务器Tomcat前面先要经过Nginx服务器处理一波,(只转发请求,不做其他操作,可以看下上面的反向代理的解释),Nginx并发性比较好,CPU内存占用低。而Tomcat作为动态解析容器,处理动态请求,是编译JSP、Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
Fikker是什么?
1. Fikker是安装在自身网站服务器上的一个缓存加速软件, 所以前提是你要有自己的服务器或VPS. Fikker网站加速的基本原理是: 通过软件自带的 Fikker 管理平台配置将你的网站页面缓存起来, 动态页面或静态页面, 周期缓存时间可以是几秒钟, 也可是几天, 也就是网站只需要生成一次页面, 在一个缓存周期时间之内有其他用户访问的时候, 网站就不用再频繁的生成这一些页面了, 这样子影响网站速度的数据库瓶颈就消失了; Fikker加速方法之二就是对这些动态页面(asp,php,jsp,html,js,css,txt)进行 gzip 压缩, 这种文本页面被压缩以后传输的尺寸平均减少75%以上, 网站的响应速度大大提升. 所以总体来说, Fikker网站加速(Fikker缓存加速)是在带宽和服务器硬件条件不变的条件下, 利用的webcache技术和gzip技术解决来网站速度问题, 非常适合包含有动态页面的网站使用, 加速的效果可成倍提升. 除此之外, Fikker作为前端服务器还可以提供了很多实用性的功能, 防盗链, 实时监控(可监测用户当前访问的一举一动), 伪静态, ajax 跨域, 各省市自治区流量统计百分比报表, 黑名单等功能. Fikker缓存加速服务器软件目前提供有免费版下载. 2. CDN,即内容分发网络。将网站指定的内容发布到CDN运营商部署在各地的服务器上。使用户可以就近取得所需的内容, 提高用户访问网站的响应速度。目前流行的大部分CDN加速针对对于静态资源加速很明显, 例如图片, 视频, 音频等静态资源, 但对于缓存时效性很高的动态页面, 核心的速度瓶颈在源站那里, 也就是生成页面的速度, 数据库的瓶颈, CDN的加速效果不够明显. 总之来说, CDN运营商利用自身的服务器和带宽资源(相对于Fikker提升自身服务器利用率而言), 将网站的静态资源或者更新时效性不算很高的页面缓存起来, 达到加速的目的. CDN一般是按照带宽流量计费的.
图片网站如何加速?
除了直接的使用CDN加速服务外,您也可以使用:替换或者提高压缩算法和策略
如果你有特别的客户端,可以考虑使用自定义的更高压缩比的压缩方式,这个做手机应用的童鞋或许接触过,和十年前大家压缩MP3以及做软件压缩包一样,使用自己软件算法和策略替代市面上已有的算法和策略。如果没有特别的客户端,不妨对图片和视频使用更好的压缩格式,比如webp和webm,以及适当情况下的gif替代png等。
其他层面的方法:
服务器性能:
说到服务器性能,可能多数人会停留在几核几G几百G这种概念上,但是对于网站服务器,关注的应该是单机/VPS的数字运算能力和IO读写能力,如果不是单机服务器,那么请关注自己实际能使用的资源数量,尤其是高峰时刻够用且有余力!
机房带宽资源:
带宽资源或许是除了高端存储设备外,价格最贵的资源之一了。所以,评估带宽是否满足你的站点,是特别重要的事情。一般来说小站点,1~2M的带宽绝对够用。如果不知道你的机器的带宽能力,不妨登录机器后台观察流量图峰值,或者机器安装speedtest-cli,来进行数据收集。
服务器的上行带宽,即是我们常说的网站带宽,一般而言,此数值越大,提供的访问能力就越强。
服务器软件性能:
“尺有所短,寸有所长”,软件也是一样,小站点,资源有限的情况下:
如果你以前使用apache,且没有使用一些三方模块,或者不需要使用apache软件套装里的高级功能,或者没有软件必须依赖apache,以及三方模块能在nginx中找到替代的,可以考虑替换为nginx。
如果你的程序允许实现数据库缓存/站点内容缓存,但是没有使用缓存的,请开启缓存功能;如果你的程序使用了文件缓存,在内存资源有富裕的情况下,请使用内存缓存(自己考虑缓存策略);如果你的程序原来的运行环境执行速度不够快,那么请考虑升级或运行环境,诸如php5.2->php.5.6+,或者php5.6->hhvm 3.x,asp/php->nodejs;如果你的程序中多数功能你用不到,考虑使用更轻便的小程序;如果你启用了缓存,且数据库(关系数据库)读取热数据频率高于冷数据,且访问量不是特别大,不需要考虑数据库效率,否则需要考虑数据库进行分库分表和建立适当的索引,以提高数据库吞吐能力。
根据自己情况适当调整nginx/mysql/redis/memcache等软件的数据分块大小。
优化程序关键逻辑的流程,尽可能让程序始终遵循最短路径结束任务。
尽可能让TCP链接重用,或者适当调整持久链接的时间和数量(Keep-Alive),以及考虑使用SPDY、防火墙/服务器代理软件/程序对访客限制流量以及过滤或者禁止能力范围内的异常流量。
DNS查询速度:
DNS对于站点首次打开速度至关重要,所以请尽可能选择靠谱的DNS提供商来解决DNS查询问题。
除此之外,对于webkit支持DNS预缓存的浏览器,可以在页面头部尽少和尽合理的添加要缓存的DNS,以加快页面展示速度。
替换或者提高压缩算法和策略:
如果你有特别的客户端,可以考虑使用自定义的更高压缩比的压缩方式,这个做手机应用的童鞋或许接触过,和十年前大家压缩MP3以及做软件压缩包一样,使用自己软件算法和策略替代市面上已有的算法和策略。如果没有特别的客户端,不妨对图片和视频使用更好的压缩格式,比如webp和webm,以及适当情况下的gif替代png等。
页面提供资源数量:
尽可能减少同一时间的资源请求数量:
1. 对于静态样式和脚本,使用合并策略。针对单页面程序,你可以将所有样式或者脚本都合并为一个单独的文件。但是针对多页面,以及带有皮肤策略的站点,则考虑抽象基础的Base内容和额外的内容,并通过前后端脚本进行策略加载。
2. 对于图片和视频资源,在交互允许的情况下,使用延时加载,跨屏预加载一定数量,来取代页面文档加载完成后就加载全部的策略。
对不同浏览器使用不同的脚本:
差异对待浏览器,对古老浏览器不使用一些功能,以及差异对待浏览器使用的基础脚本库。如果你使用下一节提到的JS加载器,那么这个很容易做到。
页面增量更新:
如果你的内容支持异步增量更新,那么使用接口更新增量内容的模式,来替换打开新页面的模式。
客户端缓存:
简单的说,尽可能给所有资源使用最长时间的缓存,对于不支持200 cache的客户端提供304 Modified缓存(前者不需要额外HTTP请求)。
客户端本地缓存:
对于变化不大的站点,配合脚本,对支持使用本地缓存的客户端进行适当的数据缓存。
页面资源加载时机:
将页面主要样式尽可能放在文档顶部、将三方不可合并脚本尽可能放置页面底部、将页面inline脚本尽可能替换为配置内容。
用户终端某时刻性能:
受限于客户端宿主机性能以宿主机网络环境。和最开始提到的服务器性能一样,CPU时间片被其他程序占用时,或者硬件古老,以及网络被其他程序占用的时候,会带来浏览的不畅。
如果你对网站的一般访问速度有信心(通过收集到的数据的反馈),且网站属于内容展示类的,可以在适当的位置加诸如以下的提示(程序打底提示):
页面加载过慢,不妨检查网络环境是否有其他软件占用(下载工具/在线视频),并刷新页面。资源加载失败,请刷新重试。
待页面加载完成,干掉以上提示。但是请权衡此内容的存储位置和脚本执行时机,考虑搜索引擎将提示和内容都缓存的情况。
用户终端浏览器性能:
如果你的用户使用者古老的浏览器,软件性能成为页面数据下载和渲染瓶颈,那么不妨给其一个提示,或者强制其使用新版本的浏览器进行访问:
请更新浏览器以获得更加体验。
本站仅支持新的浏览器:A,B,C。
为了您的访问速度和安全考虑,我们推荐您安装:X,Y,Z。
用户直观感受:极致畅快体验!!!