• 关于

    自复制自动机如何看配置

    的搜索结果

回答

一、什么是Web服务器配置 Web服务器配置,是在服务器(领取49元服务器)上部署站点,并设置好相关的参数,至于站点上需要放置的网站程序,应该由开发人员制作并上传到服务器中,这个工作不属于Web服务器配置的工作。 二、Web服务器概述 Web服务器又称为WWW服务器,它是放置一般网站的服务器。一台Web服务器上可以建立多个网站,各网站的拥有者只需要把做好的网页和相关文件放置在Web服务器的网站中,其它用户可以用浏览器访问网站中的网页了。 IIS的安装 一般在安装操作系统时不默认安装IIS,所以在次Web服务器配置时需要安装IIS。安装方法为: 1、打开“控制面板”,打开“添加/删除程序”,弹出“添加/删除程序”窗口。 2、单击窗口中的“添加/删除Windows组件”图标,弹出“Windows组件向导”对话框。 web服务器配置 3、选中“向导”中的“应用程序服务器”复选框。单击“详细信息”按钮,弹出“应用程序服务器”对话框。 web服务器配置 4、选择需要的组件,其中“Internet信息服务(IIS)”和“应用程序服务器控制台”是必须选中的。选中“Internet信息服务(IIS)”后,再单击“详细信息”按钮,弹出“Internet信息服务(IIS)”对话框。 web服务器配置 5、选中“Internet信息服务管理器”和“万维网服务”。并且选中“万维网服务”后,再单击“详细信息”按钮,弹出“万维网服务”对话框。 web服务器配置 6、其中的“万维网服务”必须选中。如果想要服务器支持ASP,还应该选中“Active Server Pages”。逐个单击“确定”按钮,关闭各对话框,直到返回图1的“Windows组件向导”对话框。 7、单击“下一步”按钮,系统开始IIS的安装,这期间可能要求插入Windows Server 2003安装盘,系统会自动进行安装工作。 8、安装完成后,弹出提示安装成功的对话框,单击“确定”按钮完成了IIS的安装。 友情提示:如果想要同时装入FTP服务器,在“Internet信息服务(IIS)”对话框中应该把“文件传输协议(FTP)服务”的复选框也选中。 web服务器配置 在IIS中创建Web网站 打开“Internet 信息服务管理器”,在目录树的“网站”上单击右键,在右键菜单中选择“新建→网站”,弹出“网站创建向导”: web服务器配置 web服务器配置 网站描述是网站的名字,它会显示在IIS窗口的目录树中,方便管理员识别各个站点。本例中起名为“枝叶的网站”。 web服务器配置 网站IP地址:如果选择“全部未分配”,则服务器会将本机所有IP地址绑定在该网站上,这个选项适合于服务器中只有这一个网站的情况。也可以从 下拉式列表框中选择一个IP地址(下拉式列表框中列出的是本机已配置的IP地址,如果没有,应该先为本机配置IP地址,再选择。) TCP端口:一般使用默认的端口号80,如果改为其它值,则用户在访问该站点时必须在地址中加入端口号。 主机头:如果该站点已经有域名,可以在主机头中输入域名。 web服务器配置 主目录路径是网站根目录的位置,可以用“浏览”按钮选择一个文件夹作为网站的主目录。 web服务器配置 网站访问权限是限定用户访问网站时的权限,“读取”是必需的,“运行脚本”可以让站点支持ASP,其它权限可根据需要设置。 单击“下一步”,弹出“完成向导”对话框,完成了新网站的创建过程,在IIS中可以看到新建的网站。把做好的网页和相关文件复制到主目录中,通常可以访问这个网站了。 web服务器配置 访问网站的方法是:如果在本机上访问,可以在浏览器的地址栏中输入“http://localhost/”;如果在网络中其它计算机上访问,可以在浏览器的地址栏中输入“http://网站IP地址”。 说明:如果网站的TCP端口不是80,在地址中还需加上端口号。假设TCP端口设置为8080,则访问地址应写为“http://localhost:8080/”或“http://网站IP地址:8080”。 网站的基本配置 如果需要修改网站的参数,可以在“网站名字”上单击右键,在右键菜单中选择“属性”,可以打开“网站属性”对话框。 1、“网站”标签 “网站标识”:可以设置网站名字、IP地址、端口号。单击“高级”按钮可以设置主机头名。 2、“主目录”标签 web服务器配置 在本地路径中可以设置主目录的路径名和访问权限。 3、“文档”标签 web服务器配置 默认文档是指访问一个网站时想要打开的默认网页,这个网页通常是该网站的主页。如果没有启用默认文档或网站的主页文件名不在默认文档列表中,则访问这个网站时需要在地址中指明文件名。 默认文档列表中最初只有4个文件名:Default.htm、Default.asp、index.htm和Default.aspx。我用 “添加”按钮加入了一个index.asp,并用“上移”按钮把它移到了顶部。这主要是因为我的网站的主页名为“index.asp”,所以应该把它加入 列表,至于是否位于列表顶部倒是无关紧要的。 经过以上配置,一个Web网站可以使用了。把制作好的网页复制到网站的主目录中,网站主页的文件名应该包含在默认文档中。打开浏览器,在地址栏中输入“http://本机IP地址”,可以打开网站的主页。其它页面可以用网页中的超链接打开。 虚拟目录 虚拟目录可以使一个网站不必把所有内容都放置在主目录内。虚拟目录从用户的角度来看仍在主目录之内,但实际位置可以在计算机的其它位置,而且虚拟目录的名字也可以与真实目录不同。如: web服务器配置 web服务器配置 图中用户看到的一个位于主目录下的文件夹“pic”,它的真实位置在服务器的“D:myimage”处,而主目录位于“C:mywww” 处。假设该网站的域名是“www.abc.com”,则用户访问“http://www.abc.com/pic/文件1”时,访问的实际位置是服务器的 “D:myimage文件1”,所以虚拟目录的真实名字和位置对用户是不可知的。 创建虚拟目录的方法: 打开 Internet 信息服务窗口,在想要创建虚拟目录的 Web 站点上 单击右键,选择“新建”→“虚拟目录”。弹出虚拟目录创建向导: web服务器配置 别名是映射后的名字,即客户访问时的名字; web服务器配置 路径:服务器上的真实路径名,即虚拟目录的实际位置; web服务器配置 访问权限:指客户对该目录的访问权限。 单击“下一步”按钮,弹出完成对话框,虚拟目录建立成功了。把相关文件复制到虚拟目录中,用户可以按照虚拟的树形结构访问到指定文件了。 通常虚拟目录的访问权限、默认文档等都继承自主目录,如果需要修改,可在“Internet 信息服务管理器”中的虚拟目录上单击右键,选择“属性”,可以修改虚拟目录的参数设置了。 三、常见问题 1、如何在一台Web服务器上建立多个网站? 在IIS管理器的“网站”上单击右键,选择“新建Web网站”,然后用“网站创建向导”可以创建新网站,每运行一次能创建一个网站。 多网站的关键是如何区分各个网站,区分的依据是IP地址、TCP端口号、主机头,只要这三个参数中有任何一个不同都可以。 ①用IP地址区分各网站:首先为服务器配置多个IP地址,然后在网站属性的IP地址栏目中为每个网站设置一个IP地址。 ②用TCP端口区分各网站:这时各网站可以使用相同的IP地址,但把TCP端口设置的不同(应该使用1024~65535之间的值),这样也可以区分各网站。但这种方法要求用户在访问网站时,必须在地址中加入端口号,显得不太方便,一般不用。 ③用主机头区分各网站:主机头是一个符合DNS命名规则的符号串,一般用网站的域名作为主机头。设置主机头可以在网站属性的“网站”标签中单击“高级”按钮进行设置。如图: web服务器配置 利用这个“高级”设置,还可以为一个网站配置多个IP地址,或使用不同的TCP端口。 2、网站配置完成后,为何打不开? 最常见的情况是没有把网站主页的文件名添加到默认文档列表中,IIS6中网站的默认文档只有4个:Default.htm、 Default.asp、index.htm和Default.aspx,如果你的网站主页名字不是这4个中的一个,应该把它添加进去。如果不添加, 应该用带文件名的地址访问这个页面。 3、为什么我的ASP页面不能执行? 在IIS6中,ASP文件必须在启用“Active Server Pages”时才能执行,如果安装IIS时,没有选中“Active Server Pages”,则服务器默认不启用“Active Server Pages”,也不能执行ASP文件。 启用“Active Server Pages”的方法是:打开“Internet 信息服务管理器”,选中其中的“Web服务扩展”,然后启用里面的“Active Server Pages”。如图: 转载于:https://server.zzidc.com/fwqpz/528.html web服务器配置

养狐狸的猫 2019-12-02 02:11:36 0 浏览量 回答数 0

问题

程序员报错QA大分享(1)

问问小秘 2020-06-18 15:46:14 8 浏览量 回答数 1

问题

discuz升级SLB方法

zellop 2019-12-01 21:32:46 6952 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 38616 浏览量 回答数 14

问题

dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?【Java问答学堂】49期

剑曼红尘 2020-07-02 17:35:03 17 浏览量 回答数 1

问题

生产环境中的 Redis 是怎么部署的?【Java问答】40期

剑曼红尘 2020-06-18 08:28:34 33 浏览量 回答数 1

问题

Nginx性能为什么如此吊

小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3

回答

Re【原创】配置阿里云服务器CentosRedHat64位服务器 格式化后我们把它挂载到到/web/目录 让它用来专门存放网站相关数据 mount /dev/xvdb1 /web/ 挂载后编辑/etc/fstab使分区在开机时自动挂载到/web/ echo "/dev/xvdb1 /web/ ext3 defaults 0 0" >> /etc/fstab 这里顺便附上卸载分区命令,供挂错的孩纸备用。 umount   挂载点设备如: umount /mnt 现在该正式安装程序了 -------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓--------Centos系统的童鞋这里可以直接无视---------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓------------ 因为Redhat yum在线更新是收费的,我们现在把它改下 下面这些是直接在网上转来的,已经过我测试,放心使用 更新Yum源为163的yum源: 1.导入CentOS-5的GPG证书 rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-5 2.让yum使用网易的源: cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS-Base-163.repo 3.修改repo文件 在所有mirrorlist前面加上#,把所有$releasever替换成5 sed -i '/mirrorlist/d' CentOS-Base-163.repo sed -i 's/\$releasever/5/' CentOS-Base-163.repo 4.清理并重新生成yum缓存 yum clean metadata yum makecache ------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑---------Centos系统的童鞋这里可以直接无视------------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑--------- ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 在安装程序前,我们先把基础环境包安装下,否则安装以下程序的时候会出现很多问题 -------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓--------RedHat系统的童鞋这里可以直接无视---------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓------------ 如果是Centos系统的话,我们还要先改个文件,作用是为了让服务器可以安装或更新kernel开头的软件,因为我们的环境要用到 vim /etc/yum.conf 按I开始编辑(记住噢,教程往下就省略了) 找到 exclude=kernel* 在前面加上#号 修改好后按ESC键  输入以下命令保存(记住噢,教程往下就省略了) :wq ------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑---------RedHat系统的童鞋这里可以直接无视------------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑--------- ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 开始安装基础环境包 sudo -sLANG=Cyum -y install gcc gcc-c   autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers lsof unzip 等了好久吧 现在准备开始安装程序了,都要安装些什么呢?我把要安装的列出来了,有不需要的大家可以不安装。 libiconv 作用转换编码 libmcrypt 作用加密 mhash 同上 mcrypt  同上 cmake 安装Mysql时需要 bison 同上 libunwind 使用tcmalloc 加速 mysql 和 nginx需要 google-perftools 使用tcmalloc 加速 mysql 和 nginx需要 mysql 不解释 pcre 安装nginx需要 nginx 不解释 php 不解释 memcache 缓存加速 memcached 同上 eaccelerator 同上 libevent 安装 memcached 需要 PDO_MYSQL php可以用pdo操作数据库 不知道安装什么版本?下载包找不到?找不到就不用找到,我已经都帮你们找好了,全是最新的安装包。 往下拉↓↓↓ 找这些安装包可花了我不少时间,版主大人 给加个精安慰下吧 libiconv 1.14 http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz libmcrypt 2.5.8 http://sourceforge.net/projects/ ... 5.8.tar.gz/download mhash 0.9.9.9 http://downloads.sourceforge.net ... 740843&big_mirror=0 mcrypt 2.6.8 http://sourceforge.net/projects/ ... wnload?source=files cmake 2.8.10.1 http://www.cmake.org/files/v2.8/cmake-2.8.10.1.tar.gz bison 2.5 http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz libunwind 1.1 http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz google-perftools 2.0 http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz mysql 5.5.28 http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz pcre 8.31 ftp://ftp.csx.cam.ac.uk/pub/soft ... re/pcre-8.31.tar.gz Nginx 最新稳定版:1.3.8 http://nginx.org/download/nginx-1.3.8.tar.gz php 最新稳定版  5.4.8 http://cn2.php.net/get/php-5.4.8.tar.gz/from/tw1.php.net/mirror memcached 最新稳定版2.2.7 http://pecl.php.net/get/memcache memcached 1.4.15 http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz libevent 2.0.20 https://github.com/downloads/lib ... .0.20-stable.tar.gz eaccelerator 42067 https://github.com/eaccelerator/eaccelerator/tarball/master PDO_MYSQL 1.0.2 http://pecl.php.net/get/PDO_MYSQL ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 开个楼单独说下 大家执行命令的时候最好 一行一行去复制执行 不要一次全复制去执行,有可能会出错 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装包都下载好了吧?那我们开始安装吧 把所有下载的压缩包 传到/web/backup/soft 目录 关于上传可以用Filezilla 这个软件 新建一个站点  协议选择sftp 账号和密码 输入putty 登陆账号密码就可以了 安装 libiconv cd /web/backup/softtar zxvf libiconv-1.14.tar.gzcd libiconv-1.14./configure --prefix=/usr/localmakemake installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libmcrypt cd /web/backup/softtar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configuremakemake install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmakemake installcd ../../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 mhash cd /web/backup/softtar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configuremakemake installcd ../ 设置共享资源 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 mcrypt cd /web/backup/softtar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8//sbin/ldconfig./configuremakemake installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 cmake cd /web/backup/softtar zvxf cmake-2.8.10.1.tar.gzcd cmake-2.8.10.1 ./bootstrapmake && make installcd ../ 注:如果安装不成功或图省事可以使用yum -y install cmake来快速安装 ,安装这个需要些时间的。 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libunwind cd /web/backup/softtar zvxf libunwind-1.1.tar.gzcd libunwind-1.1./configure --enable-sharedmake && make installcd ../ ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 google-perftools cd /web/backup/softtar zvxf gperftools-2.0.tar.gzcd gperftools-2.0./configure --enable-shared --enable-frame-pointersmake && make installcd ../ 更新,使动态链接库能够被系统共享 echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf/sbin/ldconfig ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 重点来了 现在开始准备安装Mysql 创建mysql用户组和用户 /usr/sbin/groupadd mysql/usr/sbin/useradd -g mysql mysql 创建mysql数据库所需要的目录 mkdir -p /web/data/mysqlchown -R mysql:mysql /web/data/mysql 安装 Mysql su - rootcd /web/backup/softtar zvxf mysql-5.5.28.tar.gzcd mysql-5.5.28cmake -DCMAKE_INSTALL_PREFIX=/web/soft/mysql -DMYSQL_DATADIR=/web/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc/ -DWITH_SSL=yes -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=onmake && make install 建立软链接 ln -s /web/soft/mysql/lib/lib* /usr/lib/ 配置Mysql数据库 cd /web/soft/mysql./scripts/mysql_install_db --basedir=/web/soft/mysql/ --datadir=/web/data/mysql/ --user=mysql 复制配置文件 cp ./support-files/my-large.cnf /etc/my.cnf 如提示是否复制 输入y回车 设置mysql开机自动启动服务 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqldchkconfig --add mysqldchkconfig --level 345 mysqld on ------↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓会在文件中搜索内容的童鞋可以无视↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓----- 因为教程后面要修改的文件内容挺多,先中断一会,说下打开文件后如果搜索内容 如上面这个操作 vim /etc/rc.d/init.d/mysqld 打开文件后 先不要按I编辑 输入 /basedir 然后回车 这里的意思是 搜索 basedir 如果找到的内容不是 再按N查下一个 如果找到了自己要改的内容再按I编辑就可以了 /查找内容 反斜杠 查找内容 是搜索的意思,童鞋记住了没 再罗嗦一下,在putty粘贴复制好的内容,直接在相应位置鼠标右键就可以了 -------↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑会在文件中搜索内容的童鞋可以无视↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑------ 修改服务配置文件 vim /etc/rc.d/init.d/mysqld 找到相应代码修改为(不会修改文件?看3楼加红字。不会查找内容?网 ↑↑↑↑↑↑↑看) basedir=/web/soft/mysqldatadir=/web/data/mysql 数据初始化,及修改root密码 service mysqld startcd /web/soft/mysql/./bin/mysql_secure_installation 运行上面命令后,会先提示你输入mysql密码,因为默认是空直接回车 提示是否设置新密码(set root password),输入y,根据提示输入两边新密码后回车 提示是否删除匿名用户(remove anonymous users),输入y 提示是否禁止远程登录(disallow root login remotely),输入y 提示删除测试数据库(remove test database and access to it),输入y 提示现在重新载入权限表(reload privilege tables now),输入y 软连接mysql ln -s /web/soft/mysql/bin/mysql /bin 设置软连接后 直接在命令行 mysql -u root -p  就可以进入mysql了 使用tcmalloc优化mysql 修改MySQL启动脚本(根据你的MySQL安装位置而定) vim /web/soft/mysql/bin/mysqld_safe 在# executing mysqld_safe的下一行,加上: export LD_PRELOAD=/usr/local/lib/libtcmalloc.so 重启服务,查看tcmalloc是否生效 (第二条命令显示即生效) service mysqld restartlsof -n | grep tcmalloc ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 pcre cd /web/backup/softtar zxvf pcre-8.31.tar.gzcd pcre-8.31/./configuremake && make installcd ../ 设置共享资源( 这里要注意:因为我是64位系统所以位置为cd /lib64 如果是32位系统请把cd /lib64改为 cd /lib) cd /lib64/ln -s libpcre.so.0.0.1 libpcre.so.1 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 第二个重点来了 安装 Nginx 创建www用户和组,创建www虚拟主机使用的目录,并且赋予他们适当的权限 groupadd wwwuseradd -g www wwwmkdir -p /web/wwwchmod  w /web/wwwchown -R www:www /web/www 为tcmalloc添加目录,并且赋予适当权限 mkdir -p /tmp/tcmalloc/chown -R www:www /tmp/tcmalloc/ cd /web/backup/softtar zvxf nginx-1.3.8.tar.gzcd nginx-1.3.8 ------------伪装开始------------------ 以下操作是伪装服务器信息的,大家可以不修改(伪装的作用是让其他人看不出你网站用的是nginx) vim ./src/core/nginx.h 复制代码 修改NGINX_VERSION为你希望显示的版号 【这里我改为了1.4.31】 修改NGINX_VER为你希望显示的名称 【这里我改为了lighttpd】 修改NGINX_VAR 为你希望显示的名称 【这里我改为了lighttpd】 ------------伪装结束------------------ 继续安装Nginx ./configure --user=www --group=www --prefix=/web/soft/nginx --with-http_stub_status_module --with-http_ssl_module --with-google_perftools_modulemake && make installcd ../ 修改 nginx.conf ,令nginx可以 google-perftools加速 vim /web/soft/nginx/conf/nginx.conf 修改前面几行为:(也就是http{以上的代码) user www www;worker_processes 4;error_log logs/error.log crit;pid logs/nginx.pid;google_perftools_profiles /tmp/tcmalloc/;events {  use epoll;  worker_connections 65535;} 测试运行Nginx cd /web/soft/nginx./sbin/nginx -t 如果显示下面信息,即表示配置没问题 nginx: the configuration file /web/soft/nginx/conf/nginx.conf syntax is ok nginx: configuration file /web/soft/nginx/conf/nginx.conf test is successful 输入代码运行nginx服务 ./sbin/nginxps au|grep nginx 如果显以类似下面的信息,即表示nginx已经启动 root     27056  0.0  0.1 103232   852 pts/0    S    09:57   0:00 grep nginx 输入代码检测是否支持加速 lsof -n | grep tcmalloc 如果显示类似下面的信息,即表示支持tcmalloc加速 (mysqld和nginx两个线程都支持) mysqld    20707 mysql  mem       REG              202,1  2212983     837411 /usr                                             /local/lib/libtcmalloc.so.4.1.0 nginx     27051   www    9w      REG              202,1        0   33951543 /tmp                                             /tcmalloc/.27051 nginx     27052   www   11w      REG              202,1        0   33951541 /tmp                                             /tcmalloc/.27052 nginx     27053   www   13w      REG              202,1        0   33951542 /tmp                                             /tcmalloc/.27053 nginx     27054   www   15w      REG              202,1        0   33951540 /tmp                                             /tcmalloc/.27054 编写nginx 启动服务 cd /etc/init.dvim nginx 输入以下代码并保存( 复制时要仔细,检查是否复制完成,打开文件后按I进入编辑状态再右键粘贴) #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig:   - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ #               proxy and IMAP/POP3 proxy server # processname: nginx # config:      /etc/nginx/nginx.conf # config:      /etc/sysconfig/nginx # pidfile:     /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/web/soft/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/web/soft/nginx/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginx start() {    [ -x $nginx ] || exit 5    [ -f $NGINX_CONF_FILE ] || exit 6    echo -n $"Starting $prog: "    daemon $nginx -c $NGINX_CONF_FILE    retval=$?    echo    [ $retval -eq 0 ] && touch $lockfile    return $retval} stop() {     echo -n $"Stopping $prog: "    killproc $prog -QUIT    retval=$?    echo    [ $retval -eq 0 ] && rm -f $lockfile    return $retval    killall -9 nginx} restart() {    configtest || return $?    stop     sleep 1     start }reload() {    configtest || return $?    echo -n $"Reloading $prog: "    killproc $nginx -HUP    RETVAL=$?    echo} force_reload() {    restart}configtest() {    $nginx -t -c $NGINX_CONF_FILE}rh_status() {    status $prog}rh_status_q() {    rh_status >/dev/null 2>&1}case "$1" in    start)        rh_status_q && exit 0    $1        ;;    stop)        rh_status_q || exit 0        $1        ;;    restart|configtest)        $1        ;;    reload)        rh_status_q || exit 7        $1        ;;    force-reload)        force_reload        ;;    status)        rh_status        ;;    condrestart|try-restart)        rh_status_q || exit 0        ;;    *)        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"         exit 2 esac 设置权限,并添加到启动服务列表中 chmod 755 /etc/init.d/nginxchkconfig --add nginxchkconfig --level 345 nginx on/web/soft/nginx/sbin/nginx -s stopservice nginx start ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 第三个重点 安装 PHP (准备在服务器安装Dedecms的童鞋要注意了,这里的PHP版本比较高,有些旧函数被抛弃了,经我测试,安装最新版的Dedecms5.7时登录后台页面空白,如需安装Dedecms建议安装PHP 5.2.8版本, phpwind discuz 不受影响 ) 安装前先执行以下命令 32位系统执行 ln -s /web/soft/mysql/lib/libmysqlclient.so.18  /lib/ 64位系统执行 cp -frp /usr/lib64/libldap* /usr/lib/ln -s /web/soft/mysql/lib/libmysqlclient.so.18  /lib64/ 继续执行 mkdir ext/phar/phar.pharcd /web/backup/softtar zvxf php-5.4.8.tar.gzcd php-5.4.8./configure --prefix=/web/soft/php --with-config-file-path=/web/soft/php/etc --with-mysql=/web/soft/mysql --with-mysqli=/web/soft/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --disable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --disable-fileinfomake ZEND_EXTRA_LIBS='-liconv'make install 复制配置文件 cp php.ini-production /web/soft/php/etc/php.inicd ../ 安装 memcache cd /web/backup/softtar zvxf memcache-2.2.7.tgzcd memcache-2.2.7/web/soft/php/bin/phpizeldconfig./configure --with-php-config=/web/soft/php/bin/php-configmake && make install 修改php配置文件,使其支持memcache vim /web/soft/php/etc/php.ini 在文件中搜索; extension_dir = "./" 在下面增加第一行代码,搜索;extension=php_shmop.dll在下面增加第二行代码 ( 照顾一下粗心的童鞋,再说一次搜索的方法是VIM进入文件后输入/然后输入要查找的内容回车) extension_dir = "/web/soft/php/lib/php/extensions/no-debug-non-zts-20100525/"extension = "memcache.so" 安装 eaccelerator扩展 cd /web/backup/softtar zvxf eaccelerator-eaccelerator-42067ac.tar.gzcd eaccelerator-eaccelerator-42067ac/web/soft/php/bin/phpize./configure --enable-eaccelerator=shared --with-php-config=/web/soft/php/bin/php-configmake && make install 修改php配置文件,使其支持eaccelerator vim /web/soft/php/etc/php.ini 在文件尾部增加以下代码( Shift G快速移动到文档尾部) [eaccelerator] zend_extension="/web/soft/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"eaccelerator.shm_size="32"eaccelerator.cache_dir="/tmp/eaccelerator"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.log_file = "/web/soft/php/var/log/eaccelerator_log"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="3600"eaccelerator.shm_prune_period="3600"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9" 增加eaccelerator目录 mkdir -p /tmp/eaccelerator ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 libevent cd /web/backup/softtar zvxf libevent-2.0.20-stable.tar.gzcd libevent-2.0.20-stable./configuremakemake installcd ../ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 memcached cd /web/backup/softtar zvxf memcached-1.4.15.tar.gzcd memcached-1.4.15./configuremakemake installcd ../ 启动 memcached /usr/local/bin/memcached -d -m 100  -p 11211 -u root 内存小童鞋要注意了:这会以守护程序的形式启动 memcached(-d),为其分配 100m 内存(-m 100),并指定监听 localhost,即端口 11211 让 memcached 自动启动 vim /etc/rc.d/rc.local 在页尾加入以下代码 以www用户启动 /usr/local/bin/memcached -d -m 100  -p 11211 -u www 附上常用命令 -d 选项是启动一个守护进程, -m 是分配给Memcache使用的内存数量,单位是MB,这里是10MB -u 是运行Memcache的用户,这里是root -l 是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.122 -p 是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口 -c 选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定 -P 是设置保存Memcache的pid文件 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 PDO_MYSQL ln -s /web/soft/mysql/include/* /usr/local/include/cd /web/backup/softtar zxvf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2//web/soft/php/bin/phpize./configure --with-php-config=/web/soft/php/bin/php-config --with-pdo-mysql=/web/soft/mysqlmakemake installcd ../ 修改php配置文件,使其支持pdo vim /web/soft/php/etc/php.ini 在文件中搜索extension = "memcache.so"(刚才添加的代码) ,在下面增加 extension="pdo_mysql.so" 运行 /web/soft/php/bin/php -m 查看是否含有pdo_mysql 含有则成功 安装 php-fpm cp /web/soft/php/etc/php-fpm.conf.default /web/soft/php/etc/php-fpm.confvim /web/soft/php/etc/php-fpm.conf 修改以下地方   注意:以下代码每行所在的位置均不同,如果找到的代码前面有;要去除,后面的数字不一样也要修改,这个要注意 如何边编辑边查找? 找到对应行编辑后按下ESC再输入 /查找内容 查找就行了 [global]pid = run/php-fpm.pid-perror_log = log/php-fpm.logemergency_restart_threshold = 10emergency_restart_interval = 1mprocess_control_timeout = 5spm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 20pm.max_children = 20 修改nginx,使其支持php vim /web/soft/nginx/conf/nginx.conf 找到并修改以下代码把前面#号去除 location ~ \.php$ {    root           html;    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    include        fastcgi_params;} 将php-fpm 作为服务运行 cp /web/backup/soft/php-5.4.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpmchmod 700 /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig --level 345 php-fpm on 服务方式启动php-fpm service php-fpm restart 现在我们来重启下服务器 reboot 重启成功后运行ps aux查看正在运行的进程 是否有nginx php-pfm mysql 有的话就说明成功了 ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 装好了服务器,有些童鞋可能要迫不及待想架设网站了今天太累了,明天继续更新怎么在服务器架设网站 (将以phpmyadmin、phpwind8.7、phpwind9.0、discuz2.5安装举例) ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 架设网站前先创建两个文件夹 config  用来存放nginx网站配置文件 logs  用来存放日志 mkdir /web/data/configmkdir /web/data/logs 再把 nginx 配置下 vim /web/soft/nginx/conf/nginx.conf 在文件尾部} 上面增加 include /web/data/config/*.conf; 此作用是设置nginx网站配置文件路径,以后新增网站就不要来编辑nginx.conf文件了,网站多时也方便管理 平滑重启nginx(以后每增加或修改nginx配置文件时都要重启) service nginx reload ------------------------- Re【原创】配置阿里云服务器CentosRedHat64位服务器 安装 phpMyadmin 先把用来访问phpMyadmin的域名解析到服务器 下载个最新的 3.5.3版本 下载地址 http://sourceforge.net/projects/ ... 1f2263b6722fa88ca82 备用地址 http://jaist.dl.sourceforge.net/ ... ll-languages.tar.gz 下载后把它传到/web/backup/code 此文件夹是用来放源码的 cd /web/backup/codetar zxvf phpMyAdmin-3.5.3-all-languages.tar.gz -C /web/www/ cd /web/wwwmv phpMyAdmin-3.5.3-all-languages/ phpmyadmin创建nginx配置文件 vim /web/data/config/phpmyadmin.conf输入以下内容( 代码里的www.phpmyadmin.com 改为自己要绑定的网址) server {    listen 80;    client_max_body_size 10M;    server_name www.phpmyadmin.com;    index index.php index.html index.htm;    root /web/www/phpmyadmin;    autoindex off;    location ~ .*\.(php|php5|php4|shtml|xhtml|phtml)?$ {        fastcgi_pass   127.0.0.1:9000;        include fastcgi.conf;    }        location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf|js|css)$        {               expires 5d;          access_log off;        }    access_log  /web/data/logs/phpmyadmin.log;} 重启下Nginx service nginx reload 访问看看是否成功了

svaaa 2019-12-02 00:26:00 0 浏览量 回答数 0

回答

转自:阿飞的博客 一、数据库技术选型的思考维度 我们做选型的时候首先要问: 谁选型?是负责采购的同学、 DBA 还是业务研发? 如果选型的是采购的同学,他们更注重成本,包括存储方式、网络需求等。 如果选型的是 DBA 同学,他们关心的: ① 运维成本 首先是运维成本,包括监控告警是否完善、是否有备份恢复机制、升级和迁移的成本是否高、社区是否稳定、是否方便调优、排障是否简易等; ② 稳定性 其次,DBA会关注稳定性,包括是否支持数据多副本、服务高可用、多写多活等; ③ 性能 第三是性能,包括延迟、QPS 以及是否支持更高级的分级存储功能等; ④ 拓展性 第四是扩展性,如果业务的需求不确定,是否容易横向扩展和纵向扩容; ⑤ 安全 最后是安全,需要符合审计要求,不容易出现 SQL 注入或拖库情况。 ⑥ 其他 除了采购和 DBA之外,后台应用研发的同学同样会关注稳定性、性能、扩展性等问题,同时也非常关注数据库接口是否便于开发,是否便于修改数据库 schema 等问题。 接下来我们来看一下爱奇艺使用的数据库类型: MySQL,互联网业务必备系统; TiDB,爱奇艺的 TiDB 实践会有另外的具体介绍; Redis,KV 数据库,互联网公司标配; Couchbase,这个在爱奇艺用得比较多,但国内互联网公司用得比较少,接下来的部分会详细说明; 其他,比如 MongoDB、图数据库、自研 KV 数据库 HiKV 等; 大数据分析相关系统,比如 Hive、Impala 等等。 可以看到爱奇艺的数据库种类还是很多的,这会造成业务开发的同学可能不太清楚在他的业务场景下应该选用哪种数据库系统。 那么,我们先对这些数据库按照接口(SQL、NoSQL)和面向的业务场景(OLTP、OLAP)这两位维度进行一个简单非严谨的分类。 下图中,左上角是面向 OLTP、支持 SQL 的这样一类系统,例如 MySQL,一般支持事务不同的隔离级别, QPS 要求比较高,延时比较低,主要用于交易信息和关键数据的存储,比如订单、VIP 信息等。 左下角是 NoSQL 数据库,是一类针对特殊场景做优化的系统,schema 一般比较简单,吞吐量较高、延迟较低,一般用作缓存或者 KV 数据库。 整个右侧都是 OLAP 的大数据分析系统,包括 Clickhouse、Impala等,一般支持SQL、不支持事务,扩展性比较好,可以通过加机器增加数据的存储量,响应延迟较长。 还有一类数据库是比较中立的,在数据量比较小的时候性能比较好,在数据量较大或复杂查询的时候性能也不差,一般通过不同的存储引擎和查询引擎来满足不同的业务需求,我们把它叫做 HTAP,TiDB 就是这样一种数据库。 二、iQIYI对数据库的优化与完善 前面我们提到了很多种的数据库,那么接下来就和大家介绍一下在爱奇艺我们是怎么使用这些数据库的。 1、MySQL在爱奇艺的使用 ① MySQL 首先是 MySQL。MySQL 基本使用方式是 master-slave + 半同步,支持每周全备+每日增量备份。我们做了一些基本功能的增强,首先是增强了数据恢复工具 Xtrabackup 的性能。 之前遇到一个情况,我们有一个全量库是 300G 数据,增量库每天 70G 数据,总数据量 700G 左右。我们当时只需要恢复一个表的数据,但该工具不支持单表恢复,且整库恢复需要 5 个小时。 针对这个情况我们具体排查了原因,发现在数据恢复的过程中需要进行多次写盘的 IO 操作并且有很多串行操作,所以我们做了一些优化。例如删减过程中的一些写盘操作,减少落盘并将数据处理并行化,优化后整库恢复耗时减少到 100 分钟,而且可以直接恢复单表数据。 然后是适配 DDL 和 DML 工具到内部系统,gh-ostt 和 oak-online-alter-table 在数据量大的时候会造成 master-slave 延时,所以我们在使用工具的时候也增加了延时上的考虑,实时探测Master-Slave 库之间延时的情况,如果延时较大会暂停工具的使用,恢复到正常水平再继续。 ② MySQL高可用 第二是 MySQL 高可用。Master-slave 加上半同步这种高可用方式不太完善,所以我们参照了 MHA 并进行了改动,采用 master + agent 的方式。Agent 在每一个物理机上部署,可以监控这个物理机上的所有实例的状态,周期性地向 master 发送心跳,Master 会实时监测各个Agent的状态。 如果 MySQL故障,会启动 Binlog 补偿机制,并切换访问域名完成 failover。考虑到数据库跨机房跨地区部署的情况,MHA 的 master 我们也做了高可用设计,众多 master 会通过 raft 组成一个 raft group,类似 TiDB 的 PD 模块。目前 MySQL failover 策略支持三种方式:同机房、同地域跨机房以及跨地域。 ③ MySQL拓展能力 第三是提高MySQL扩展能力,以提供更大容量的数据存储。扩展方式有 SDK,例如开源的 ShardingSphere,在爱奇艺的使用也比较广泛。另外就是 Proxy,开源的就更多了。但是 SDK 和 Proxy 使用的问题是支持的 SQL 语句简单,扩容难度大,依赖较多且运维复杂,所以部分业务已经迁移至 TiDB。 ④ 审计 第四是审计。我们在 MySQL 上做了一个插件获取全量 SQL 操作,后端打到 Kafka,下游再接入包括 Clickhouse 等目标端进行 SQL 统计分析。除此之外还有安全策略,包括主动探索是否有 SQL 注入及是否存在拖库情况等,并触发对应的告警。 MySQL 审计插件最大的问题是如何降低对 MySQL 性能的影响,对此我们进行了一些测试,发现使用 General Log 对性能损耗较大,有 10%~20% 的降低。 于是我们通过接口来获取 MySQL 插件里的监控项,再把监控项放到 buffer 里边,用两级的 RingBuffer 来保证数据的写入不会有锁资源竞争。在这个插件里再启动一个线程,从 RingBuffer 里读取数据并把数据打包写到 FIFO 管道里。 我们在每台 MySQL 的物理机里再启动一个 Agent,从管道里阻塞地读取数据发至 Kafka。优化后我们再次进行压测,在每台机器上有 15 万的更新、删除或插入操作下不会丢失数据,性能损耗一般情况下小于 2%。 目前已经在公司内部的集群上线了一年时间,运行比较稳定,上线和下线对业务没有影响。 ⑤ 分级存储 第五是分级存储。MySQL 里会存一些过程性的数据,即只需要读写最近一段时间存入的数据,过段时间这些数据就不需要了,需要进行定时清理。 分级存储就是在 MySQL 之上又用了其他存储方式,例如 TiDB 或其他 TokuDB,两者之间可以进行数据自动搬迁和自动归档,同时前端通过 SDK + Proxy 来做统一的访问入口。这样一来,业务的开发同学只需要将数据存入 MySQL 里,读取时可能从后端接入的任意数据库读出。这种方式目前只是过渡使用,之后会根据 TiDB 的特性进行逐步迁移。 Redis在爱奇艺的使用 接下来是 Redis。Redis 也是使用 master - slave 这种方式,由于网络的复杂性我们对 Sentinel 的部署进行了一些特殊配置,在多机房的情况下每个机房配置一定数量 Sentinel 来避免脑裂。 备份恢复方面介绍一个我们的特殊场景,虽然 Redis 是一个缓存,但我们发现不少的业务同学会把它当做一个 KVDB 来使用,在某些情况下会造成数据的丢失。 所以我们做了一个 Redis 实时备份功能,启动一个进程伪装成 Redis 的 Slave 实时获取数据,再放到后端的 KV 存储里,例如 ScyllaDB,如果要恢复就可以从 ScyllaDB 里把数据拉出来。 我们在用 Redis 时最大的痛点就是它对网络的延迟或抖动非常敏感。如有抖动造成 Redis Master 超时,会由 Sentinel 重新选出一个新的节点成为 Master,再把该节点上的数据同步到所有 Slave 上,此过程中数据会放在 Master 节点的 Buffer 里,如果写入的 QPS 很高会造成 Buffer 满溢。如果 Buffer 满后 RDB 文件还没有拷贝过去,重建过程就会失败。 基于这种情况,我们对 Redis 告警做了自动化优化,如有大量 master - slave 重建失败,我们会动态调整一些参数,例如把 Buffer 临时调大等, 此外我们还做了 Redis 集群的自动扩缩容功能。 我们在做 Redis 开发时如果是 Java 语言都会用到 Jedis。用 Jedis 访问客户端分片的 Redis 集群,如果某个分片发生了故障或者 failover,Jedis 就会对所有后端的分片重建连接。如果某一分片发生问题,整个 Redis 的访问性能和 QPS 会大幅降低。针对这个情况我们优化了 Jedis,如果某个分片发生故障,就只针对这个分片进行重建。 在业务访问 Redis 时我们会对 Master 绑定一个读写域名,多个从库绑定读域名。但如果我们进行 Master failover,会将读写域名从某旧 Master 解绑,再绑定到新 Master 节点上。 DNS 本身有一个超时时间,所以数据库做完 failover 后业务程序里没有立刻获取到新的 Master 节点的 IP的话,有可能还会连到原来的机器上,造成访问失败。 我们的解决方法是把 DNS 的 TTL 缩短,但对 DNS 服务又会造成很大的压力,所以我们在 SDK 上提供 Redis 的名字服务 RNS,RNS 从 Sentinel 里获取集群的拓扑和拓扑的变化情况,如果集群 failover,Sentinel 会接到通知,客户端就可以通过 RNS 来获取新的 Master 节点的 IP 地址。我们去掉域名,通过 IP 地址来访问整个集群,屏蔽了 DNS 的超时,缩短了故障的恢复时间。 SDK 上还做了一些功能,例如 Load Balance 以及故障检测,比如某个节点延时较高的话会被临时熔断等。 客户端分片的方式会造成 Redis 的扩容非常痛苦,如果客户端已经进行了一定量的分片,之后再增加就会非常艰难。 Redis 在 3.0 版本后会提供 Redis Cluster,因为功能受限在爱奇艺应用的不是很多,例如不支持显示跨 DC 部署和访问,读写只在主库上等。 我们某些业务场景下会使用 Redis 集群,例如数据库访问只发生在本 DC,我们会在 DC 内部进行 Cluster 部署。 但有些业务在使用的过程中还是想做 failover,如果集群故障可以切换到其他集群。根据这种情况我们做了一个 Proxy,读写都通过它来进行。写入数据时 Proxy 会做一个旁路,把新增的数据写在 Kafka 里,后台启用同步程序再把 Kafka 里的数据同步到其他集群,但存在一些限制,比如我们没有做冲突检测,所以集群间数据需要业务的同学做单元化。线上环境的Redis Cluster 集群间场景跨 DC 同步 需要 50 毫秒左右的时间。 2、Couchbase在爱奇艺的使用 Redis 虽然提供 Cluster 这种部署方式,但存在一些问题。所以数据量较大的时候(经验是 160G),就不推荐 Redis 了,而是采用另一种存储方式 Couchbase。 Couchbase 在国内互联网公司用的比较少,一开始我们是把他当做一个 Memcached 来使用的,即纯粹的缓存系统。 但其实它性能还是比较强大的,是一个分布式高性能的 KV 系统,支持多种存储引擎 (bucket)。第一种是 Memcached bucket,使用方式和 Memcached 一样为 KV 存储,不支持数据持久化也没有数据副本,如果节点故障会丢失数据; 第二种是 Couchbase bucket,支持数据持久化,使用 Json 写入,有副本,我们一般会在线上配置两个副本,如果新加节点会对数据进行 rebalance,爱奇艺使用的一般是 Couchbase bucket 这种配置。 Couchbase 数据的分布如下图,数据写入时在客户端上会先进行一次哈希运算,运算完后会定位 Key 在哪一个 vBucket (相当于数据库里的某个分片)。之后客户端会根据 Cluster Map 发送信息至对应的服务端,客户端的 Cluster Map 保存的是 vBucket 和服务器的映射关系,在服务端数据迁移的过程中客户端的 Cluster Map 映射关系会动态更新,因此客户端对于服务端的 failover 操作不需要做特殊处理,但可能在 rebalance 过程中会有短暂的超时,导致的告警对业务影响不大。 Couchbase 在爱奇艺应用比较早,2012 年还没有 Redis Cluster 的时候就开始使用了。集群管理使用 erlang 语言开发,最大功能是进行集群间的复制,提供多种复制方式:单向、双向、星型、环式、链式等。 爱奇艺从最初的 1.8 版本使用到如今的 5.0 版本,正在调研的 6.0,中间也遇到了很多坑,例如 NTP 时间配置出错会导致崩溃,如果每个集群对外 XDCR 并发过高导致不稳定,同步方向变更会导致数据丢失等等,我们通过运维和一些外部工具来进行规避。 Couchbase 的集群是独立集群,集群间的数据同步通过 XDCR,我们一般配置为双向同步。对于业务来说,如果 Cluster 1 写入, Cluster 2 不写入,正常情况下客户端会写 Cluster 1。如果 Cluster 1 有故障,我们提供了一个 Java SDK,可以在配置中心把写入更改到 Cluster 2,把原来到 Cluster 1 的连接逐步断掉再与Cluster 2 新建连接。这种集群 failover 的过程对于客户端来说是相对透明和无感的。 3、爱奇艺自研数据库HiKV的使用 Couchbase 虽然性能非常高,并且数据的存储可以超过内存。但是,如果数据量超过内存 75% 这个阈值,性能就会下降地特别快。在爱奇艺,我们会把数据量控制在可用内存的范围之内,当做内存数据库使用。但是它的成本非常高,所以我们后面又开发了一个新的数据库—— HiKV。 开发 HiKV 的目的是为了把一些对性能要求没那么高的 Couchbase 应用迁移到 HiKV 上。HiKV 基于开源系统 ScyllaDB,主要使用了其分布式数据库的管理功能,增加了单机存储引擎 HiKV。 ScyllaDB 比较吸引人的是它宣称性能高于 Cassandra 十倍,又完全兼容 Cassandra 接口,设计基本一致,可以视为 C++ 版 Cassandra 系统。 ScyllaDB 性能的提升主要是使用了一些新的技术框架,例如 C++ 异步框架 seastar,主要原理是在j每台物理机的核上会 attach 一个应用线程,每个核上有自己独立的内存、网络、IO 资源,核与核之间没有数据共享但可以通信,其最大的好处是内存访问无锁,没有冲突过程。 当一个数据读或写到达 ScyllaDB 的 server 时,会按照哈希算法来判断请求的 Key 是否是该线程需要处理的,如果是则本线程处理,否则会转发到对应线程上去。 除此之外,它还支持多副本、多数据中心、多写多活,功能比较强大。 在爱奇艺,我们基于 SSD 做了一个 KV 存储引擎。Key 放在内存里,Value 放在盘上的文件里,我们在读和写文件时,只需要在内存索引里定位,再进行一次盘的 IO 开销就可以把数据读出来,相比 ScyllaDB 原本基于 LSM Tree 的存储引擎方式对 IO 的开销较少。 索引数据全部放在内存中,如果索引长度较长会限制单机可存储的数据量,于是我们通过开发定长的内存分布器,对于比较长的 Key 做摘要缩短长度至 20 字节,采用红黑树索引,限制每条记录在内存里的索引长度至为 64 字节。内存数据要定期做 checkpoint,客户端要做限流、熔断等。 HiKV 目前在爱奇艺应用范围比较大,截至目前已经替换了 30% 的 Couchbase,有效地降低了存储成本。 4、爱奇艺的数据库运维管理 爱奇艺数据库种类较多,如何高效地运维和管理这些数据库也是经历了不同的阶段。 最初我们通过 DBA 写脚本的方式管理,如果脚本出问题就找 DBA,导致了 DBA 特别忙碌。 第二个阶段我们考虑让大家自己去查问题的答案,于是在内部构建了一个私有云,通过 Web 的方式展示数据库运行状态,让业务的同学可以自己去申请集群,一些简单的操作也可以通过自服务平台实现,解放了 DBA。一些需要人工处理的大型运维操作经常会造成一些人为故障,敲错参数造成数据丢失等。 于是在第三个阶段我们把运维操作 Web 化,通过网页点击可以进行 90% 的操作。 第四个阶段让经验丰富的 DBA 把自身经验变成一些工具,比如有业务同学说 MySQL master-slave 延时了,DBA 会通过一系列操作排查问题。现在我们把这些操作串起来形成一套工具,出问题时业务的同学可以自己通过网页上的一键诊断工具去排查,自助进行处理。 除此之外我们还会定期做预警检查,对业务集群里潜在的问题进行预警报告;开发智能客服,回答问题;通过监控的数据对实例打标签,进行削峰填谷地智能调度,提高资源利用率。 三、不同场景下数据库选型建议 1、实用数据库选型树 最后来说一些具体数据库选型建议。这是 DBA 和业务一起,通过经验得出来的一些结论。 对于关系型数据库的选型来说,可以从数据量和扩展性两个维度考虑,再根据数据库有没有冷备、要不要使用 Toku 存储引擎,要不要使用 Proxy 等等进行抉择。 NoSQL 也是什么情况下使用 master-slave,什么情况下使用客户端分片、集群、Couchbase、HiKV 等,我们内部自服务平台上都有这个选型树信息。 2、一些思考 ① 需求 我们在选型时先思考需求,判断需求是否真实。 你可以从数据量、QPS、延时等方面考虑需求,但这些都是真实需求吗?是否可以通过其他方式把这个需求消耗掉,例如在数据量大的情况下可以先做数据编码或者压缩,数据量可能就降下来了。 不要把所有需求都推到数据库层面,它其实是一个兜底的系统。 ② 选择 第二个思考的点是对于某个数据库系统或是某个技术选型我们应该考虑什么?是因为热门吗?还是因为技术上比较先进?但是不是能真正地解决你的问题?如果你数据量不是很大的话就不需要选择可以存储大数据量的系统。 ③ 放弃 第三是放弃,当你放弃一个系统时真的是因为不好用吗?还是没有用好?放弃一个东西很难,但在放弃时最好有一个充分的理由,包括实测的结果。 ④ 自研 第四是自研,在需要自己开发数据库时可以参考和使用一些成熟的产品,但不要盲目自研。 ⑤ 开源 最后是开源,要有拥抱开源的态度。

茶什i 2019-12-27 14:17:56 0 浏览量 回答数 0

问题

为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?【Java问答】41期

剑曼红尘 2020-06-19 13:47:21 0 浏览量 回答数 0

问题

让云计算真正省钱,解决云存储架构九个问题让云计算真正省钱

hamtyb 2019-12-01 20:27:33 11001 浏览量 回答数 4

问题

【云计算的1024种玩法】打造个人专属网盘

琴瑟 2019-12-01 21:14:28 3920 浏览量 回答数 4

回答

一、软件篇 1、设定虚拟内存 硬盘中有一个很宠大的数据交换文件,它是系统预留给虚拟内存作暂存的地方,很多应用程序都经常会使用到,所以系统需要经常对主存储器作大量的数据存取,因此存取这个档案的速度便构成影响计算机快慢的非常重要因素!一般Windows预设的是由系统自行管理虚拟内存,它会因应不同程序所需而自动调校交换档的大小,但这样的变大缩小会给系统带来额外的负担,令系统运作变慢!有见及此,用户最好自定虚拟内存的最小值和最大值,避免经常变换大小。要设定虚拟内存,在“我的电脑”上按右键选择“属性”,在“高级”选项里的“效能”的对话框中,对“虚拟内存”进行设置。 3、检查应用软件或者驱动程序 有些程序在电脑系统启动会时使系统变慢。如果要是否是这方面的原因,我们可以从“安全模式”启动。因为这是原始启动,“安全模式”运行的要比正常运行时要慢。但是,如果你用“安全模式”启动发现电脑启动速度比正常启动时速度要快,那可能某个程序是导致系统启动速度变慢的原因。 4、桌面图标太多会惹祸 桌面上有太多图标也会降低系统启动速度。Windows每次启动并显示桌面时,都需要逐个查找桌面快捷方式的图标并加载它们,图标越多,所花费的时间当然就越多。同时有些杀毒软件提供了系统启动扫描功能,这将会耗费非常多的时间,其实如果你已经打开了杀毒软件的实时监视功能,那么启动时扫描系统就显得有些多余,还是将这项功能禁止吧! 建议大家将不常用的桌面图标放到一个专门的文件夹中或者干脆删除! 5、ADSL导致的系统启动变慢 默认情况下Windows XP在启动时会对网卡等网络设备进行自检,如果发现网卡的IP地址等未配置好就会对其进行设置,这可能是导致系统启动变慢的真正原因。这时我们可以打开“本地连接”属性菜单,双击“常规”项中的“Internet协议”打开“TCP/IP属性”菜单。将网卡的IP地址配置为一个在公网(默认的网关是192.168.1.1)中尚未使用的数值如192.168.1.X,X取介于2~255之间的值,子网掩码设置为255.255.255.0,默认网关和DNS可取默认设置。 6、字体对速度的影响 虽然 微软 声称Windows操作系统可以安装1000~1500种字体,但实际上当你安装的字体超过500 种时,就会出现问题,比如:字体从应用程序的字体列表中消失以及Windows的启动速度大幅下降。在此建议最好将用不到或者不常用的字体删除,为避免删除后发生意外,可先进行必要的备份。 7、删除随机启动程序 何谓随机启动程序呢?随机启动程序就是在开机时加载的程序。随机启动程序不但拖慢开机时的速度,而且更快地消耗计算机资源以及内存,一般来说,如果想删除随机启动程序,可去“启动”清单中删除,但如果想详细些,例如是QQ、popkiller 之类的软件,是不能在“启动”清单中删除的,要去“附属应用程序”,然后去“系统工具”,再去“系统信息”,进去后,按上方工具列的“工具”,再按“系统组态编辑程序”,进去后,在“启动”的对话框中,就会详细列出在启动电脑时加载的随机启动程序了!XP系统你也可以在“运行”是输入Msconfig调用“系统配置实用程序”才终止系统随机启动程序,2000系统需要从XP中复制msconfig程序。 8、取消背景和关闭activedesktop 不知大家有否留意到,我们平时一直摆放在桌面上漂亮的背景,其实是很浪费计算机资源的!不但如此,而且还拖慢计算机在执行应用程序时的速度!本想美化桌面,但又拖慢计算机的速度,这样我们就需要不在使用背景了,方法是:在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,选“无”,在“外观”的对话框中,在桌面预设的青绿色,改为黑色......至于关闭activedesktop,即是叫你关闭从桌面上的web画面,例如在桌面上按鼠标右键,再按内容,然后在“背景”的对话框中,有一幅背景,名为Windows XX,那副就是web画面了!所以如何系统配置不高就不要开启。 10、把Windows变得更苗条 与DOS系统相比,Windows过于庞大,而且随着你每天的操作,安装新软件、加载运行库、添加新游戏等等使得它变得更加庞大,而更为重要的是变大的不仅仅是它的目录,还有它的 注册表 和运行库。因为即使删除了某个程序,可是它使用的DLL文件仍然会存在,因而随着使用日久,Windows的启动和退出时需要加载的DLL动态链接库文件越来越大,自然系统运行速度也就越来越慢了。这时我们就需要使用一些彻底删除DLL的程序,它们可以使Windows恢复苗条的身材。建议极品玩家们最好每隔两个月就重新安装一遍Windows,这很有效。 11、更改系统开机时间 虽然你已知道了如何新增和删除一些随机启动程序,但你又知不知道,在开机至到进入Windows的那段时间,计算机在做着什么呢?又或者是,执行着什么程序呢?那些程序,必定要全部载完才开始进入Windows,你有否想过,如果可删除一些不必要的开机时的程序,开机时的速度会否加快呢?答案是会的!想要修改,可按"开始",选"执行",然后键入win.ini,开启后,可以把以下各段落的内容删除,是删内容,千万不要连标题也删除!它们包括:[compatibility]、[compatibility32]、[imecompatibility]、[compatibility95]、[modulecompatibility]和[embedding]。 二、硬件篇 1、Windows系统自行关闭硬盘DMA模式 硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,最新的SATA-150都出来了!一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的起用对系统的性能起到了实质的作用。但是你知道吗?Windows 2000、XP、2003系统有时会自行关闭硬盘的DMA模式,自动改用PIO模式运行!这就造成在使用以上系统中硬盘性能突然下降,其中最明显的现象有:系统起动速度明显变慢,一般来说正常Windows XP系统启动时那个由左向右运动的滑条最多走2~4次系统就能启动,但这一问题发生时可能会走5~8次或更多!而且在运行系统时进行硬盘操作时明显感觉变慢,在运行一些大的软件时CPU占用率时常达到100%而产生停顿,玩一些大型3D游戏时画面时有明显停顿,出现以上问题时大家最好看看自己硬盘的DMA模式是不是被Windows 系统自行关闭了。查看自己的系统是否打开DMA模式: a. 双击“管理工具”,然后双击“计算机管理”; b. 单击“系统工具”,然后单击“设备管理器”; c. 展开“IDE ATA/ATAPI 控制器”节点; d. 双击您的“主要IDE控制器”; 2、CPU 和风扇是否正常运转并足够制冷 当CPU风扇转速变慢时,CPU本身的温度就会升高,为了保护CPU的安全,CPU就会自动降低运行频率,从而导致计算机运行速度变慢。有两个方法检测CPU的温度。你可以用“手指测法”用手指试一下处理器的温度是否烫手,但是要注意的是采用这种方法必须先拔掉电源插头,然后接一根接地线来防止身上带的静电击穿CPU以至损坏。另一个比较科学的方法是用带感温器的万用表来检测处理器的温度。 因为处理器的种类和型号不同,合理温度也各不相同。但是总的来说,温度应该低于 110 度。如果你发现处理器的测试高于这处温度,检查一下机箱内的风扇是否正常运转。 3、USB和扫描仪造成的影响 由于Windows 启动时会对各个驱动器(包括光驱)进行检测,因此如果光驱中放置了光盘,也会延长电脑的启动时间。所以如果电脑安装了扫描仪等设备,或在启动时已经连接了USB硬盘,那么不妨试试先将它们断开,看看启动速度是不是有变化。一般来说,由于USB接口速度较慢,因此相应设备会对电脑启动速度有较明显的影响,应该尽量在启动后再连接USB设备。如果没有USB设备,那么建议直接在BIOS设置中将USB功能关闭。 4、是否使用了磁盘压缩 因为“磁盘压缩”可能会使电脑性能急剧下降,造成系统速度的变慢。所以这时你应该检测一下是否使用了“磁盘压缩”,具体操作是在“我的电脑”上点击鼠标右键,从弹出的菜单选择“属性”选项,来检查驱动器的属性。 5、网卡造成的影响 只要设置不当,网卡也会明显影响系统启动速度,你的电脑如果连接在局域网内,安装好网卡驱动程序后,默认情况下系统会自动通过DHCP来获得IP地址,但大多数公司的局域网并没有DHCP服务器,因此如果用户设置成“自动获得IP地址”,系统在启动时就会不断在网络中搜索DHCP 服务器,直到获得IP 地址或超时,自然就影响了启动时间,因此局域网用户最好为自己的电脑指定固定IP地址。 6、文件夹和打印机共享 安装了Windows XP专业版的电脑也会出现启动非常慢的时候,有些时候系统似乎给人死机的感觉,登录系统后,桌面也不出现,电脑就像停止反应,1分钟后才能正常使用。这是由于使用了Bootvis.exe 程序后,其中的Mrxsmb.dll文件为电脑启动添加了67秒的时间! 要解决这个问题,只要停止共享文件夹和打印机即可:选择“开始→设置→网络和拨号连接”,右击“本地连接”,选择“属性”,在打开的窗口中取消“此连接使用下列选定的组件”下的“ Microsoft 网络的文件和打印机共享”前的复选框,重启电脑即可。 7、系统配件配置不当 一些用户在组装机器时往往忽略一些小东西,从而造成计算机整体配件搭配不当,存在着速度上的瓶颈。比如有些朋友选的CPU档次很高,可声卡等却买了普通的便宜货,其实这样做往往是得不偿失。因为这样一来计算机在运行游戏、播放影碟时由于声卡占用CPU资源较高且其数据传输速度较慢,或者其根本无硬件解码而需要采用软件解码方式,常常会引起声音的停顿,甚至导致程序的运行断断续续。又如有些朋友的机器是升了级的,过去老机器上的一些部件如内存条舍不得抛弃,装在新机器上照用,可是由于老内存的速度限制,往往使新机器必须降低速度来迁就它,从而降低了整机的性能,极大地影响了整体的运行速度。 9、断开不用的网络驱动器 为了消除或减少 Windows 必须重新建立的网络连接数目,建议将一些不需要使用的网络驱动器断开,也就是进入“我的电脑”,右击已经建立映射的网络驱动器,选择“断开”即可。 10、缺少足够的内存 Windows操作系统所带来的优点之一就是多线性、多任务,系统可以利用CPU来进行分时操作,以便你同时做许多事情。但事情有利自然有弊,多任务操作也会对你的机器提出更高的要求。朋友们都知道即使是一个最常用的WORD软件也要求最好有16MB左右的内存,而运行如3D MAX等大型软件时,64MB的内存也不够用。所以此时系统就会自动采用硬盘空间来虚拟主内存,用于运行程序和储存交换文件以及各种临时文件。由于硬盘是机械结构,而内存是电子结构,它们两者之间的速度相差好几个数量级,因而使用硬盘来虚拟主内存将导致程序运行的速度大幅度降低。 11、硬盘空间不足 使用Windows系统平台的缺点之一就是对文件的管理不清楚,你有时根本就不知道这个文件对系统是否有用,因而Windows目录下的文件数目越来越多,容量也越来越庞大,加之现在的软件都喜欢越做越大,再加上一些系统产生的临时文件、交换文件,所有这些都会使得硬盘可用空间变小。当硬盘的可用空间小到一定程度时,就会造成系统的交换文件、临时文件缺乏可用空间,降低了系统的运行效率。更为重要的是由于我们平时频繁在硬盘上储存、删除各种软件,使得硬盘的可用空间变得支离破碎,因此系统在存储文件时常常没有按连续的顺序存放,这将导致系统存储和读取文件时频繁移动磁头,极大地降低了系统的运行速度。 12、硬盘分区太多也有错 如果你的Windows 2000没有升级到SP3或SP4,并且定义了太多的分区,那么也会使启动变得很漫长,甚至挂起。所以建议升级最新的SP4,同时最好不要为硬盘分太多的区。因为Windows 在启动时必须装载每个分区,随着分区数量的增多,完成此操作的时间总量也会不断增长。 三、病毒篇 如果你的计算机感染了病毒,那么系统的运行速度会大幅度变慢。病毒入侵后,首先占领内存这个据点,然后便以此为根据地在内存中开始漫无休止地复制自己,随着它越来越庞大,很快就占用了系统大量的内存,导致正常程序运行时因缺少主内存而变慢,甚至不能启动;同时病毒程序会迫使CPU转而执行无用的垃圾程序,使得系统始终处于忙碌状态,从而影响了正常程序的运行,导致计算机速度变慢。下面我们就介绍几种能使系统变慢的病毒。 1、使系统变慢的bride病毒 病毒类型:黑客程序 发作时间:随机 传播方式:网络 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 2000、Windows XP等操作系统环境下正常运行。运行时会自动连接 www.hotmail.com网站,如果无法连接到此网站,则病毒会休眠几分钟,然后修改注册表将自己加入注册表自启动项,病毒会释放出四个病毒体和一个有漏洞的病毒邮件并通过邮件系统向外乱发邮件,病毒还会释放出FUNLOVE病毒感染局域网计算机,最后病毒还会杀掉已知的几十家反病毒软件,使这些反病毒软件失效。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒。 ·病毒运行后会自动连接 www.hotmail.com网站。 ·病毒会释放出Bride.exe,Msconfig.exe,Regedit.exe三个文件到系统目录;释放出:Help.eml, Explorer.exe文件到桌面。 ·病毒会在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun项中加入病毒Regedit.exe的路径。 ·病毒运行时会释放出一个FUNLOVE病毒并将之执行,而FUNLOVE病毒会在计算机中大量繁殖,造成系统变慢,网络阻塞。 ·病毒会寻找计算机中的邮件地址,然后按照地址向外大量发送标题为:<被感染的计算机机名>(例:如果用户的计算机名为:张冬, 则病毒邮件的标题为:张冬)的病毒邮件。 ·病毒还会杀掉几十家国外著名的反病毒软件。 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了Bride(Worm.bride)病毒,请用户立刻用手中的杀毒软件进行清除。 2、使系统变慢的阿芙伦病毒 病毒类型:蠕虫病毒 发作时间:随机 传播方式:网络/文件 感染对象:网络 警惕程度:★★★★ 病毒介绍: 此病毒可以在Windows 9X、Windows NT、Windows 2000、Windows XP等操作系统环境下正常运行。病毒运行时将自己复到到TEMP、SYSTEM、RECYCLED目录下,并随机生成文件名。该病毒运行后,会使消耗大量的系统资源,使系统明显变慢,并且杀掉一些正在运行的反病毒软件,建立四个线程在局域网中疯狂传播。 病毒特征 如果用户发现计算机中有这些特征,则很有可能中了此病毒: ·病毒运行时会将自己复到到TEMP、SYSTEM、RECYCLED目录下,文件名随机 ·病毒运行时会使系统明显变慢 ·病毒会杀掉一些正在运行的反病毒软件 ·病毒会修改注册表的自启动项进行自启动 ·病毒会建立四个线程在局域网中传播 用户如果在自己的计算机中发现以上全部或部分现象,则很有可能中了“阿芙伦(Worm.Avron)”病毒,由于此病毒没有固定的病毒文件名,所以,最好还是选用杀毒软件进行清除。 3、恶性蠕虫 震荡波 病毒名称: Worm.Sasser 中文名称: 震荡波 病毒别名: W32/Sasser.worm [Mcafee] 病毒类型: 蠕虫 受影响系统:WinNT/Win2000/WinXP/Win2003 病毒感染症状: ·莫名其妙地死机或重新启动计算机; ·系统速度极慢,cpu占用100%; ·网络变慢; ·最重要的是,任务管理器里有一个叫"avserve.exe"的进程在运行! 破坏方式: ·利用WINDOWS平台的 Lsass 漏洞进行广泛传播,开启上百个线程不停攻击其它网上其它系统,堵塞网络。病毒的攻击行为可让系统不停的倒计时重启。 ·和最近出现的大部分蠕虫病毒不同,该病毒并不通过邮件传播,而是通过命令易受感染的机器 下载特定文件并运行,来达到感染的目的。 ·文件名为:avserve.exe 解决方案: ·请升级您的操作系统,免受攻击 ·请打开个人防火墙屏蔽端口:445、5554和9996,防止名为avserve.exe的程序访问网络 ·手工解决方案: 首先,若系统为WinMe/WinXP,则请先关闭系统还原功能; 步骤一,使用进程程序管理器结束病毒进程 右键单击任务栏,弹出菜单,选择“任务管理器”,调出“Windows任务管理器”窗口。在任务管理器中,单击“进程”标签,在例表栏内找到病毒进程“avserve.exe”,单击“结束进程按钮”,点击“是”,结束病毒进程,然后关闭“Windows任务管理器”; 步骤二,查找并删除病毒程序 通过“我的电脑”或“资源管理器”进入 系统安装目录(Winnt或windows),找到文件“avser ve.exe”,将它删除;然后进入系统目录(Winntsystem32或windowssystem32),找 到文件"*_up.exe", 将它们删除; 步骤三,清除病毒在注册表里添加的项 打开注册表编辑器: 点击开始——>运行, 输入REGEDIT, 按Enter; 在左边的面板中, 双击(按箭头顺序查找,找到后双击): HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun 在右边的面板中, 找到并删除如下项目:"avserve.exe" = %SystemRoot%avserve.exe 关闭注册表编辑器。 第二部份 系统加速 一、Windows 98 1、不要加载太多随机启动程序 不要在开机时载入太多不必要的随机启动程序。选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要internat.exe前打上钩,其他项都可以不需要,选中后确定重起即可。 2、转换系统文件格式 将硬盘由FAT16转为FAT32。 3、不要轻易使用背景 不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。 4、设置虚拟内存 自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。 5、一些优化设置 a、到控制面板中,选择“系统→性能→ 文件系统”。将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化"调到全速。 b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。 c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。 6、定期对系统进行整理 定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)、Dr?Watson等。 二、Windows 2000 1、升级文件系统 a、如果你所用的操作系统是win 9x与win 2000双重启动的话,建议文件系统格式都用FAT32格式,这样一来可以节省硬盘空间,二来也可以9x与2000之间能实行资源共享。 提醒:要实现这样的双重启动,最好是先在纯DOS环境下安装完9x在C区,再在9x中或者用win 2000启动盘启动在DOS环境下安装2000在另一个区内,并且此区起码要有800M的空间以上 b、如果阁下只使用win 2000的话,建议将文件系统格式转化为NTFS格式,这样一来可节省硬盘空间,二来稳定性和运转速度更高,并且此文件系统格式有很好的纠错性;但这样一来,DOS和win 9x系统就不能在这文件系统格式中运行,这也是上面所说做双启动最好要用FAT32格式才能保证资源共享的原因。而且,某些应用程序也不能在此文件系统格式中运行,大多是DOS下的游戏类。 提醒:在win 2000下将文件系统升级为NTFS格式的方法是,点击“开始-程序-附件”选中“命令提示符”,然后在打开的提示符窗口输入"convert drive_letter:/fs:ntfs",其中的"drive"是你所要升级的硬盘分区符号,如C区;还需要说明的是,升级文件系统,不会破坏所升级硬盘分区里的文件,无需要备份。 · 再运行“添加-删除程序”,就会看见多出了个“添加/删除 Windows 组件”的选项; b、打开“文件夹选项”,在“查看”标签里选中“显示所有文件和文件夹”,此时在你安装win 2000下的区盘根目录下会出现Autoexec.bat和Config.sys两个文件,事实上这两个文件里面根本没有任何内容,可以将它们安全删除。 c、右击“我的电脑”,选中“管理”,在点“服务和应用程序”下的“服务”选项,会看见win 2000上加载的各个程序组见,其中有许多是关于局域网设置或其它一些功能的,你完全可以将你不使用的程序禁用; 如:Alertr,如果你不是处于局域网中,完全可以它设置为禁用;还有Fax Service,不发传真的设置成禁用;Print Spooler,没有打印机的设置成制用;Uninterruptible power Supply,没有UPS的也设置成禁用,这些加载程序你自己可以根据自己实际情况进行设置。 各个加载程序后面都有说明,以及运行状态;选中了要禁用的程序,右击它,选“属性”,然后单击停止,并将“启动类型”设置为“手动”或者“已禁用”就行了 d、关掉调试器Dr. Watson; 运行drwtsn32,把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错,硬盘会响很久,而且会占用很多空间。如果你以前遇到过这种情况,请查找user.dmp文件并删掉,可能会省掉几十兆的空间。这是出错程序的现场,对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:15:52 0 浏览量 回答数 0

回答

Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据 适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等 核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data/<package name>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。 SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下: Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。 Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。 Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写 Editor有如下主要重要方法: SharedPreferences.Editor clear():清空SharedPreferences里所有数据 SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据 SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项 boolean commit(): 当Editor编辑完成后,使用该方法提交修改 实际案例:运行界面如下 这里只提供了两个按钮和一个输入文本框,布局简单,故在此不给出界面布局文件了,程序核心代码如下: 、class ViewOcl implements View.OnClickListener{ @Override public void onClick(View v) { switch(v.getId()){ case R.id.btnSet: //步骤1:获取输入值 String code = txtCode.getText().toString().trim(); //步骤2-1:创建一个SharedPreferences.Editor接口对象,lock表示要写入的XML文件名,MODE_WORLD_WRITEABLE写操作 SharedPreferences.Editor editor = getSharedPreferences("lock", MODE_WORLD_WRITEABLE).edit(); //步骤2-2:将获取过来的值放入文件 editor.putString("code", code); //步骤3:提交 editor.commit(); Toast.makeText(getApplicationContext(), "口令设置成功", Toast.LENGTH_LONG).show(); break; case R.id.btnGet: //步骤1:创建一个SharedPreferences接口对象 SharedPreferences read = getSharedPreferences("lock", MODE_WORLD_READABLE); //步骤2:获取文件中的值 String value = read.getString("code", ""); Toast.makeText(getApplicationContext(), "口令为:"+value, Toast.LENGTH_LONG).show(); break; } } } 、读写其他应用的SharedPreferences: 步骤如下 1、在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取 2、创建其他应用程序对应的Context: Context pvCount = createPackageContext("com.tony.app", Context.CONTEXT_IGNORE_SECURITY);这里的com.tony.app就是其他程序的包名 3、使用其他程序的Context获取对应的SharedPreferences SharedPreferences read = pvCount.getSharedPreferences("lock", Context.MODE_WORLD_READABLE); 4、如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致。 SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。 第二种: 文件存储数据 核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式。具体有以下值可选: MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可 以使用Context.MODE_APPEND MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 MODE_WORLD_READABLE:表示当前文件可以被其他应用读取; MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。 除此之外,Context还提供了如下几个重要的方法: getDir(String name , int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录 File getFilesDir():获取该应用程序的数据文件夹得绝对路径 String[] fileList():返回该应用数据文件夹的全部文件 public String read() { try { FileInputStream inStream = this.openFileInput("message.txt"); byte[] buffer = new byte[1024]; int hasRead = 0; StringBuilder sb = new StringBuilder(); while ((hasRead = inStream.read(buffer)) != -1) { sb.append(new String(buffer, 0, hasRead)); } inStream.close(); return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } public void write(String msg){ // 步骤1:获取输入值 if(msg == null) return; try { // 步骤2:创建一个FileOutputStream对象,MODE_APPEND追加模式 FileOutputStream fos = openFileOutput("message.txt", MODE_APPEND); // 步骤3:将获取过来的值放入文件 fos.write(msg.getBytes()); // 步骤4:关闭数据流 fos.close(); } catch (Exception e) { e.printStackTrace(); } } openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data//files目录,如: /data/data/cn.tony.app/files/message.txt, 下面讲解某些特殊文件读写需要注意的地方: 读写sdcard上的文件 其中读写步骤按如下进行: 1、调用Environment的getExternalStorageState()方法判断手机上是否插了sd卡,且应用程序具有读写SD卡的权限,如下代码将返回true Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 2、调用Environment.getExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录,或者使用"/mnt/sdcard/"目录 3、使用IO流操作SD卡上的文件 注意点:手机应该已插入SD卡,对于模拟器而言,可通过mksdcard命令来创建虚拟存储卡 必须在AndroidManifest.xml上配置读写SD卡的权限 // 文件写操作函数 private void write(String content) { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 如果sdcard存在 File file = new File(Environment.getExternalStorageDirectory() .toString() + File.separator + DIR + File.separator + FILENAME); // 定义File类对象 if (!file.getParentFile().exists()) { // 父文件夹不存在 file.getParentFile().mkdirs(); // 创建文件夹 } PrintStream out = null; // 打印流对象用于输出 try { out = new PrintStream(new FileOutputStream(file, true)); // 追加文件 out.println(content); } catch (Exception e) { e.printStackTrace(); } finally { if (out != null) { out.close(); // 关闭打印流 } } } else { // SDCard不存在,使用Toast提示用户 Toast.makeText(this, "保存失败,SD卡不存在!", Toast.LENGTH_LONG).show(); } } // 文件读操作函数 private String read() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 如果sdcard存在 File file = new File(Environment.getExternalStorageDirectory() .toString() + File.separator + DIR + File.separator + FILENAME); // 定义File类对象 if (!file.getParentFile().exists()) { // 父文件夹不存在 file.getParentFile().mkdirs(); // 创建文件夹 } Scanner scan = null; // 扫描输入 StringBuilder sb = new StringBuilder(); try { scan = new Scanner(new FileInputStream(file)); // 实例化Scanner while (scan.hasNext()) { // 循环读取 sb.append(scan.next() + "\n"); // 设置文本 } return sb.toString(); } catch (Exception e) { e.printStackTrace(); } finally { if (scan != null) { scan.close(); // 关闭打印流 } } } else { // SDCard不存在,使用Toast提示用户 Toast.makeText(this, "读取失败,SD卡不存在!", Toast.LENGTH_LONG).show(); } return null; } 复制代码 第三种:SQLite存储数据 SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧 SQLiteDatabase类为我们提供了很多种方法,上面的代码中基本上囊括了大部分的数据库操作;对于添加、更新和删除来说,我们都可以使用 1 db.executeSQL(String sql); 2 db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集 除了统一的形式之外,他们还有各自的操作方法: 1 db.insert(String table, String nullColumnHack, ContentValues values); 2 db.update(String table, Contentvalues values, String whereClause, String whereArgs); 3 db.delete(String table, String whereClause, String whereArgs);以上三个方法的第一个参数都是表示要操作的表名;insert中的第二个参数表示如果插入的数据每一列都为空的话,需要指定此行中某一列的名称,系统将此列设置为NULL,不至于出现错误;insert中的第三个参数是ContentValues类型的变量,是键值对组成的Map,key代表列名,value代表该列要插入的值;update的第二个参数也很类似,只不过它是更新该字段key为最新的value值,第三个参数whereClause表示WHERE表达式,比如“age > ? and age < ?”等,最后的whereArgs参数是占位符的实际参数值;delete方法的参数也是一样 下面给出demo 数据的添加 1.使用insert方法 复制代码1 ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据2 cv.put("title","you are beautiful");//添加title3 cv.put("weather","sun"); //添加weather4 cv.put("context","xxxx"); //添加context5 String publish = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")6 .format(new Date());7 cv.put("publish ",publish); //添加publish8 db.insert("diary",null,cv);//执行插入操作复制代码2.使用execSQL方式来实现 String sql = "insert into user(username,password) values ('Jack Johnson','iLovePopMuisc');//插入操作的SQL语句db.execSQL(sql);//执行SQL语句数据的删除 同样有2种方式可以实现 String whereClause = "username=?";//删除的条件String[] whereArgs = {"Jack Johnson"};//删除的条件参数db.delete("user",whereClause,whereArgs);//执行删除使用execSQL方式的实现 String sql = "delete from user where username='Jack Johnson'";//删除操作的SQL语句db.execSQL(sql);//执行删除操作数据修改 同上,仍是2种方式 ContentValues cv = new ContentValues();//实例化ContentValuescv.put("password","iHatePopMusic");//添加要更改的字段及内容String whereClause = "username=?";//修改条件String[] whereArgs = {"Jack Johnson"};//修改条件的参数db.update("user",cv,whereClause,whereArgs);//执行修改使用execSQL方式的实现 String sql = "update user set password = 'iHatePopMusic' where username='Jack Johnson'";//修改的SQL语句db.execSQL(sql);//执行修改数据查询 下面来说说查询操作。查询操作相对于上面的几种操作要复杂些,因为我们经常要面对着各种各样的查询条件,所以系统也考虑到这种复杂性,为我们提供了较为丰富的查询形式: 1 db.rawQuery(String sql, String[] selectionArgs); 2 db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy); 3 db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); 4 db.query(String distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); 上面几种都是常用的查询方法,第一种最为简单,将所有的SQL语句都组织到一个字符串中,使用占位符代替实际参数,selectionArgs就是占位符实际参数集; 各参数说明: table:表名称colums:表示要查询的列所有名称集selection:表示WHERE之后的条件语句,可以使用占位符selectionArgs:条件语句的参数数组groupBy:指定分组的列名having:指定分组条件,配合groupBy使用orderBy:y指定排序的列名limit:指定分页参数distinct:指定“true”或“false”表示要不要过滤重复值Cursor:返回值,相当于结果集ResultSet最后,他们同时返回一个Cursor对象,代表数据集的游标,有点类似于JavaSE中的ResultSet。下面是Cursor对象的常用方法: 复制代码 1 c.move(int offset); //以当前位置为参考,移动到指定行 2 c.moveToFirst(); //移动到第一行 3 c.moveToLast(); //移动到最后一行 4 c.moveToPosition(int position); //移动到指定行 5 c.moveToPrevious(); //移动到前一行 6 c.moveToNext(); //移动到下一行 7 c.isFirst(); //是否指向第一条 8 c.isLast(); //是否指向最后一条 9 c.isBeforeFirst(); //是否指向第一条之前 10 c.isAfterLast(); //是否指向最后一条之后 11 c.isNull(int columnIndex); //指定列是否为空(列基数为0) 12 c.isClosed(); //游标是否已关闭 13 c.getCount(); //总数据项数 14 c.getPosition(); //返回当前游标所指向的行数 15 c.getColumnIndex(String columnName);//返回某列名对应的列索引值 16 c.getString(int columnIndex); //返回当前行指定列的值 复制代码实现代码 复制代码String[] params = {12345,123456};Cursor cursor = db.query("user",columns,"ID=?",params,null,null,null);//查询并获得游标if(cursor.moveToFirst()){//判断游标是否为空 for(int i=0;i<cursor.getCount();i++){ cursor.move(i);//移动到指定记录 String username = cursor.getString(cursor.getColumnIndex("username"); String password = cursor.getString(cursor.getColumnIndex("password")); } }复制代码通过rawQuery实现的带参数查询 复制代码Cursor result=db.rawQuery("SELECT ID, name, inventory FROM mytable");//Cursor c = db.rawQuery("s name, inventory FROM mytable where ID=?",new Stirng[]{"123456"}); result.moveToFirst(); while (!result.isAfterLast()) { int id=result.getInt(0); String name=result.getString(1); int inventory=result.getInt(2); // do something useful with these result.moveToNext(); } result.close();复制代码 在上面的代码示例中,已经用到了这几个常用方法中的一些,关于更多的信息,大家可以参考官方文档中的说明。 最后当我们完成了对数据库的操作后,记得调用SQLiteDatabase的close()方法释放数据库连接,否则容易出现SQLiteException。 上面就是SQLite的基本应用,但在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法。 这里直接使用案例讲解:下面是案例demo的界面 SQLiteOpenHelper类介绍 SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。 方法名 方法描述SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version) 构造方法,其中 context 程序上下文环境 即:XXXActivity.this; name :数据库名字; factory:游标工厂,默认为null,即为使用默认工厂; version 数据库版本号 onCreate(SQLiteDatabase db) 创建数据库时调用onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion) 版本更新时调用getReadableDatabase() 创建或打开一个只读数据库getWritableDatabase() 创建或打开一个读写数据库首先创建数据库类 复制代码 1 import android.content.Context; 2 import android.database.sqlite.SQLiteDatabase; 3 import android.database.sqlite.SQLiteDatabase.CursorFactory; 4 import android.database.sqlite.SQLiteOpenHelper; 5 6 public class SqliteDBHelper extends SQLiteOpenHelper { 7 8 // 步骤1:设置常数参量 9 private static final String DATABASE_NAME = "diary_db";10 private static final int VERSION = 1;11 private static final String TABLE_NAME = "diary";12 13 // 步骤2:重载构造方法14 public SqliteDBHelper(Context context) {15 super(context, DATABASE_NAME, null, VERSION);16 }17 18 /*19 * 参数介绍:context 程序上下文环境 即:XXXActivity.this 20 * name 数据库名字 21 * factory 接收数据,一般情况为null22 * version 数据库版本号23 */24 public SqliteDBHelper(Context context, String name, CursorFactory factory,25 int version) {26 super(context, name, factory, version);27 }28 //数据库第一次被创建时,onCreate()会被调用29 @Override30 public void onCreate(SQLiteDatabase db) {31 // 步骤3:数据库表的创建32 String strSQL = "create table "33 + TABLE_NAME34 + "(tid integer primary key autoincrement,title varchar(20),weather varchar(10),context text,publish date)";35 //步骤4:使用参数db,创建对象36 db.execSQL(strSQL);37 }38 //数据库版本变化时,会调用onUpgrade()39 @Override40 public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {41 42 }43 }复制代码正如上面所述,数据库第一次创建时onCreate方法会被调用,我们可以执行创建表的语句,当系统发现版本变化之后,会调用onUpgrade方法,我们可以执行修改表结构等语句。 我们需要一个Dao,来封装我们所有的业务方法,代码如下: 复制代码 1 import android.content.Context; 2 import android.database.Cursor; 3 import android.database.sqlite.SQLiteDatabase; 4 5 import com.chinasoft.dbhelper.SqliteDBHelper; 6 7 public class DiaryDao { 8 9 private SqliteDBHelper sqliteDBHelper;10 private SQLiteDatabase db;11 12 // 重写构造方法13 public DiaryDao(Context context) {14 this.sqliteDBHelper = new SqliteDBHelper(context);15 db = sqliteDBHelper.getWritableDatabase();16 }17 18 // 读操作19 public String execQuery(final String strSQL) {20 try {21 System.out.println("strSQL>" + strSQL);22 // Cursor相当于JDBC中的ResultSet23 Cursor cursor = db.rawQuery(strSQL, null);24 // 始终让cursor指向数据库表的第1行记录25 cursor.moveToFirst();26 // 定义一个StringBuffer的对象,用于动态拼接字符串27 StringBuffer sb = new StringBuffer();28 // 循环游标,如果不是最后一项记录29 while (!cursor.isAfterLast()) {30 sb.append(cursor.getInt(0) + "/" + cursor.getString(1) + "/"31 + cursor.getString(2) + "/" + cursor.getString(3) + "/"32 + cursor.getString(4)+"#");33 //cursor游标移动34 cursor.moveToNext();35 }36 db.close();37 return sb.deleteCharAt(sb.length()-1).toString();38 } catch (RuntimeException e) {39 e.printStackTrace();40 return null;41 }42 43 }44 45 // 写操作46 public boolean execOther(final String strSQL) {47 db.beginTransaction(); //开始事务48 try {49 System.out.println("strSQL" + strSQL);50 db.execSQL(strSQL);51 db.setTransactionSuccessful(); //设置事务成功完成 52 db.close();53 return true;54 } catch (RuntimeException e) {55 e.printStackTrace();56 return false;57 }finally { 58 db.endTransaction(); //结束事务 59 } 60 61 }62 }复制代码我们在Dao构造方法中实例化sqliteDBHelper并获取一个SQLiteDatabase对象,作为整个应用的数据库实例;在增删改信息时,我们采用了事务处理,确保数据完整性;最后要注意释放数据库资源db.close(),这一个步骤在我们整个应用关闭时执行,这个环节容易被忘记,所以朋友们要注意。 我们获取数据库实例时使用了getWritableDatabase()方法,也许朋友们会有疑问,在getWritableDatabase()和getReadableDatabase()中,你为什么选择前者作为整个应用的数据库实例呢?在这里我想和大家着重分析一下这一点。 我们来看一下SQLiteOpenHelper中的getReadableDatabase()方法: 复制代码 1 public synchronized SQLiteDatabase getReadableDatabase() { 2 if (mDatabase != null && mDatabase.isOpen()) { 3 // 如果发现mDatabase不为空并且已经打开则直接返回 4 return mDatabase; 5 } 6 7 if (mIsInitializing) { 8 // 如果正在初始化则抛出异常 9 throw new IllegalStateException("getReadableDatabase called recursively"); 10 } 11 12 // 开始实例化数据库mDatabase 13 14 try { 15 // 注意这里是调用了getWritableDatabase()方法 16 return getWritableDatabase(); 17 } catch (SQLiteException e) { 18 if (mName == null) 19 throw e; // Can't open a temp database read-only! 20 Log.e(TAG, "Couldn't open " + mName + " for writing (will try read-only):", e); 21 } 22 23 // 如果无法以可读写模式打开数据库 则以只读方式打开 24 25 SQLiteDatabase db = null; 26 try { 27 mIsInitializing = true; 28 String path = mContext.getDatabasePath(mName).getPath();// 获取数据库路径 29 // 以只读方式打开数据库 30 db = SQLiteDatabase.openDatabase(path, mFactory, SQLiteDatabase.OPEN_READONLY); 31 if (db.getVersion() != mNewVersion) { 32 throw new SQLiteException("Can't upgrade read-only database from version " + db.getVersion() + " to " 33 + mNewVersion + ": " + path); 34 } 35 36 onOpen(db); 37 Log.w(TAG, "Opened " + mName + " in read-only mode"); 38 mDatabase = db;// 为mDatabase指定新打开的数据库 39 return mDatabase;// 返回打开的数据库 40 } finally { 41 mIsInitializing = false; 42 if (db != null && db != mDatabase) 43 db.close(); 44 } 45 }复制代码在getReadableDatabase()方法中,首先判断是否已存在数据库实例并且是打开状态,如果是,则直接返回该实例,否则试图获取一个可读写模式的数据库实例,如果遇到磁盘空间已满等情况获取失败的话,再以只读模式打开数据库,获取数据库实例并返回,然后为mDatabase赋值为最新打开的数据库实例。既然有可能调用到getWritableDatabase()方法,我们就要看一下了: 复制代码public synchronized SQLiteDatabase getWritableDatabase() { if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) { // 如果mDatabase不为空已打开并且不是只读模式 则返回该实例 return mDatabase; } if (mIsInitializing) { throw new IllegalStateException("getWritableDatabase called recursively"); } // If we have a read-only database open, someone could be using it // (though they shouldn't), which would cause a lock to be held on // the file, and our attempts to open the database read-write would // fail waiting for the file lock. To prevent that, we acquire the // lock on the read-only database, which shuts out other users. boolean success = false; SQLiteDatabase db = null; // 如果mDatabase不为空则加锁 阻止其他的操作 if (mDatabase != null) mDatabase.lock(); try { mIsInitializing = true; if (mName == null) { db = SQLiteDatabase.create(null); } else { // 打开或创建数据库 db = mContext.openOrCreateDatabase(mName, 0, mFactory); } // 获取数据库版本(如果刚创建的数据库,版本为0) int version = db.getVersion(); // 比较版本(我们代码中的版本mNewVersion为1) if (version != mNewVersion) { db.beginTransaction();// 开始事务 try { if (version == 0) { // 执行我们的onCreate方法 onCreate(db); } else { // 如果我们应用升级了mNewVersion为2,而原版本为1则执行onUpgrade方法 onUpgrade(db, version, mNewVersion); } db.setVersion(mNewVersion);// 设置最新版本 db.setTransactionSuccessful();// 设置事务成功 } finally { db.endTransaction();// 结束事务 } } onOpen(db); success = true; return db;// 返回可读写模式的数据库实例 } finally { mIsInitializing = false; if (success) { // 打开成功 if (mDatabase != null) { // 如果mDatabase有值则先关闭 try { mDatabase.close(); } catch (Exception e) { } mDatabase.unlock();// 解锁 } mDatabase = db;// 赋值给mDatabase } else { // 打开失败的情况:解锁、关闭 if (mDatabase != null) mDatabase.unlock(); if (db != null) db.close(); } } }复制代码大家可以看到,几个关键步骤是,首先判断mDatabase如果不为空已打开并不是只读模式则直接返回,否则如果mDatabase不为空则加锁,然后开始打开或创建数据库,比较版本,根据版本号来调用相应的方法,为数据库设置新版本号,最后释放旧的不为空的mDatabase并解锁,把新打开的数据库实例赋予mDatabase,并返回最新实例。 看完上面的过程之后,大家或许就清楚了许多,如果不是在遇到磁盘空间已满等情况,getReadableDatabase()一般都会返回和getWritableDatabase()一样的数据库实例,所以我们在DBManager构造方法中使用getWritableDatabase()获取整个应用所使用的数据库实例是可行的。当然如果你真的担心这种情况会发生,那么你可以先用getWritableDatabase()获取数据实例,如果遇到异常,再试图用getReadableDatabase()获取实例,当然这个时候你获取的实例只能读不能写了 最后,让我们看一下如何使用这些数据操作方法来显示数据,界面核心逻辑代码: 复制代码public class SQLiteActivity extends Activity { public DiaryDao diaryDao; //因为getWritableDatabase内部调用了mContext.openOrCreateDatabase(mName, 0, mFactory); //所以要确保context已初始化,我们可以把实例化Dao的步骤放在Activity的onCreate里 @Override protected void onCreate(Bundle savedInstanceState) { diaryDao = new DiaryDao(SQLiteActivity.this); initDatabase(); } class ViewOcl implements View.OnClickListener { @Override public void onClick(View v) { String strSQL; boolean flag; String message; switch (v.getId()) { case R.id.btnAdd: String title = txtTitle.getText().toString().trim(); String weather = txtWeather.getText().toString().trim();; String context = txtContext.getText().toString().trim();; String publish = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .format(new Date()); // 动态组件SQL语句 strSQL = "insert into diary values(null,'" + title + "','" + weather + "','" + context + "','" + publish + "')"; flag = diaryDao.execOther(strSQL); //返回信息 message = flag?"添加成功":"添加失败"; Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); break; case R.id.btnDelete: strSQL = "delete from diary where tid = 1"; flag = diaryDao.execOther(strSQL); //返回信息 message = flag?"删除成功":"删除失败"; Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); break; case R.id.btnQuery: strSQL = "select * from diary order by publish desc"; String data = diaryDao.execQuery(strSQL); Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG).show(); break; case R.id.btnUpdate: strSQL = "update diary set title = '测试标题1-1' where tid = 1"; flag = diaryDao.execOther(strSQL); //返回信息 message = flag?"更新成功":"更新失败"; Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); break; } } } private void initDatabase() { // 创建数据库对象 SqliteDBHelper sqliteDBHelper = new SqliteDBHelper(SQLiteActivity.this); sqliteDBHelper.getWritableDatabase(); System.out.println("数据库创建成功"); } }复制代码 Android sqlite3数据库管理工具 Android SDK的tools目录下提供了一个sqlite3.exe工具,这是一个简单的sqlite数据库管理工具。开发者可以方便的使用其对sqlite数据库进行命令行的操作。 程序运行生成的.db文件一般位于"/data/data/项目名(包括所处包名)/databases/.db",因此要对数据库文件进行操作需要先找到数据库文件: 1、进入shell 命令 adb shell2、找到数据库文件 cd data/data ls --列出所有项目 cd project_name --进入所需项目名 cd databases ls --列出现寸的数据库文件 3、进入数据库 sqlite3 test_db --进入所需数据库 会出现类似如下字样: SQLite version 3.6.22Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite>至此,可对数据库进行sql操作。 4、sqlite常用命令 .databases --产看当前数据库.tables --查看当前数据库中的表.help --sqlite3帮助.schema --各个表的生成语句 原文地址https://www.cnblogs.com/ITtangtang/p/3920916.html

auto_answer 2019-12-02 01:50:21 0 浏览量 回答数 0

回答

存储在OSS上的文件,如何设置防盗链功能? 为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。 目前,只有通过OSS的控制台( http://i.aliyun.com/dashboard/instance?type=oss)可以对一个bucket设置referer字段的白名单和是否允许referer字段为空的请求访问。    例如,对于一个名为mydata的bucket,设置其referer白名单为 http://www.aliyun.com。则所有referer为 http://www.aliyun.com的请求才能访问mydata这个bucket中的Object。    细节分析: 1) 用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有“Authorization”字段的,不会做防盗链验证。 2) 一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。 3) Referer 参数支持通配符“*”和“?”。 4) 用户可以设置是否允许 referer 字段为空的请求访问。 5) 白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。 6) 白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。 7) 如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的请求和符合白名单的请求会被允许;其他请求都会被拒绝。 8) Bucket 的三种权限(private,public-read,public-read-write)都会检查 referer字段。       星号“*”: 可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。 问号“?”: 可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。    不允许Refer为空 可能有些人搞不明白,简单说就是直接在浏览器中输入图片URL,refer为空;从网页中点击打开图片则refer不为空。    注:资料参考API文档地址 http://help.aliyun.com/manual?&helpId=253        细节分析参考资料 http://www.amznz.com/aliyun-oss-referer/ ------------------------- 11.云服务器与OSS 上传文件,流量与请求次数是否收费? 云服务器与OSS之间通过内网地址上传或下载数据,属内网流量,是免费的。 阿里云服务器与OSS之间的内网访问通信地址为: http://oss-internal.aliyuncs.com (需用以上方式进行访问,方可计为内网流量) *  可通过cname方式或三级域名的方式访问文件 云服务器与OSS每次请求所产生的请求次数,不分内外网都会计费。 收费详情请参考 http://www.aliyun.com/product?type=oss#price 12.OSS API返回结果没有JSON格式的吗? 只有XML格式 13. 如何进行大文件上传? 1、有开发能力的用户:可以通过oss API或SDK来操作。 • 5GB以下文件或网络速度好的用户,可以使用PUT object 。 • 5GB以上或网络速度不好并且文件在100M以上的用户推荐使用 Multipart Upload 2、无开发基础客户可下载OSS客户端,请参考 http://bbs.aliyun.com/read.php?tid=95321 14.object怎么改名? 两种方法可以实现:1. 您可以删除原来的文件,上传新命名的文件也能达到改名的效果2. 您可以通过copy objcet 源文件复制成为一个新名字的文件。再把源文件删除即可 15.OSS中可以重命名bucket吗?是否支持object迁移? OSS的bucket暂不支持重命名,若需要其他名称建议您重新创建bucket。 OSS 提供了COPY objcet的功能,您可以将原bucekt下的文件COPY到新bucket即可。 16.咨询一下java sdk中的 ossclient对象是否是线程安全的? java sdk中的 ossclient对象是线程安全的 17.测试版PHP SDK中不能自动检测所需PHP模块,是什么原因? 1.使用phpinfo来查看PHP模块。使用PHPSDK需要配置CURL功能模。具体安装CURL的方法可参考: http://bbs.aliyun.com/read.php?tid=18967 ; 2.您可以下载最新的PHP SDK包。已支持自动检测所需PHP模块 http://www.aliyun.com/product?type=oss#resources 18.比如多个文件object, 直接指定多个object,生成一个url,打包一起下载? 目前oss不支持多个object打包下载。 此需求可以由上层应用逻辑进行处理。OSS服务提供平台级基础资源的存储支持。 19.OSS返回的文件网络路径,域名都是aliyun的吗? 是的。支持CNAME 同时现在支持绑定自己的域名 20.可以给出一个java实现生成url签名的代码示例吗? 生成签名以后的URL的示例代码如下: // Generate a presigned URL Date expires = new Date (new Date().getTime()   1000 * 60); // 1 minute to expire GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, key); generatePresignedUrlRequest.setExpiration(expires); URL url = client.generatePresignedUrl(generatePresignedUrlRequest); System.out.println(url.toString()); 这段代码假定指定bucketName和key的Object已经上传到OSS,用户可以根据修改设定expires,即过期时间。更详细的操作可以参考OSSClient#generatePresignedUrl方法和GeneratePresignedUrlRequest类的帮助。 ------------------------- 21.OSS中url中可以实现授权文件上传吗? Oss中url中授权文件上传可以实现 java版代码示例如下:GeneratePresignedUrlRequest generatePresignedUrlRequest = 1)url中包含签名的好像能够实现文件的下载,阿里云能实现url中授权文件上传吗? new GeneratePresignedUrlRequest(bucketName, key); 2)java版代码示例如下: generatePresignedUrlRequest.setMethod(HttpMethod.PUT); generatePresignedUrlRequest.setExpiration(expires); generatePresignedUrlRequest.addUserMetadata("usermeta", "uservalue"); // If you need to set user metadata URL url = client.generatePresignedUrl(generatePresignedUrlRequest); 22.如何使用JAVA SDK源代码? 您可以使用jd decompiler等Java反编译的工具打开SDK的jar文件,即可以查看全部源代码。 23.为什么bucket下的文件都删除了,却还能查看到占用的空间,并且bucket也删除不了? 请确认您是否使用过UploadMultipart 的功能,如使用过,建议您可以通过UploadsList Multipart 查看是否存在已经被初始化但是未被Complete或者Abort的 Multipart Upload的part。如果有,则需再执行Abort Multipart Upload(来终止上次操作的 Multipart Upload,该命令会自动删除未完成的part)。 因为未完成合并的part,无法形成objcet, 所以通过object list是看不到这些残留的part 但这些都会产生占用空间量。 24.如何使用内网 ? 阿里云云服务器与OSS之间通过Bucket.oss-internal.aliyuncs.com(OSS内网请求域名)的方式请求,所产生的网络流量可享受内网流量免费。 25.无法上传大文件怎么办? 无法向OSS上传大文件。上传1KB以下的文件就可以,2KB以上的文件就不成功,请求发出去就收不到任何响应,直至超时。 解决办法是将本机的MTU设成1470(默认应该是1500) Linux下修改MTU的命令是:(以阿里云服务器oss走内网默认是eth0为例) ip link set dev eth0 mtu 1470 26.OSS支持bucket作为三级域名的访问方式? 三级域名外链访问: http://bucketname.oss.aliyuncs.com/object 例如: http://cloudstorage.oss.aliyuncs.com/pujing.jpg 普通外链访问: http://oss.aliyuncs.com/bucketname/object 例如: http://oss.aliyuncs.com/cloudstorage/pujing.jpg 温馨提示:如果你的bucket里面有下划线"_",那么由于不符合WWW规范,所以无法做为三级域名使用,只能使用普通外链访问方式。 ------------------------- 终于整理出来了 。。。。大半夜的 闹鬼啊 ------------------------- 回 6楼(kashi) 的帖子 谢谢支持 ------------------------- 回 5楼(yyd521) 的帖子 只要能帮到大家   应该的拉 ------------------------- Re:ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。 引用第10楼pasahu于2013-07-20 20:53发表的 ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。 : 快点吧 discuz  x2.5  3.0整出来吧。。搞些实在的。 你好  这个我们在做  很快  插件就出来了 ------------------------- 感谢夸奖

asky8 2019-12-02 01:36:19 0 浏览量 回答数 0

问题

服务器存在安全

3aweb 2019-12-01 19:06:08 71 浏览量 回答数 1

回答

92题 一般来说,建立INDEX有以下益处:提高查询效率;建立唯一索引以保证数据的唯一性;设计INDEX避免排序。 缺点,INDEX的维护有以下开销:叶节点的‘分裂’消耗;INSERT、DELETE和UPDATE操作在INDEX上的维护开销;有存储要求;其他日常维护的消耗:对恢复的影响,重组的影响。 需要建立索引的情况:为了建立分区数据库的PATITION INDEX必须建立; 为了保证数据约束性需要而建立的INDEX必须建立; 为了提高查询效率,则考虑建立(是否建立要考虑相关性能及维护开销); 考虑在使用UNION,DISTINCT,GROUP BY,ORDER BY等字句的列上加索引。 91题 作用:加快查询速度。原则:(1) 如果某属性或属性组经常出现在查询条件中,考虑为该属性或属性组建立索引;(2) 如果某个属性常作为最大值和最小值等聚集函数的参数,考虑为该属性建立索引;(3) 如果某属性经常出现在连接操作的连接条件中,考虑为该属性或属性组建立索引。 90题 快照Snapshot是一个文件系统在特定时间里的镜像,对于在线实时数据备份非常有用。快照对于拥有不能停止的应用或具有常打开文件的文件系统的备份非常重要。对于只能提供一个非常短的备份时间而言,快照能保证系统的完整性。 89题 游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。 88题 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 87题 MySQL可以使用多个字段同时建立一个索引,叫做联合索引。在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引。具体原因为:MySQL使用索引时需要索引有序,假设现在建立了"name,age,school"的联合索引,那么索引的排序为: 先按照name排序,如果name相同,则按照age排序,如果age的值也相等,则按照school进行排序。因此在建立联合索引的时候应该注意索引列的顺序,一般情况下,将查询需求频繁或者字段选择性高的列放在前面。此外可以根据特例的查询或者表结构进行单独的调整。 86题 建立索引的时候一般要考虑到字段的使用频率,经常作为条件进行查询的字段比较适合。如果需要建立联合索引的话,还需要考虑联合索引中的顺序。此外也要考虑其他方面,比如防止过多的所有对表造成太大的压力。这些都和实际的表结构以及查询方式有关。 85题 存储过程是一组Transact-SQL语句,在一次编译后可以执行多次。因为不必重新编译Transact-SQL语句,所以执行存储过程可以提高性能。触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。 84题 存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 83题 减少表连接,减少复杂 SQL,拆分成简单SQL。减少排序:非必要不排序,利用索引排序,减少参与排序的记录数。尽量避免 select *。尽量用 join 代替子查询。尽量少使用 or,使用 in 或者 union(union all) 代替。尽量用 union all 代替 union。尽量早的将无用数据过滤:选择更优的索引,先分页再Join…。避免类型转换:索引失效。优先优化高并发的 SQL,而不是执行频率低某些“大”SQL。从全局出发优化,而不是片面调整。尽可能对每一条SQL进行 explain。 82题 如果条件中有or,即使其中有条件带索引也不会使用(要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引)。对于多列索引,不是使用的第一部分,则不会使用索引。like查询是以%开头。如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引。如果mysql估计使用全表扫描要比使用索引快,则不使用索引。例如,使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集很大,MySQL就有可能不使用索引。 81题 主键不能重复,不能为空,唯一键不能重复,可以为空。建立主键的目的是让外键来引用。一个表最多只有一个主键,但可以有很多唯一键。 80题 空值('')是不占用空间的,判断空字符用=''或者<>''来进行处理。NULL值是未知的,且占用空间,不走索引;判断 NULL 用 IS NULL 或者 is not null ,SQL 语句函数中可以使用 ifnull ()函数来进行处理。无法比较 NULL 和 0;它们是不等价的。无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。NULL 值可以使用 <=> 符号进行比较,该符号与等号作用相似,但对NULL有意义。进行 count ()统计某列的记录数的时候,如果采用的 NULL 值,会被系统自动忽略掉,但是空值是统计到其中。 79题 HEAP表是访问数据速度最快的MySQL表,他使用保存在内存中的散列索引。一旦服务器重启,所有heap表数据丢失。BLOB或TEXT字段是不允许的。只能使用比较运算符=,<,>,=>,= <。HEAP表不支持AUTO_INCREMENT。索引不可为NULL。 78题 如果想输入字符为十六进制数字,可以输入带有单引号的十六进制数字和前缀(X),或者只用(Ox)前缀输入十六进制数字。如果表达式上下文是字符串,则十六进制数字串将自动转换为字符串。 77题 Mysql服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。 76题 在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。但是如果你的MYSQL表类型是使用InnoDB Tables 或 BDB tables的话,你的MYSQL就可以使用事务处理,使用SET AUTOCOMMIT=0就可以使MYSQL允许在非autocommit模式,在非autocommit模式下,你必须使用COMMIT来提交你的更改,或者用ROLLBACK来回滚你的更改。 75题 它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。 74题 创建索引的时候尽量使用唯一性大的列来创建索引,由于使用b+tree做为索引,以innodb为例,一个树节点的大小由“innodb_page_size”,为了减少树的高度,同时让一个节点能存放更多的值,索引列尽量在整数类型上创建,如果必须使用字符类型,也应该使用长度较少的字符类型。 73题 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下: 限定数据的范围: 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内。读/写分离: 经典的数据库拆分方案,主库负责写,从库负责读。垂直分区: 根据数据库里面数据表的相关性进行拆分。简单来说垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。水平分区: 保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据分散到不同的表或者库中,达到了分布式的目的。水平拆分可以支撑非常大的数据量。 72题 乐观锁失败后会抛出ObjectOptimisticLockingFailureException,那么我们就针对这块考虑一下重试,自定义一个注解,用于做切面。针对注解进行切面,设置最大重试次数n,然后超过n次后就不再重试。 71题 一致性非锁定读讲的是一条记录被加了X锁其他事务仍然可以读而不被阻塞,是通过innodb的行多版本实现的,行多版本并不是实际存储多个版本记录而是通过undo实现(undo日志用来记录数据修改前的版本,回滚时会用到,用来保证事务的原子性)。一致性锁定读讲的是我可以通过SELECT语句显式地给一条记录加X锁从而保证特定应用场景下的数据一致性。 70题 数据库引擎:尤其是mysql数据库只有是InnoDB引擎的时候事物才能生效。 show engines 查看数据库默认引擎;SHOW TABLE STATUS from 数据库名字 where Name='表名' 如下;SHOW TABLE STATUS from rrz where Name='rrz_cust';修改表的引擎alter table table_name engine=innodb。 69题 如果是等值查询,那么哈希索引明显有绝对优势,因为只需要经过一次算法即可找到相应的键值;当然了,这个前提是,键值都是唯一的。如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到相应的数据;如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算法后,有可能变成不连续的了,就没办法再利用索引完成范围查询检索;同理,哈希索引也没办法利用索引完成排序,以及like ‘xxx%’ 这样的部分模糊查询(这种部分模糊查询,其实本质上也是范围查询);哈希索引也不支持多列联合索引的最左匹配规则;B+树索引的关键字检索效率比较平均,不像B树那样波动幅度大,在有大量重复键值情况下,哈希索引的效率也是极低的,因为存在所谓的哈希碰撞问题。 68题 decimal精度比float高,数据处理比float简单,一般优先考虑,但float存储的数据范围大,所以范围大的数据就只能用它了,但要注意一些处理细节,因为不精确可能会与自己想的不一致,也常有关于float 出错的问题。 67题 datetime、timestamp精确度都是秒,datetime与时区无关,存储的范围广(1001-9999),timestamp与时区有关,存储的范围小(1970-2038)。 66题 Char使用固定长度的空间进行存储,char(4)存储4个字符,根据编码方式的不同占用不同的字节,gbk编码方式,不论是中文还是英文,每个字符占用2个字节的空间,utf8编码方式,每个字符占用3个字节的空间。Varchar保存可变长度的字符串,使用额外的一个或两个字节存储字符串长度,varchar(10),除了需要存储10个字符,还需要1个字节存储长度信息(10),超过255的长度需要2个字节来存储。char和varchar后面如果有空格,char会自动去掉空格后存储,varchar虽然不会去掉空格,但在进行字符串比较时,会去掉空格进行比较。Varbinary保存变长的字符串,后面不会补\0。 65题 首先分析语句,看看是否load了额外的数据,可能是查询了多余的行并且抛弃掉了,可能是加载了许多结果中并不需要的列,对语句进行分析以及重写。分析语句的执行计划,然后获得其使用索引的情况,之后修改语句或者修改索引,使得语句可以尽可能的命中索引。如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表。 64题 建立索引的时候一般要考虑到字段的使用频率,经常作为条件进行查询的字段比较适合。如果需要建立联合索引的话,还需要考虑联合索引中的顺序。此外也要考虑其他方面,比如防止过多的所有对表造成太大的压力。这些都和实际的表结构以及查询方式有关。 63题 存储过程是一些预编译的SQL语句。1、更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。2、存储过程是一个预编译的代码块,执行效率比较高,一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率,可以一定程度上确保数据安全。 62题 密码散列、盐、用户身份证号等固定长度的字符串应该使用char而不是varchar来存储,这样可以节省空间且提高检索效率。 61题 推荐使用自增ID,不要使用UUID。因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降。总之,在数据量大一些的情况下,用自增主键性能会好一些。 60题 char是一个定长字段,假如申请了char(10)的空间,那么无论实际存储多少内容。该字段都占用10个字符,而varchar是变长的,也就是说申请的只是最大长度,占用的空间为实际字符长度+1,最后一个字符存储使用了多长的空间。在检索效率上来讲,char > varchar,因此在使用中,如果确定某个字段的值的长度,可以使用char,否则应该尽量使用varchar。例如存储用户MD5加密后的密码,则应该使用char。 59题 一. read uncommitted(读取未提交数据) 即便是事务没有commit,但是我们仍然能读到未提交的数据,这是所有隔离级别中最低的一种。 二. read committed(可以读取其他事务提交的数据)---大多数数据库默认的隔离级别 当前会话只能读取到其他事务提交的数据,未提交的数据读不到。 三. repeatable read(可重读)---MySQL默认的隔离级别 当前会话可以重复读,就是每次读取的结果集都相同,而不管其他事务有没有提交。 四. serializable(串行化) 其他会话对该表的写操作将被挂起。可以看到,这是隔离级别中最严格的,但是这样做势必对性能造成影响。所以在实际的选用上,我们要根据当前具体的情况选用合适的。 58题 B+树的高度一般为2-4层,所以查找记录时最多只需要2-4次IO,相对二叉平衡树已经大大降低了。范围查找时,能通过叶子节点的指针获取数据。例如查找大于等于3的数据,当在叶子节点中查到3时,通过3的尾指针便能获取所有数据,而不需要再像二叉树一样再获取到3的父节点。 57题 因为事务在修改页时,要先记 undo,在记 undo 之前要记 undo 的 redo, 然后修改数据页,再记数据页修改的 redo。 Redo(里面包括 undo 的修改) 一定要比数据页先持久化到磁盘。 当事务需要回滚时,因为有 undo,可以把数据页回滚到前镜像的状态,崩溃恢复时,如果 redo log 中事务没有对应的 commit 记录,那么需要用 undo把该事务的修改回滚到事务开始之前。 如果有 commit 记录,就用 redo 前滚到该事务完成时并提交掉。 56题 redo log是物理日志,记录的是"在某个数据页上做了什么修改"。 binlog是逻辑日志,记录的是这个语句的原始逻辑,比如"给ID=2这一行的c字段加1"。 redo log是InnoDB引擎特有的;binlog是MySQL的Server层实现的,所有引擎都可以使用。 redo log是循环写的,空间固定会用完:binlog 是可以追加写入的。"追加写"是指binlog文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。 最开始 MySQL 里并没有 InnoDB 引擎,MySQL 自带的引擎是 MyISAM,但是 MyISAM 没有 crash-safe 的能力,binlog日志只能用于归档。而InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统,也就是 redo log 来实现 crash-safe 能力。 55题 重做日志(redo log)      作用:确保事务的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,达到事务一致性。 回滚日志(undo log)  作用:保证数据的原子性,保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读。 二进 制日志(binlog)    作用:用于主从复制,实现主从同步;用于数据库的基于时间点的还原。 错误日志(errorlog) 作用:Mysql本身启动,停止,运行期间发生的错误信息。 慢查询日志(slow query log)  作用:记录执行时间过长的sql,时间阈值可以配置,只记录执行成功。 一般查询日志(general log)    作用:记录数据库的操作明细,默认关闭,开启后会降低数据库性能 。 中继日志(relay log) 作用:用于数据库主从同步,将主库发来的bin log保存在本地,然后从库进行回放。 54题 MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 死锁: 是指两个或两个以上的进程在执行过程中。因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 死锁的关键在于:两个(或以上)的Session加锁的顺序不一致。 那么对应的解决死锁问题的关键就是:让不同的session加锁有次序。死锁的解决办法:1.查出的线程杀死。2.设置锁的超时时间。3.指定获取锁的顺序。 53题 当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性(脏读,不可重复读,幻读等),可能产生死锁。 乐观锁:乐观锁不是数据库自带的,需要我们自己去实现。 悲观锁:在进行每次操作时都要通过获取锁才能进行对相同数据的操作。 共享锁:加了共享锁的数据对象可以被其他事务读取,但不能修改。 排他锁:当数据对象被加上排它锁时,一个事务必须得到锁才能对该数据对象进行访问,一直到事务结束锁才被释放。 行锁:就是给某一条记录加上锁。 52题 Mysql是关系型数据库,MongoDB是非关系型数据库,数据存储结构的不同。 51题 关系型数据库优点:1.保持数据的一致性(事务处理)。 2.由于以标准化为前提,数据更新的开销很小。 3. 可以进行Join等复杂查询。 缺点:1、为了维护一致性所付出的巨大代价就是其读写性能比较差。 2、固定的表结构。 3、高并发读写需求。 4、海量数据的高效率读写。 非关系型数据库优点:1、无需经过sql层的解析,读写性能很高。 2、基于键值对,数据没有耦合性,容易扩展。 3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 缺点:1、不提供sql支持,学习和使用成本较高。 2、无事务处理,附加功能bi和报表等支持也不好。 redis与mongoDB的区别: 性能:TPS方面redis要大于mongodb。 可操作性:mongodb支持丰富的数据表达,索引,redis较少的网络IO次数。 可用性:MongoDB优于Redis。 一致性:redis事务支持比较弱,mongoDB不支持事务。 数据分析:mongoDB内置了数据分析的功能(mapreduce)。 应用场景:redis数据量较小的更性能操作和运算上,MongoDB主要解决海量数据的访问效率问题。 50题 如果Redis被当做缓存使用,使用一致性哈希实现动态扩容缩容。如果Redis被当做一个持久化存储使用,必须使用固定的keys-to-nodes映射关系,节点的数量一旦确定不能变化。否则的话(即Redis节点需要动态变化的情况),必须使用可以在运行时进行数据再平衡的一套系统,而当前只有Redis集群可以做到这样。 49题 分区可以让Redis管理更大的内存,Redis将可以使用所有机器的内存。如果没有分区,你最多只能使用一台机器的内存。分区使Redis的计算能力通过简单地增加计算机得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而成倍增长。 48题 除了缓存服务器自带的缓存失效策略之外(Redis默认的有6种策略可供选择),我们还可以根据具体的业务需求进行自定义的缓存淘汰,常见的策略有两种: 1.定时去清理过期的缓存; 2.当有用户请求过来时,再判断这个请求所用到的缓存是否过期,过期的话就去底层系统得到新数据并更新缓存。 两者各有优劣,第一种的缺点是维护大量缓存的key是比较麻烦的,第二种的缺点就是每次用户请求过来都要判断缓存失效,逻辑相对比较复杂!具体用哪种方案,可以根据应用场景来权衡。 47题 Redis提供了两种方式来作消息队列: 一个是使用生产者消费模式模式:会让一个或者多个客户端监听消息队列,一旦消息到达,消费者马上消费,谁先抢到算谁的,如果队列里没有消息,则消费者继续监听 。另一个就是发布订阅者模式:也是一个或多个客户端订阅消息频道,只要发布者发布消息,所有订阅者都能收到消息,订阅者都是平等的。 46题 Redis的数据结构列表(list)可以实现延时队列,可以通过队列和栈来实现。blpop/brpop来替换lpop/rpop,blpop/brpop阻塞读在队列没有数据的时候,会立即进入休眠状态,一旦数据到来,则立刻醒过来。Redis的有序集合(zset)可以用于实现延时队列,消息作为value,时间作为score。Zrem 命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。当 key 存在但不是有序集类型时,返回一个错误。 45题 1.热点数据缓存:因为Redis 访问速度块、支持的数据类型比较丰富。 2.限时业务:expire 命令设置 key 的生存时间,到时间后自动删除 key。 3.计数器:incrby 命令可以实现原子性的递增。 4.排行榜:借助 SortedSet 进行热点数据的排序。 5.分布式锁:利用 Redis 的 setnx 命令进行。 6.队列机制:有 list push 和 list pop 这样的命令。 44题 一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n 个关键字重新映射,其中K是关键字的数量, n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。 43题 RDB的优点:适合做冷备份;读写服务影响小,reids可以保持高性能;重启和恢复redis进程,更加快速。RDB的缺点:宕机会丢失最近5分钟的数据;文件特别大时可能会暂停数毫秒,或者甚至数秒。 AOF的优点:每个一秒执行fsync操作,最多丢失1秒钟的数据;以append-only模式写入,没有任何磁盘寻址的开销;文件过大时,不会影响客户端读写;适合做灾难性的误删除的紧急恢复。AOF的缺点:AOF日志文件比RDB数据快照文件更大,支持写QPS比RDB支持的写QPS低;比RDB脆弱,容易有bug。 42题 对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。Redis的操作之所以是原子性的,是因为Redis是单线程的。而在程序中执行多个Redis命令并非是原子性的,这也和普通数据库的表现是一样的,可以用incr或者使用Redis的事务,或者使用Redis+Lua的方式实现。对Redis来说,执行get、set以及eval等API,都是一个一个的任务,这些任务都会由Redis的线程去负责执行,任务要么执行成功,要么执行失败,这就是Redis的命令是原子性的原因。 41题 (1)twemproxy,使用方式简单(相对redis只需修改连接端口),对旧项目扩展的首选。(2)codis,目前用的最多的集群方案,基本和twemproxy一致的效果,但它支持在节点数改变情况下,旧节点数据可恢复到新hash节点。(3)redis cluster3.0自带的集群,特点在于他的分布式算法不是一致性hash,而是hash槽的概念,以及自身支持节点设置从节点。(4)在业务代码层实现,起几个毫无关联的redis实例,在代码层,对key进行hash计算,然后去对应的redis实例操作数据。这种方式对hash层代码要求比较高,考虑部分包括,节点失效后的代替算法方案,数据震荡后的自动脚本恢复,实例的监控,等等。 40题 (1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件 (2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次 (3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内 (4) 尽量避免在压力很大的主库上增加从库 (5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3...这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。 39题 比如订单管理,热数据:3个月内的订单数据,查询实时性较高;温数据:3个月 ~ 12个月前的订单数据,查询频率不高;冷数据:1年前的订单数据,几乎不会查询,只有偶尔的查询需求。热数据使用mysql进行存储,需要分库分表;温数据可以存储在ES中,利用搜索引擎的特性基本上也可以做到比较快的查询;冷数据可以存放到Hive中。从存储形式来说,一般情况冷数据存储在磁带、光盘,热数据一般存放在SSD中,存取速度快,而温数据可以存放在7200转的硬盘。 38题 当访问量剧增、服务出现问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务。系统可以根据一些关键数据进行自动降级,也可以配置开关实现人工降级。降级的最终目的是保证核心服务可用,即使是有损的。而且有些服务是无法降级的(如加入购物车、结算)。 37题 分层架构设计,有一条准则:站点层、服务层要做到无数据无状态,这样才能任意的加节点水平扩展,数据和状态尽量存储到后端的数据存储服务,例如数据库服务或者缓存服务。显然进程内缓存违背了这一原则。 36题 更新数据的时候,根据数据的唯一标识,将操作路由之后,发送到一个 jvm 内部队列中。读取数据的时候,如果发现数据不在缓存中,那么将重新读取数据+更新缓存的操作,根据唯一标识路由之后,也发送同一个 jvm 内部队列中。一个队列对应一个工作线程,每个工作线程串行拿到对应的操作,然后一条一条的执行。 35题 redis分布式锁加锁过程:通过setnx向特定的key写入一个随机值,并同时设置失效时间,写值成功既加锁成功;redis分布式锁解锁过程:匹配随机值,删除redis上的特点key数据,要保证获取数据、判断一致以及删除数据三个操作是原子的,为保证原子性一般使用lua脚本实现;在此基础上进一步优化的话,考虑使用心跳检测对锁的有效期进行续期,同时基于redis的发布订阅优雅的实现阻塞式加锁。 34题 volatile-lru:当内存不足以容纳写入数据时,从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。 volatile-ttl:当内存不足以容纳写入数据时,从已设置过期时间的数据集中挑选将要过期的数据淘汰。 volatile-random:当内存不足以容纳写入数据时,从已设置过期时间的数据集中任意选择数据淘汰。 allkeys-lru:当内存不足以容纳写入数据时,从数据集中挑选最近最少使用的数据淘汰。 allkeys-random:当内存不足以容纳写入数据时,从数据集中任意选择数据淘汰。 noeviction:禁止驱逐数据,当内存使用达到阈值的时候,所有引起申请内存的命令会报错。 33题 定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。 惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。 定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。 32题 缓存击穿,一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。如何避免:在访问key之前,采用SETNX(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该短期key。 31题 缓存雪崩,是指在某一个时间段,缓存集中过期失效。大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。而缓存服务器某个节点宕机或断网,对数据库服务器造成的压力是不可预知的,很有可能瞬间就把数据库压垮。如何避免:1.redis高可用,搭建redis集群。2.限流降级,在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。3.数据预热,在即将发生大并发访问前手动触发加载缓存不同的key,设置不同的过期时间。 30题 缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。一些恶意的请求会故意查询不存在的 key,请求量很大,对数据库造成压力,甚至压垮数据库。 如何避免:1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该 key 对应的数据 insert 了之后清理缓存。2:对一定不存在的 key 进行过滤。可以把所有的可能存在的 key 放到一个大的 Bitmap 中,查询时通过该 bitmap 过滤。 29题 1.memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型。 2.redis 的速度比 memcached 快很多。 3.redis 可以持久化其数据。 4.Redis支持数据的备份,即master-slave模式的数据备份。 5.Redis采用VM机制。 6.value大小:redis最大可以达到1GB,而memcache只有1MB。 28题 Spring Boot 推荐使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通过spring提供的@ImportResource来加载xml配置。例如:@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"}) 27题 Spring像一个大家族,有众多衍生产品例如Spring Boot,Spring Security等等,但他们的基础都是Spring的IOC和AOP,IOC提供了依赖注入的容器,而AOP解决了面向切面的编程,然后在此两者的基础上实现了其他衍生产品的高级功能。Spring MVC是基于Servlet的一个MVC框架,主要解决WEB开发的问题,因为 Spring的配置非常复杂,各种xml,properties处理起来比较繁琐。Spring Boot遵循约定优于配置,极大降低了Spring使用门槛,又有着Spring原本灵活强大的功能。总结:Spring MVC和Spring Boot都属于Spring,Spring MVC是基于Spring的一个MVC框架,而Spring Boot是基于Spring的一套快速开发整合包。 26题 YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。YAML 的配置文件后缀为 .yml,是一种人类可读的数据序列化语言,可以简单表达清单、散列表,标量等数据形态。它通常用于配置文件,与属性文件相比,YAML文件就更加结构化,而且更少混淆。可以看出YAML具有分层配置数据。 25题 Spring Boot有3种热部署方式: 1.使用springloaded配置pom.xml文件,使用mvn spring-boot:run启动。 2.使用springloaded本地加载启动,配置jvm参数-javaagent:<jar包地址> -noverify。 3.使用devtools工具包,操作简单,但是每次需要重新部署。 用

游客ih62co2qqq5ww 2020-03-27 23:56:48 0 浏览量 回答数 0

回答

FAQ: LNAMP是不是比LNMP更费内存? LNAMP中处理PHP程序的是Apache,LNMP处理PHP程序的是PHP-FPM,这二者占用的内存是差不多的。 LNAMP为什么会比LNMP更稳定? 原因同上,Apache是全世界流行了十几年的服务器程序,稳定性自然不在话下,而PHP-FPM是以PHP解释器引擎本身添加进了“服务器”的功能特性实现的,尤其在大负载情况下差异更为突出。 LNAMP为什么会比LAMP更高效? LNAMP中处理静态请求的是NGINX,LAMP中处理静态请求的是APACHE。 NGINX主要是以多线程的方式工作的,也就是它只需要一个进程,就可以处理大量的并发请求。而APACHE是以进程的方式工作,每处理一个请求,就需要占用一个进程。进程和线路的区别应该不需要多解释了。 APACHE也可以使用线程的方式,但是这样的话,它处理PHP解析也会同样使用多线程,流量稍高点的环境中会严重影响稳定性。 为什么不带面板? 原因1:本人不擅长写WEB程序。 原因2:任何带有面板的环境套件,对环境本身的修改都有很大的限制,比如流量达到几万IP的时候,你再想优化下环境,一旦有些配置你修改了,就可能会导致面板出问题。 ------------------------- Re:Re 引用第8楼imhua于2014-02-15 23:27发表的 Re : 以后可以考虑升级脚本,比如升级php,nginx等 在计划中 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第10楼xinde于2014-02-16 10:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装过程有错误 make[2]: *** No rule to make target `/usr/lib/libcurses.so', needed by `client/mysql'.  Stop. make[1]: *** [client/CMakeFiles/mysql.dir/all] Error 2 make: *** [all] Error 2 ....... 发行版,版本号,位数,这些能否提供下? 方便的话最好能PM下IP和密码。 错误是因为缺少 libcurses这个库,不同的系统里名字可能会不一样。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第13楼zikercn于2014-02-16 14:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : ln: creating symbolic link `/usr/bin/resolve_stack_dump': File exists /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' Error Occured! ....... 之前安装过一次了吧?再安装的话应该先重装系统。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第15楼金融之王于2014-02-16 21:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :   现在安装PHP选择5.5,那以后PHP官方出5.6、5.7版本,怎么升级? yum -r install php或 yum update php 应该都行不通吧? ....... 第一,未来会加上升级的选项 第二,不要为了升级而升级,除非网站程序对新版功能有明确要求,或者为了修复漏洞。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第21楼haibin00于2014-02-18 23:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 整个服务怎么重启?我安装好后,从新启动了一下服务器,整个lanmap就不能用了,怎么把这些服务都启动尼? 一些常规的指令最好发出来,新手不太懂 具体的系统版本是什么? ------------------------- Re:回22楼服务器之家的帖子 引用第23楼haibin00于2014-02-19 01:04发表的 回22楼服务器之家的帖子 : Debian 6.0.6 64位 安装完,还把php升到5.4了,但我在控制台重启了服务器就不能用了 方便的话IP和密码PM给我看下 ------------------------- 回 25楼(haibin00) 的帖子 密码是错的,你加我QQ吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第28楼天之城于2014-02-20 13:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 怎么安装支持curl 已经支持了,不需要再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第30楼天之城于2014-02-23 00:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后,有没有单独升级php版本的 暂时没有,以后会考虑增加这个功能。 ------------------------- 引用第32楼1351edu.com于2014-02-23 10:20发表的  : [attachment=49180] 我的装了后,发生502错误。 请联系签名的QQ ------------------------- 回 35楼(天之城) 的帖子 passwd www ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第37楼salesparty于2014-02-24 17:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpMyAdmin Version information: 3.3.10.5, old enough. 3.4版本之后开始大量使用AJAX,随之而来的是一堆BUG,以至自己带了一套BUG提交机制。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第39楼yipoo于2014-02-25 15:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看起来很好,晚上安装测试下效果 欢迎反馈意见建议~ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第42楼javin于2014-03-01 11:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 数据库的安装信息在哪里? 安装完会在屏幕显示,同时会保存在/root/setup.txt 。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第46楼thorbj于2014-03-02 14:21发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我的服务器突然遇到能ping通但是网站打不开的问题,请问能不能帮忙分析一下可能是什么原因。LAMP重新安装不行,服务器重装都不行 签名里有QQ ------------------------- Re:回47楼服务器之家的帖子 引用第49楼thorbj于2014-03-02 19:36发表的 回47楼服务器之家的帖子 : 这种服务是怎么收费的,必要时候还真感觉需要你们的帮助 依难度和需要的时间而定。需要的时候可以联系我QQ。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第51楼自言自语于2014-03-03 17:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : MySQL是什么版本? 5.5系列最新版 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第53楼自言自语于2014-03-03 18:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我看到安装完以后的FTP根目录是: /home/www/ 请问应该把数据盘挂载到哪个目录下? /home/www/ ------------------------- 回 57楼(马丁) 的帖子 是什么系统? ------------------------- 回 59楼(vagh) 的帖子 service mysqld stop chkconfig mysqld off 上面两个命令让它不启动就行了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第67楼天之城于2014-03-08 09:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 低配云服务器CentOS 6.3 64位,1核512M内存,在编译php 的时候出现内存不足 virtual memory exhausted: Cannot allocate memorymake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 改了下,500M以下内存不编译fileinfo模块了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第70楼幸福黄金于2014-03-14 10:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql、apache、nginx、php 能不能自定义安装路径 这个没什么必要,编译安装的软件放到/usr/local/是比较规范的做法。 如果一定要修改,先把脚本下载回来,修改编译参数中的PREFIX即可。 ------------------------- Re:回71楼服务器之家的帖子 引用第72楼amoslee于2014-03-14 19:52发表的 回71楼服务器之家的帖子 : 楼主,同样出现67楼的问题,解决一下 能否PM下IP和密码我检查下? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第74楼hun于2014-03-14 23:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 官方低配能用此环境不,装完占多少内存? 1,能用 2,在合理的范围内,开的APACHE进程越多,配的MYSQL缓存越大,用的内存越多,支撑的访问量越大。一般这么问的人都以为占的内存越少越好,这个以后有时间会开个帖子写一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第76楼amoslee于2014-03-15 12:42发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error Occured! Current Work Dir: /tmp/dir/php-5.5.10 Command: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第78楼酷酷机器猫于2014-03-16 18:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主 你好。 我装好了,但是有个问题,我文件是二进制上传的,但是安装网站时显示不是二进制上传的。 在用其他一键安装包时没这个问题。 最简单的办法,打包上传然后解压缩。 我现在试过好几种上传方式都不行,是不是哪里设置有问题,帮忙回答下 非常感谢 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第80楼酷酷机器猫于2014-03-16 22:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 谢谢 LZ 上个问题解决了。 请问下有没有查看mysql ftp 帐号密码的命令?   类似: cat account.log cat /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第83楼灰色状态于2014-03-17 18:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你这个和军哥的LNMP比起来,如何? 都在一楼写过了 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第85楼灰色状态于2014-03-17 20:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问适合最低配置,1核,512M内存的使用不??? 可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第88楼不要作死于2014-03-18 01:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : echo '/dev/xvdb1  /home/www ext3    defaults    0  0' >> /etc/fstab 挂载数据盘到/home/www的命令是不是这样? ....... 文件内容不正确 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第91楼智子于2014-03-28 15:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php可以选择,apache和mysql还有nginx这三个软件默认是什么版本 apache 2.2.x最新稳定版 mysql 5.5.x最新稳定版 nginx最新稳定版 安装程序会抓取官方数据分析版本和下载地址 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 具体是什么错误? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第99楼aa65535于2014-04-02 13:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Debian系统下无法使用 这种需求相对来说很小众,如果不需要MYSQL可以设置下不运行这个服务即可。 service mysqld stop chkconfig mysqld off ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第96楼阿莱于2014-04-01 14:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装的时候没有提示,不能让用户选择哪些装哪些不装。 ....... 安装的服务都在/usr/local/目录下,启动脚本在/etc/init.d/目录下。 建议关闭服务即可,没有必要删除文件,占用的硬盘不是很多。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第95楼坤叔于2014-03-31 20:33发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 环境组件官方源太慢了,强烈要求换成国内可靠站点镜像,或者server110自己的服务器! 安装程序会自动分析官方网站上的最新版本的下载地址,如果使用其他下载的地址不方便安装到最新版本。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第97楼lisso.me于2014-04-01 16:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : PHP 似乎没有启用PDO支持,请问如何启用? 感谢反馈,安装脚本里已经添加了相应的编译参数。 [attachment=51113] 如果不想重装的话,可以参考下这个链接 http://www.server110.com/php/201404/8711.html 注意下路径有可能不同。 ------------------------- Re:回101楼服务器之家的帖子 引用第107楼aa65535于2014-04-02 16:56发表的 回101楼服务器之家的帖子 : 一直循环出现这个错误: [code]gzip: /tmp/dir/mysql-5.5.37.tar.gz: No such file or directory tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors ....... 你系统里设置的源没有axel,能否PM IP和密码我查看下。 如果只想解决问题的话,自己先安装上axel即可。 晚些时间我会修改下脚本在debian和ubuntu都用编译方式安装axel。 ------------------------- Re:ReRe回101楼服务器之家的帖子 引用第109楼aa65535于2014-04-02 17:35发表的 ReRe回101楼服务器之家的帖子 : 已经PM 发现了点问题,如果方便的话,能否重新装一下这个系统再提供下密码,感谢。 ------------------------- Re:ReReReRe回101楼服务器之家的帖子 引用第111楼aa65535于2014-04-02 19:35发表的 ReReReRe回101楼服务器之家的帖子 : 已经PM了 依赖关系的路径还有点问题,建议你先用CENTOS安装下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第113楼蓝昼于2014-04-03 15:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 亲啊,不能搞个国内分流吗?这速度下到猴年马月啊,从中午11点半装到现在了~下午三点了。。。 这效率太差了,早丧失一键安装的意义了! ....... 恩,我也体会到了,这几天就会调整为在server110.com的服务器上下载。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 能否PM下IP和密码? ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第116楼漫步西溪于2014-04-03 17:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装楼主方法一键安装了环境,应该PHP5.2,如果要换成其他版本的PHP,怎么操作? 我是纯粹业余,不懂技术,还望楼主详细指导下 目前安装程序还不能更换PHP版本,最简单的方法就是重新安装一次。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第120楼blucejum于2014-04-03 21:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 显示说需要安装好几天才能装好。。。 这几天会修改为从www.server110.com的服务器上下载安装程序 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第115楼haha231于2014-04-03 17:06发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Current Work Dir: /tmp/dir/php-5.4.26 Command: make -j 1 && make install Error: ....... 问题已经修复,帐号密码在/root/setup.txt,也可以再重装下。 ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第126楼坤叔于2014-04-04 09:46发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 需要怎么操作啊?没经验,还望详细解答 先重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第130楼haha231于2014-04-05 15:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装的ftp是什么版本啊,装在哪里,在哪里改设置? /etc/proftpd.conf 这个一般没必要修改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第133楼坤叔于2014-04-09 20:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问,为了便于今后管理升级等,若是主机两个盘(系统+数据),怎么设置系统和环境等放在系统盘,而网站数据在数据盘? 如果不经过额外的操作,环境 是安装在系统盘上的。 网站的目录设置在/home/www/,如果有数据盘,就挂到这个目录上。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第135楼漫步西溪于2014-04-10 01:17发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我也遇到这样的问题。 就按照楼主的站点案例: 1、数据盘挂的是/home/www/目录?而不是/home/www/server110.com/目录? 2、还有,是必须要先挂载数据盘、再site建立站点么?还是顺序先后不影响的? 3、另外,如果我有两个独立的网站数据放在数据盘,又该怎么操作? 1, /home/www/ 2,先挂载会省事些。如果是后挂载,先把 /home/www/下面的文件全部转移走,挂载硬盘后再移回来。 3,/home/www/a.com,/home/www/b.com。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第138楼坤叔于2014-04-11 00:55发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问我按照你的一键安装了环境组件后,能不能使用AMH面板的? 因为我不知道AMH面板是默认自动安装环境组件的, 还是说可以在已经安装环境组件的主机上可以使用 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第141楼水芳网络于2014-04-12 22:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,你这个一键安装,装了phpMyAdmin,但是我不想用phpMyAdmin,请问怎么卸载或者删除啊?先谢谢楼主了 rm -f /usr/local/nginx/conf/extra/phpMyAdmin.conf rm -f /usr/local/httpd/conf/extra/httpd-pma.conf rm -rf /usr/local/app/phpMyAdmin/ service nginx restart service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第143楼漫步西溪于2014-04-13 01:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=51492] 老板,这是什么情况? 环境是CentOS系统,按照1楼方法,PHP选择了5.5的, ....... mkdir /home/www/default/ mkdir /home/www/logs/ chown -R www.www /home/www/ service httpd restart ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第148楼水芳网络于2014-04-14 08:51发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,这个一键安装默认安装的mysql是MyISAM引擎,而且不支持InnoDB引擎,有没有必要修改? 如果你要用的网站程序明确要求使用 InnoDB需要在/etc/my.conf里把禁止innodb的选项删除 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第151楼贴息网于2014-04-14 12:44发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,按照你的步骤安装了,想问问,如何设置伪静态啊?就是把网站所有.php后缀的换成.html后缀的? 和apache环境的一样,用.htaccess。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第155楼samyang于2014-04-17 14:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装好后php的配置php.ini在/etc/下么,修改保存之后重启nginx么 重启apache ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第158楼酷酷机器猫于2014-04-18 17:31发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,请问下, 如何配置网站日志?     按照这个教程弄好后  /home/www/logs/ 下面是空的,是不是哪里需要设置或者开启? /usr/local/nginx/conf/vhost/ ------------------------- 回 169楼(haibin00) 的帖子 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第168楼koki于2014-05-06 12:01发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 有个问题想问,安装好环境以后,我添加了xxx.com域名,相应得建立了文件夹,但是目前备案没下来,只能用ip访问,但是 ip访问得路径是/home/www/default/ 修改哪里让 ....... /usr/local/nginx/conf/nginx.conf /usr/local/httpd/conf/extra/httpd-vhosts.conf ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第181楼风沙渡于2014-05-23 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主,我按你说的方法,安装后显示“Congratulations! Your Installation Is Complete.”,这样应该是成功了吧?在setup.txt里有phpmyadmin跟FTP信息,可这两个都用不了的,管理地址打开是错误页面的?分配的FTP连接超时,这个环境只能用在阿里云吗? 未知厂商的主机,由于系统模板的情况各种各样,有可能会出错,脚本一直在不停的改进兼容性,但这是一条没有头的路。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第189楼鑫森炭业于2014-06-11 10:15发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : php版本5.2.17,不能做个升级的嘛 暂时没有添加升级版本的功能,安装的时候可以指定版本,安装后就不能改了,暂时是这样。 ------------------------- Re:回190楼服务器之家的帖子 引用第191楼鑫森炭业于2014-06-13 09:05发表的 回190楼服务器之家的帖子 : 谢谢回复。我在安装的时候,并没有看到有设置php版本的地方啊? 那么,我现在卸载后再重新安装,哪里有提示设置php版本?谢谢! 仔细看一楼的帖子 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第193楼captaincoco于2014-06-13 09:56发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何添加二级子域名。。。。 和一级域名一样 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第195楼0971net于2014-06-14 23:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 网站日志怎么启动?在哪里查看 /usr/local/nginx/conf/vhost/域名.conf     #access_log /home/www/logs/域名.log nginx_log;     access_log off; 上面一行注释去掉,第二行删除。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第199楼666ydcom于2014-06-18 11:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装时选了php5.5的,现在想用回php5.3怎么做啊??急!急! 如果还没部署网站,可以先重装系统,再安装。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第200楼videotx于2014-06-18 14:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 看了下代码, 不错! 特别是download_file 递归处理, 很机智 多谢支持! ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第201楼大家看于2014-06-18 16:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我想请问下  Nginx 和 Apache 的最大连接数 上 怎么 算的呢 据我所知Apache 的最大连接数很小 NGINX 的连接数 到时随着配置的提升可以扩展 但是这么搭配 连接数是算 Apache 的 还是 Nginx 的 呢 我是新手 只是简单 问下 我不明白的 所以哪里有不恰当的地方 请多多包涵! Nginx处理请求用的是线程,所有静态和动态请求都会先经过Nginx,动态请求再由Nginx转发给Apache去处理,每一个动态请求在处理期间会占用一个Apache进程,所以影响比较大的是Apache的进程数量。 ------------------------- Re:回204楼服务器之家的帖子 引用第206楼多久啊看于2014-06-19 16:24发表的 回204楼服务器之家的帖子 : 老大 实在没有办法了 虽然试用 很好 但是 我主站用的PHPCMS 开伪静态以后 连连出错 或许是没研究明白吧  连页面都打不开了 没办法 看来 我还得用回去啊 不过真心觉得是不错! 不会是伪静态代码写错了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第213楼多久啊看于2014-06-20 18:39发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我查找了一下 貌似没有mod_rewrite模块  要手动安装 但是我又不怎么会 好像要重新安装 Apache  才可以 rewrite模块默认已经加载 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第211楼医学生团队于2014-06-20 15:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么用"www"这个账号连不上ftp,我用root这个用户就能连接上 错误提示是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第217楼datassss于2014-06-22 00:00发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果想要改所有log的位置该怎么做? apache、php、nginx等的配置文件位置在哪里? http://www.server110.com/linux/201406/10673.html ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第219楼求知心切于2014-06-25 10:20发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 哥,mysql的初始密码是多少啊 /root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第221楼求知心切于2014-06-25 17:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我修改了nginx的nginx.conf配置文件,但是还是访问那个主页呢,我想访问我的主页应该怎么办,楼主,求解   看一楼的帖子,不熟悉的东西不要乱改。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第223楼求知心切于2014-06-26 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 但是我按1楼的办法设置了,然后访问了ip,一直都是显示你的那个主页,我看已经有我写的文件夹,而且文件夹下面我已经放了代码了,但是就是访问不到我文件夹里面的东西,一直都是跳转到你们设置的default文件夹下的index了,我想要跳转到我的那个文件夹,应该怎么弄?我的命名不是你那个,这个有没有关系?[attachment=54955] 按这个操作一次 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第225楼joseph_lei于2014-06-26 10:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何增加多域名访问一个站? 按一楼的操作,多绑定一次 ------------------------- Re:回222楼服务器之家的帖子 引用第224楼求知心切于2014-06-26 09:11发表的 回222楼服务器之家的帖子 : 还有听说80端口可能要禁了,但是我看nginx的端口都只开了80的,这个可以手动加其他端口上去吗,不能的话80真的禁了的时候应该怎么处理? 第一,有备案,封80不可能 第二,端口写在配置文件里,可以改 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第231楼0971net于2014-06-27 17:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : CentOS-6.5 64位   兼容吗 一楼里测试过的意思就是安装成功,这也要解释,真无语了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第233楼邻居王大爷于2014-06-27 21:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 按照你说的,都安装成功了,但是在我安装wordpress程序的时候那个数据库始终链接不上,试过localhost、127.0.0.1:1000、ip:1000、这些地址都试了,还是链接不上去,求解决..[attachment=55171] 1000是phpMyAdmin的端口,不是MySQL的端口,安装网站程序不要把这个端口加上,地址用localhost。 ------------------------- Re:回234楼服务器之家的帖子 引用第235楼邻居王大爷于2014-06-28 08:54发表的 回234楼服务器之家的帖子 : 数据库地址几乎都试过了,localhost也试过了,会出现502错误,我用你这个教程装了4遍了,前两遍没仔细看清帖子,是带环境装的,不能用,第三遍纯净安装的,成功了,然后数据库连接不上,以为是安装错误,就又重装系统,重装了一遍这个环境,结果还是出现这个问题。另外,我没有绑定域名,绑定的是ip,还有也试过用我其它服务器上的数据库地址,要么不成功,要么出现502。该怎么解决? [attachment=55176] 是阿里云吗 ------------------------- Re:回236楼服务器之家的帖子 引用第237楼邻居王大爷于2014-06-28 11:58发表的 回236楼服务器之家的帖子 : 不是阿里云 我也不好意思在这里问啊...centos6.5的 纯净版 IP和密码PM给我,我一会要出去,回来给你看下。 ------------------------- Re:回238楼服务器之家的帖子 引用第239楼邻居王大爷于2014-06-28 15:14发表的 回238楼服务器之家的帖子 : 密码发给你了,系统重装了一遍,又安装了一次你这个环境,暂时没有绑定网站,现在一切都是全新的,系统是centos 6.5的,你先安装个wordpress试试,看看能不能成功... Segmentation fault,无解,换成PHP5.5可以安装了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第242楼求知心切于2014-06-30 14:40发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 楼主大人,我按照你的方法安装了,安装之后访问是没有问题,访问的是你们的那个主页,但是我用那个site弄了我的程序进去之后访问的还是你们的主页,是需要加端口吗,还是说需要其他什么配置呢,我是site-》1  然后ortv3.COM,在home/www下面找到这个目录,然后在这个目录下面新建了一个index.php,但是访问的一直都是你们那个主页,请教 写的太乱了,估计是基本的使用都不懂,我说的使用是LINUX,不是LNAMP,慢慢学吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第244楼求知心切于2014-06-30 15:26发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我就是在centos下面按照您的方法安装了您配置的lanmp啊,安装完之后在windows网页访问linux地址是可以打开你的那个主页,但是我再按照你的方法(site)添加了新的站点,在新站点文件夹里面新建了另一个主页的页面,访问linux的ip地址时候的时候还是访问你的那个主页,没有访问到我的那个站点的主页,明白否? 你访问IP,就是那个页面,建不建新站点,它就在那里。 ------------------------- Domains: 这里可以域名也可以用IP,但是不能用IP+目录 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第251楼大家看于2014-07-05 20:45发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天安装了两遍 一直提示 collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1 Error Occured! ....... 前面的信息也发出来 引用第252楼大家看于2014-07-05 20:47发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 而且我还想请问 数据库 可以单独 提供下载 安装么 你这个数据库 我之前 安装成功调试的时候 测试过 最大连接数 是可调的 不像 其他的 都调不了 无论初始配置是多大 都变不了 而你这个可以! 不能 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第255楼大家看于2014-07-06 10:57发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 今天又安装了一遍 还是 一样! IP和密码PM给我 ------------------------- Re:回256楼服务器之家的帖子 引用第258楼多久啊看于2014-07-06 11:45发表的 回256楼服务器之家的帖子 : IP 用户名 以及密码 已发! 测试了下,应该是你前面安装的环境导致的,先重装系统再安装。 ------------------------- 回 262楼(多久啊看) 的帖子 没影响 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第273楼长剑耿介于2014-07-22 00:35发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=56935] 难道我打开方式不对? 如果要用手打,请看清每一个字符。看不好请用复制粘贴。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第276楼zhouyun于2014-07-23 00:18发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57007]为什么我安装screen的时候会报这个错?求大神解释 试一下apt-get update -y ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第280楼neutrino于2014-07-23 12:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 想删除就是/etc/init.d/下的nginx httpd ftp mysql,然后删掉/usr/local里的文件夹就行了? 最好重装系统 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第283楼ap5114i1j于2014-07-26 03:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=57290] 出错了。 ....... yum list *ssl* 命令结果帖一下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第285楼zong于2014-07-26 11:32发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : yum install php-pear 安装后,PHP版本回到php.5.3.3了。 不能这么玩,重装系统吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第288楼f2c-1于2014-07-26 22:27发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个安装脚本执行时间太长了,安装Mysql是源码安装,有必要吗? yum install mysql-server不就行了吗? 各有所爱 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第296楼shuangyutv于2014-08-01 13:59发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysql可以用navicate远程登录嘛?需要做什么修改? 添加一个主机为任意主机的管理帐号,安装后的root帐号只能从本地登录。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第298楼shuangyutv于2014-08-02 02:25发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问一下楼主,我的网站是用Yii框架写的,部署在这个环境下,伪静态怎么设置啊? 我看你教程里面写的是“通过.htaccess文件设置,将规则代码写入到.htaccess文件后,上传到网站根目录即可”,但是我把以前放在LAMP环境下的.htaccess文件我传到根目录下就自动不见了。我想请教一下伪静态的具体配置方法 请说一下在哪里看到它自动不见了 ------------------------- Re:回299楼服务器之家的帖子 引用第301楼shuangyutv于2014-08-02 10:51发表的 回299楼服务器之家的帖子 : [attachment=57837] 附上.htaccess文件 看起来没什么问题 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第304楼啄木网于2014-08-03 20:03发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : phpmyadmin提示链接表的附加功能尚未激活。要查出原因,请点击此处。 好像要修改文件?菜鸟想问下linux里怎样修改啊…… 这个可以不用管,不影响使用,如果一定要管,百度下。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] ....... 把Nginx日志打开,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第309楼何林江于2014-08-05 09:36发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我补充两张图,显示%wa一直很高,最高的时候居然到了99.7%,但我的网站现在几乎都没流量,暂时都只有自己知道,两个站点用的是wordpress,另外一个是dedecms,并且也没什么定时任务之类的 [attachment=57960][attachment=57961] .......    前面回过好像没了,再给你回一次吧。 第一个问题,务必添加swap。 http://www.server110.com/linux/201310/2924.html 第二,开Nginx的日志,再出问题看日志。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第315楼may111于2014-08-08 11:38发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : [attachment=58217] 这是什么问题 显示502错误,访问phpmyadmin也是502 /usr/local/httpd/conf/httpd.conf,94行 你给改了吧 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第318楼horek于2014-08-09 10:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您的LNAMP怎么打开phpMyAdmin 麻烦您告知一下 谢谢了 看/root/setup.txt ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第321楼xiaoxialone于2014-08-10 04:04发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好。楼主。环境已经配置成功,一开始安装WORDPRESS的时候会提示502 然后就直接改了配置文件,安装成功了。 但是问题wordpress打开插件以及外观两个选项会跳502错误。还请楼主指教下。 http://bbs.aliyun.com/read/164642.html ------------------------- 11111111 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第332楼11号猫弟于2014-08-16 21:49发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 我之前使用的这一套脚本,安装完以后使用了一段时间,挺好用的,但是现在我需要在我的服务器上部署gitlab,还是用域名指向的这个ip,但是被这个脚本拦截到了默认路径,这个时候要怎么做才能让该域名绕开这个脚本呢? 把域名绑定到要用的目录上 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第338楼kagami于2014-08-22 09:09发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 为什么我安装不了呢 连不上server110 你的IP是什么 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第339楼黄靖于2014-08-23 14:29发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如何将默认的404页面改成自己的404呢 用.htaccess设置,百度下代码 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第345楼ylopt于2014-08-26 10:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 刚刚安装了,怎么就显示502呢 下载文件的服务器正在重装系统,等下再装吧。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第353楼00星辰00于2014-08-29 22:19发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 :      请教下 是不是这个环境只能添加一个站点  添加了3个站点只有第一个生效可以访问 后面2个都是报错    没有限制 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第359楼007互联于2014-08-31 15:12发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装完之后www登陆FTP登陆不了是什么原因? 看错误提示 ------------------------- Re:回 119楼(服务器之家) 的帖子 引用第361楼灬兵于2014-08-31 19:16发表的 回 119楼(服务器之家) 的帖子 : 楼主指的是重新安装脚本程序 还是单独安装自己想要的PHP版本。 先重装系统再执行安装脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第367楼debao.wang于2014-09-03 12:30发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 如果网站没有采用静态化处理,是php写的动态网站,那么LNAMP相比LAMP优势就不那么明显了。 显然你没有搞明白访问一个网页时这其中最其本的技术原理。 以Discuz官方论坛为例,一次浏览器访问,产生的HTTP请求约60次,动态请求只有2次,剩下的全部都是静态请求,这些静态请求对于Nginx和Apache的资源消耗是天壤之别。 [attachment=60415] ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第369楼dj电音吧于2014-09-03 14:43发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 安装了脚本基本上很顺畅,现在有个问题出现,就是大附件上传出现servers(io)error Nginx和php都设置了支持上传最大512m上传100m以下的就成功,大于的就出现错误。PHP几项的设置应该没问题的。不知道ngunx和apache哪还有会影响文件上传的。请指教!另外我试过设置nginx的一项连接时间为600秒,出现上传进度1%到10%左右会进度弹回1%重复几次后才出现以上错误!请大神指点迷津啊! 只从这些信息的话,判断不出来。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第388楼hap于2014-09-18 08:34发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : Error: configure: warning: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 (found: 3.0.2). configure: warning: flex versions supported for regeneration of the Zend/PHP parsers: 2.5.4  (found: 2.5.35) configure: error: freetype.h not found. ....... CentOS yum install freetype-devel Debian apt-get install libfreetype6-dev ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第390楼timedia于2014-09-19 12:46发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 装好也设置好,未提示任何错误 但ftp、站点均无法访问 哪个系统版本?哪个PHP版本? ------------------------- Re:ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第394楼timedia于2014-09-22 11:04发表的 ReReRe阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : centos 6.5 PHP 5.3 5.4 5.5 都试过。。。 ps auxf命令结果帖一下 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第400楼eingxin于2014-09-24 15:23发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 话说这个环境那都好,就是跑Discuz 3.2的时候出现图片缓存,怎么都不刷新。快疯掉了 帖个网址看看 ------------------------- Re:回楼主服务器之家的帖子 引用第403楼百般幸运于2014-09-26 09:56发表的 回楼主服务器之家的帖子 : 支持内网安装么? 需要外网下载文件 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第405楼gudianbook于2014-09-27 08:07发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : mysqladmin -u root password '  命令失败  mysqladmin -u root password ' service httpd start  不行 Starting httpd: (98)Address already in use: make_sock: could not bind to address 127.0.0.1:8080 no listening sockets available, shutting down ....... 安装后不需要再执行mysqladmin,你应该还做了一些其他不应该做的操作,具体是什么就不得而知了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第406楼wjw8801于2014-09-29 22:24发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 问个小白问题:最后那个SIte命令可以建站的是什么工具里有的命令? 这个是我自写的管理脚本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第409楼stanper于2014-10-03 11:52发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 你好,请问安装完后,phpmyadmin目录在什么位置? /usr/local/app/phpMyAdmin/ ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第412楼wjw8801于2014-10-06 17:48发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 这个可以手动升级Mysql和nginx还有httpd吗? 只要会搞就OK ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第415楼wide于2014-10-09 23:41发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请教问题: 采用阿里云,为了规避防火墙只能对外使用80和8080端口访问的限制。 将ssh端口从22改用8080。 在更改之前查看了 webcache 监听用 8080 端口,例如: /etc/services:webcache    8080/tcp            # WWW caching service ....... 为了规避防火墙只能对外使用80和8080端口访问的限制,这条不而立,出发点就错了。 ------------------------- Re:回楼主服务器之家的帖子 引用第420楼p584578656于2014-10-11 19:10发表的 回楼主服务器之家的帖子 : 你好,请问一下,网站日志在哪个文件夹?我在FTP里面没有看到有生成的访问日志啊   默认没有记录日志,需要的话看一下Nginx配置文件。 ------------------------- Re:回421楼服务器之家的帖子 引用第422楼p584578656于2014-10-12 09:24发表的 回421楼服务器之家的帖子 : 需要修改配置文件来生成日志吗?Nginx和Apache都需要修改吗? 只需要修改NGINX,网站的配置文件里已经有代码了,但是默认被注释掉,把注释去掉就可以了。 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第429楼xiumuzjq于2014-10-26 21:58发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 您好,我安装了php5.3的脚本但现在因为想装个swoole扩展,要求至少5.3.10的php版本,请问大神,这个可以升级吗?该怎么操作 你可以用php -v看看现在的版本 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第461楼富余劳动力于2014-11-07 11:13发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问大神 这套东西,不是阿里云可以用吗? 我们公司自己租的那种服务器能装吗 大部分都可以 ------------------------- Re:Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 引用第511楼高山流水于2014-12-22 10:05发表的 Re阿里云LNAMPLinuxNginxApacheMySQLPHP环境一键安装脚本 : 请问如何开启服务器的gzip压缩呢?是不是Nginx和Apache都要改配置,还是只需要改一个?新手不太懂 还有,建议找个地方开一页FAQ,我把这帖子35页翻了一遍,好费劲啊…… [url=http://bbs.aliyun.com/job.php?action=topost&tid=151729&pid=600353][/url] 默认已经开启了gzip,不需要改动。

云代维 2019-12-02 02:41:55 0 浏览量 回答数 0

问题

ECS-CentOS  /etc/fstab格式简介

ethnicity 2019-12-01 21:03:38 10993 浏览量 回答数 1

回答

错误代码651意思为您的调制解调器(或其它连接设备)报告了一个错误。既未找到指定的端口。解决办法:1、远程访问记事簿文件和当前的“网络和拨号连接”配置可能不一致如果更改了通讯设备(例如:串行口或调制解调器),请确保重新配置“网络和拨号连接”。如果错误仍然存在,请删除并重新创建“网络和拨号连接”。2、win7 错误代码651,路由能上,拨号上不了试一下:打开 windowssystem32logfileswmi,双击打开wmi再打开里面的RtBackup 会提示你需要管理员权限 继续 重启,即可修复。3、不行的话把wmi里的后缀为etl的文件删除包括RtBackup里的 重启4、如果上面的都不管用的话那尝试一下,禁用本地连接-关机-检查猫的所有插头拔下重插-拔下猫的电源插头-等待2分钟 之后插上插头-开机。5、最后一招先从别的能上网的系统的机子里复制下面这个文件 c:windowssystem32driversraspppoe.sys 来替换你电脑里的这个文件。宽带连接错误691(由于域上的用户名或密码无效而拒绝访问)/错误635(未知错误)的处理流程如下:(1)用户名密码填写错误(2)如果用户帐号密码填写无误,则进入下一步继续处理;建议重建拨号软件(如果不懂装拨号软件,可参考户重新):?如果重装拨号软件后正常,原因为“拨号软件丢失”;?如果重装拨号软件后故障依旧,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误691错误691真正意义上来讲:1:域上名出现错误,(用户名或密码输入错误)。2:服务器无反映,(机房用户端口错误,或帐号未被激活)。3:电话或宽带到期欠费造成。出现错误691的原因1.电信限制了你帐户使用数目,比如你这个帐户可以4个人用,现在4个人在用,你拨号就是错误6912.你在用完后没断开,至少服务器那边还是没断开,以为你还在用,和上面情况类似,所以错误691建议:每次关机的时候在宽带连接上右键,点断开出现错误691后不要一直死缠烂打拨号,等待个几分钟再试试,如果一直出现这种情况,拨打客服电话10010联通(10000电信/10050铁通),告诉工作人员你的电脑错误691上不了,然后她问“请问你的宽带编号多少”,告诉她你帐户,然后她有时问你开户的是谁,回答开户的是谁,然后过个几分钟她就会找人帮你搞定宽带连接错误691的解决办法之一解决ADSL莫名其妙的错误691问题工厂的办公室里有无线路由器,而家里新装了宽带,还没有买路由器,所以只跟哥共用一个ADSL帐号上网,一根网线在两台手提之间插来拔去的。但是让人郁闷的是,插在哥的手提上,都能连接上网络,可是插到我这台手提上总是提示错误691:用户名/密码错误。但是可以确定的是,我绝对没有把用户名或者密码输错,让我在拔号器与机子设置了好久也不行!!!郁闷......打10010询问,电信小姐坚持是我输错了,不是他们的问题。后来上网搜了一些相关的文章终于把问题解决了——原来电信把我的ADSL帐号和哥哥的提提网卡绑定了。解决方法如下:1、在大哥的手提机上运行(在“运行”中输入“cmd”可以调出命令行)中输入ipconfig/all命令,查看网络配置信息,找出本地连接里面的PhysicalAddress,记录下来。2、再进入我的本本中,进入设备管理器,在网络适配器里找到网卡,在网卡名称上用右键选择属性,进入“高级”选项卡,在左面的框中选中看到NetwotkAddress一项,选中右边的“值“,填入刚刚记录下来的MAC地址(不区分大小写,不要加“-”符号)即可。也许以后大家也会碰到,谨当学习!!!宽带连接错误623(找不到电话薄项目)步骤一:是否有防火墙或3721上网助手等软件,如有则建议退出(1)防火墙及3721上网助手后测试:如果故障解决,“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤二:指导用户检查网卡状态并拔插网线:(1)如果故障解决,故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:在条件具备情况下(有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议删除及,再重新后:(1)如果故障解决,为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:以上处理均无效或无法做简单的配合操作时,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告宽带连接错误678(远程计算机没响应):步骤一:检查MODEM信号灯是否正常,不正常重新启动modem。如果正常见步骤二。步骤二:询问用户是否有防火墙或3721上网助手等软件,如有则建议用户退出(1)防火墙及3721上网助手后测试:如果故障解决,故障原因为“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:指导用户检查网卡状态并拔插网线:(1)如果故障解决,则填写:故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:在条件具备情况下(用户有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议用户删除拨号软件及,再重新安装网卡驱动后安装拨号软件:(1)如果故障解决,则填写:故障现象为“拨号连接超时”,故障原因为“PC硬件问题”;(2)如果故障依旧存在,则进入步骤七继续处理;步骤五:判断MODEM后面电话线是否可用,分离器连接是否正确:(1)MODEM后连电话不能使用,而计费号的其他电话可以使用的,建议更换电话线,故障原因为“用户室内线故障”;(2)如果用户家计费号的所有电话都不可以使用的,则请拨打客服电话10010联通(10000电信/1005铁通)进行障碍申告。步骤六:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误645产生原因为拨号软件文件受损造成(常见于XP系统),处理流程如下:步骤一:在条件具备情况下(用户有拨号软件),建议重新装拨号软件:如果故障解决,故障原因为“用户软件问题”;如果故障依旧,则建议用户找电脑公司维修电脑系统,故障原因为“用户软件问题”;。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误720现象常见于XP系统,一般将系统重新启动,可拨多次,百分之九十都可以解决,处理流程如下:步骤一:建议将系统重新启动后再重新拨号上网:(1)如果故障解决,故障原因无(2)如果故障依旧,则建议用户还原系统或找电脑公司将系统格式化重装,重装后及时关闭系统自己更新功能。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误721(远程计算机没有响应)此现象多为USB接口Modem故障代码,可依据以下步骤进行处理:步骤一:判断MODEM信号灯是否同步,信号灯同步参照步骤二,信号灯不同步参照步骤三、四、五。步骤二:信号灯同步,则为用户协议选错(OA或OE),如若不行可电话10010联通(10000电信/10050铁通)进行申告步骤三:信号灯不同步,判断MODEM后面电话线是否可用,如果不能使用,而计费号的其他电话可以使用的,可建议用户自已换电话线,如果用户家计费号的所有电话都不可以使用的,如若不行可电话向客服电话10010联通(10000电信/10050铁通)进行申告。步骤四:检查分离器是否接反。宽带连接错误718现象,极少数为用户端问题:步骤一:建议首先重启计算机后拨号测试:(1)如果故障解决,故障原因无。(2)如果故障依旧或没法进行简单配合,可电话向客服电话10010联通(10000电信/10050铁通)进行障碍申告。字串5宽带连接错误734(PPP链接控制协议被终止)/错误735(请求的地址被服务器拒绝步骤一:建议重新启动电脑。步骤二:拨号软件出错,建议重装拨号软件,常见于XP系统的自带拨号。步骤三:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误769错误769:无法连接到指定目标。问题:这是指你电脑的网络设备有问题解决方法:打开“我的电脑”→“控制面版”→“网络连接”,查看本地连接的是否处在“禁用”状态,是的话只需双击本地连接,看到状态变为“已启用”即可。若是连本地连接都没有的话,那你的网卡100%有问题了——不是没装好就是坏了。请您联系您的电脑供应商,或者自己解决。也想每天收到这样的文章,免费关注微信号:FBI机密档案FBIsecrets长按英文复制。出现错误769的错误,大多数是网卡被禁用,启用即可!造成的原因一般为:用户的误操作或一些防火墙软件、计算机病毒引起的,很普遍。如果没有找到本地连接,一般是网卡的驱动程序丢了或计算机没有检测到网卡,可以重新安装即可错误原因:网卡被禁用解决方法:请您点击电脑右键,选择属性,再选择设备管理,再看网卡驱动程序情况,如果是个“x”说明网卡被禁用,点击右键激活网卡就可以解决。宽带连接错误769产生原因及解决方案宽带连接错误769产生原因通常,如果存在下列情况之一,您将收到错误769的信息:1.网络电缆已断开。2.调制解调器已禁用。3.调制解调器驱动程序已损坏。4.计算机上正在运行间谍软件,它妨碍了连接。5.Winsock需要得到修复。6.第三方防火墙软件阻止了连接。解决方案:要查找问题的原因,请按照下列步骤操作。步骤1:确保网络电缆已连接确保网络电缆分别连接到计算机和调制解调器。如果您的计算机连接到集线器或路由器,请确保将集线器或路由器连接到调制解调器的电缆已连接。步骤2:确保网络适配器已启用1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.右键单击“本地连接”图标。单击“启用”(如果该选项可用)。步骤3:重置调制解调器1.将从计算机到调制解调器的电缆断开连接。2.关闭调制解调器。如果调制解调器没有电源开关,请切断调制解调器的电源。3.等待两分钟。4.打开调制解调器,然后连接从计算机到调制解调器的电缆。步骤4:使用设备管理器,先卸载、然后重新安装调制解调器和驱动程序在按照这些步骤操作之前,您可能必须从硬件制造商那里下载网络适配器的最新驱动程序。1.单击“开始”,单击“运行”,键入sysdm.cpl,然后单击“确定”。2.单击“硬件”选项卡,单击“设备管理器”,然后找到“网络适配器”。3.展开“网络适配器”,然后右键单击网络适配器的图标。4.单击“卸载”,然后单击“确定”。在提示您删除与此设备相关联的文件的对话框中,单击“是”。5.重新启动计算机。或者,单击“操作”,然后单击“扫描检测硬件改动”。6.如果Windows找到设备但是没有识别它,您必须为网络适配器安装最新的驱动程序。步骤5:创建新的DSL或电缆连接1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.单击“网络任务”下的“创建一个新的连接”。当向导启动后,单击“下一步”。3.单击“连接到Internet”,然后单击“下一步”。4.单击“手动设置我的连接”,然后单击“下一步”。5.选择“用要求用户名和密码的宽带连接来连接”,然后单击“下一步”。6.执行其余的步骤。使用Internet服务提供商(ISP)提供的连接信息完成该向导。注意:您可能必须使用您的ISP提供的软件才能创建新的连接。步骤6:修复Winsock和TCP/IP1.单击“开始”,单击“运行”,键入netshwinsockreset,然后按Enter键。2.当命令提示符窗口闪烁时,请重新启动计算机。步骤7:临时卸载第三方防火墙某些第三方防火墙软件(如ZoneAlarm和NortonPersonal防火墙)在运行WindowsXPSP2的计算机上可能导致Internet连接问题。您可能必须临时卸载这些程序以测试计算机。要进行测试,仅禁用这些程序是不够的。请确保您有CD或安装文件以便可以稍后重新安装这些程序。如果问题是由这些程序导致的,则您可能必须与该程序的供应商联系,以获得关于设置该程序的帮助。注意:在删除第三方防火墙程序之前,您可能要验证启用了WindowsXP防火墙。百度百科上的一些:1、 错误代码718、619、691:属于帐号密码问题。A、用户输入帐号、密码时输错,让用户重新输入。B、 帐号到期,可去“IP综合系统”中查询帐号是否到期。C、帐号卡在网上:一般是用户下网时不断开网络连接或异常吊线所导致,可以让用户将猫和电脑的电源关闭10分钟以上再进行连接,一般可以解决。D、帐号被偷:与互联网项目部进行联系解决。2、 错误代码676:属于机房设备问题,可让用户连续多拨几次即可登陆。3、错误代码720:属于modem驱动设置不正确,主要为vpi、vci参数值设置不正确或者需要重新启动电脑。4、错误769: 此类错误原因是本地连接被用户禁用或者停用,主要出现在以太网猫的用户中,属于用户下网时错误断开网卡连接,造成网卡禁用,在“本地连接”中网卡启用即可。5、错误678:一般MODEM指示灯不正常,猫上的link灯闪烁(少数猫的link灯的英文标识为showtime),参照link不上的故障处理或让用户检查自身防火墙。如果MODEM指示灯正常,那故障的原因是电脑不能与MODEM建立连接,解决方法是将MODEM重启,如果还不行,最好重装系统,这种问题一般会长期出现。6、在Windows Vista Home Basic下经常会出现错误815.是网络端口问题.是由于网络供应商的网络断口连接性能.以及连接字段值不正确引起的.和系统一般无关再补个678:错误678,是宽带adsl拨号上网用户常常遇到的故障提示,简单地说就是网络不通了。宽带adsl拨号上网使用pppoe协议连接,通过电话线传输数据,使用adsl专用modem实现数据的调制解调,错误提示678的含义是,远程计算机无响应,意思是从计算机发出指令到网卡向外发送数据,包括电话线的传输,局端(电信局机房端)端子板的端口处理到返回数据到计算机的过程中数据传输出问题都会提示。解决方法1、首先确认adsl modem拨号正常,因为网卡自动获取的IP没有清除,所以再次拨号的时候网卡无法获取新的IP地址会提示678,操作方法是:关闭adsl modem,进入控制面板的网络连接右击本地连接选择禁用,5秒钟后右击本地连接选择启用,然后打开adsl modem拨号即可;2、如果第一步无效,则在关闭adsl modem的情况下,仍然禁用本地连接(网卡),重启计算机,然后启用本地连接(网卡),再打开adsl modem即可解决;3、如果上述步骤都无法解决,查看网卡灯是否亮,如果网卡灯不亮,参看派单知识库:“网卡灯不亮或经常不亮”的解决方案4、如果网卡灯正常1,2步无法解决则带领用户卸载网卡驱动,重装网卡驱动,如果用户xp系统按照:知识编号:9973,如何在WINXP下设置ADSL拨号连接 方法带领用户创建拨号连接,如果98系统建议用户安装Raspppoe软件或者EHERNET300软件连接即可。5、如果上述操作无效联系电信部门确认端口。6.adsl modem故障是主要原因。7.如果多台电脑使用路由器上网,可尝试将路由器拆除后连接Internt。若能顺利上网,则说明路由器故障,应排除路由器故障或更换新的路由器。8.如果是ADSL包年用户,在使用过程中如果出现这种情况,有可能是电话欠费,请咨询客户服务中心。有部分地区中国电信或中国联通用户,在电话欠费的情况下,电话可以打通,但是却无法上网,这时也有可能是电话欠费,因为现在部分地区的电信部门在用户电话欠费情况下,不是停止电话的使用,而是停止网络的使用。9.部分品牌Modem供电不足也容易造成错误67810.如果以上方法都不能解决您的问题,可以尝试一下adsl modem的reset按两三下再上试试。11.adsl modem设备损坏也会造成错误678,虽然从表面上看起来adsl modem运转正常,但是就是连接失败,笔者就曾遇到此类问题,最终换了一个新的adsl modem

独步清客 2019-12-02 00:44:12 0 浏览量 回答数 0

回答

错误代码651意思为您的调制解调器(或其它连接设备)报告了一个错误。既未找到指定的端口。解决办法:1、远程访问记事簿文件和当前的“网络和拨号连接”配置可能不一致如果更改了通讯设备(例如:串行口或调制解调器),请确保重新配置“网络和拨号连接”。如果错误仍然存在,请删除并重新创建“网络和拨号连接”。2、win7 错误代码651,路由能上,拨号上不了试一下:打开 windowssystem32logfileswmi,双击打开wmi再打开里面的RtBackup 会提示你需要管理员权限 继续 重启,即可修复。3、不行的话把wmi里的后缀为etl的文件删除包括RtBackup里的 重启4、如果上面的都不管用的话那尝试一下,禁用本地连接-关机-检查猫的所有插头拔下重插-拔下猫的电源插头-等待2分钟 之后插上插头-开机。5、最后一招先从别的能上网的系统的机子里复制下面这个文件 c:windowssystem32driversraspppoe.sys 来替换你电脑里的这个文件。宽带连接错误691(由于域上的用户名或密码无效而拒绝访问)/错误635(未知错误)的处理流程如下:(1)用户名密码填写错误(2)如果用户帐号密码填写无误,则进入下一步继续处理;建议重建拨号软件(如果不懂装拨号软件,可参考户重新):?如果重装拨号软件后正常,原因为“拨号软件丢失”;?如果重装拨号软件后故障依旧,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误691错误691真正意义上来讲:1:域上名出现错误,(用户名或密码输入错误)。2:服务器无反映,(机房用户端口错误,或帐号未被激活)。3:电话或宽带到期欠费造成。出现错误691的原因1.电信限制了你帐户使用数目,比如你这个帐户可以4个人用,现在4个人在用,你拨号就是错误6912.你在用完后没断开,至少服务器那边还是没断开,以为你还在用,和上面情况类似,所以错误691建议:每次关机的时候在宽带连接上右键,点断开出现错误691后不要一直死缠烂打拨号,等待个几分钟再试试,如果一直出现这种情况,拨打客服电话10010联通(10000电信/10050铁通),告诉工作人员你的电脑错误691上不了,然后她问“请问你的宽带编号多少”,告诉她你帐户,然后她有时问你开户的是谁,回答开户的是谁,然后过个几分钟她就会找人帮你搞定宽带连接错误691的解决办法之一解决ADSL莫名其妙的错误691问题工厂的办公室里有无线路由器,而家里新装了宽带,还没有买路由器,所以只跟哥共用一个ADSL帐号上网,一根网线在两台手提之间插来拔去的。但是让人郁闷的是,插在哥的手提上,都能连接上网络,可是插到我这台手提上总是提示错误691:用户名/密码错误。但是可以确定的是,我绝对没有把用户名或者密码输错,让我在拔号器与机子设置了好久也不行!!!郁闷......打10010询问,电信小姐坚持是我输错了,不是他们的问题。后来上网搜了一些相关的文章终于把问题解决了——原来电信把我的ADSL帐号和哥哥的提提网卡绑定了。解决方法如下:1、在大哥的手提机上运行(在“运行”中输入“cmd”可以调出命令行)中输入ipconfig/all命令,查看网络配置信息,找出本地连接里面的PhysicalAddress,记录下来。2、再进入我的本本中,进入设备管理器,在网络适配器里找到网卡,在网卡名称上用右键选择属性,进入“高级”选项卡,在左面的框中选中看到NetwotkAddress一项,选中右边的“值“,填入刚刚记录下来的MAC地址(不区分大小写,不要加“-”符号)即可。也许以后大家也会碰到,谨当学习!!!宽带连接错误623(找不到电话薄项目)步骤一:是否有防火墙或3721上网助手等软件,如有则建议退出(1)防火墙及3721上网助手后测试:如果故障解决,“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤二:指导用户检查网卡状态并拔插网线:(1)如果故障解决,故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:在条件具备情况下(有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议删除及,再重新后:(1)如果故障解决,为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:以上处理均无效或无法做简单的配合操作时,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告宽带连接错误678(远程计算机没响应):步骤一:检查MODEM信号灯是否正常,不正常重新启动modem。如果正常见步骤二。步骤二:询问用户是否有防火墙或3721上网助手等软件,如有则建议用户退出(1)防火墙及3721上网助手后测试:如果故障解决,故障原因为“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:指导用户检查网卡状态并拔插网线:(1)如果故障解决,则填写:故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:在条件具备情况下(用户有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议用户删除拨号软件及,再重新安装网卡驱动后安装拨号软件:(1)如果故障解决,则填写:故障现象为“拨号连接超时”,故障原因为“PC硬件问题”;(2)如果故障依旧存在,则进入步骤七继续处理;步骤五:判断MODEM后面电话线是否可用,分离器连接是否正确:(1)MODEM后连电话不能使用,而计费号的其他电话可以使用的,建议更换电话线,故障原因为“用户室内线故障”;(2)如果用户家计费号的所有电话都不可以使用的,则请拨打客服电话10010联通(10000电信/1005铁通)进行障碍申告。步骤六:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误645产生原因为拨号软件文件受损造成(常见于XP系统),处理流程如下:步骤一:在条件具备情况下(用户有拨号软件),建议重新装拨号软件:如果故障解决,故障原因为“用户软件问题”;如果故障依旧,则建议用户找电脑公司维修电脑系统,故障原因为“用户软件问题”;。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误720现象常见于XP系统,一般将系统重新启动,可拨多次,百分之九十都可以解决,处理流程如下:步骤一:建议将系统重新启动后再重新拨号上网:(1)如果故障解决,故障原因无(2)如果故障依旧,则建议用户还原系统或找电脑公司将系统格式化重装,重装后及时关闭系统自己更新功能。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误721(远程计算机没有响应)此现象多为USB接口Modem故障代码,可依据以下步骤进行处理:步骤一:判断MODEM信号灯是否同步,信号灯同步参照步骤二,信号灯不同步参照步骤三、四、五。步骤二:信号灯同步,则为用户协议选错(OA或OE),如若不行可电话10010联通(10000电信/10050铁通)进行申告步骤三:信号灯不同步,判断MODEM后面电话线是否可用,如果不能使用,而计费号的其他电话可以使用的,可建议用户自已换电话线,如果用户家计费号的所有电话都不可以使用的,如若不行可电话向客服电话10010联通(10000电信/10050铁通)进行申告。步骤四:检查分离器是否接反。宽带连接错误718现象,极少数为用户端问题:步骤一:建议首先重启计算机后拨号测试:(1)如果故障解决,故障原因无。(2)如果故障依旧或没法进行简单配合,可电话向客服电话10010联通(10000电信/10050铁通)进行障碍申告。字串5宽带连接错误734(PPP链接控制协议被终止)/错误735(请求的地址被服务器拒绝步骤一:建议重新启动电脑。步骤二:拨号软件出错,建议重装拨号软件,常见于XP系统的自带拨号。步骤三:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误769错误769:无法连接到指定目标。问题:这是指你电脑的网络设备有问题解决方法:打开“我的电脑”→“控制面版”→“网络连接”,查看本地连接的是否处在“禁用”状态,是的话只需双击本地连接,看到状态变为“已启用”即可。若是连本地连接都没有的话,那你的网卡100%有问题了——不是没装好就是坏了。请您联系您的电脑供应商,或者自己解决。也想每天收到这样的文章,免费关注微信号:FBI机密档案FBIsecrets长按英文复制。出现错误769的错误,大多数是网卡被禁用,启用即可!造成的原因一般为:用户的误操作或一些防火墙软件、计算机病毒引起的,很普遍。如果没有找到本地连接,一般是网卡的驱动程序丢了或计算机没有检测到网卡,可以重新安装即可错误原因:网卡被禁用解决方法:请您点击电脑右键,选择属性,再选择设备管理,再看网卡驱动程序情况,如果是个“x”说明网卡被禁用,点击右键激活网卡就可以解决。宽带连接错误769产生原因及解决方案宽带连接错误769产生原因通常,如果存在下列情况之一,您将收到错误769的信息:1.网络电缆已断开。2.调制解调器已禁用。3.调制解调器驱动程序已损坏。4.计算机上正在运行间谍软件,它妨碍了连接。5.Winsock需要得到修复。6.第三方防火墙软件阻止了连接。解决方案:要查找问题的原因,请按照下列步骤操作。步骤1:确保网络电缆已连接确保网络电缆分别连接到计算机和调制解调器。如果您的计算机连接到集线器或路由器,请确保将集线器或路由器连接到调制解调器的电缆已连接。步骤2:确保网络适配器已启用1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.右键单击“本地连接”图标。单击“启用”(如果该选项可用)。步骤3:重置调制解调器1.将从计算机到调制解调器的电缆断开连接。2.关闭调制解调器。如果调制解调器没有电源开关,请切断调制解调器的电源。3.等待两分钟。4.打开调制解调器,然后连接从计算机到调制解调器的电缆。步骤4:使用设备管理器,先卸载、然后重新安装调制解调器和驱动程序在按照这些步骤操作之前,您可能必须从硬件制造商那里下载网络适配器的最新驱动程序。1.单击“开始”,单击“运行”,键入sysdm.cpl,然后单击“确定”。2.单击“硬件”选项卡,单击“设备管理器”,然后找到“网络适配器”。3.展开“网络适配器”,然后右键单击网络适配器的图标。4.单击“卸载”,然后单击“确定”。在提示您删除与此设备相关联的文件的对话框中,单击“是”。5.重新启动计算机。或者,单击“操作”,然后单击“扫描检测硬件改动”。6.如果Windows找到设备但是没有识别它,您必须为网络适配器安装最新的驱动程序。步骤5:创建新的DSL或电缆连接1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.单击“网络任务”下的“创建一个新的连接”。当向导启动后,单击“下一步”。3.单击“连接到Internet”,然后单击“下一步”。4.单击“手动设置我的连接”,然后单击“下一步”。5.选择“用要求用户名和密码的宽带连接来连接”,然后单击“下一步”。6.执行其余的步骤。使用Internet服务提供商(ISP)提供的连接信息完成该向导。注意:您可能必须使用您的ISP提供的软件才能创建新的连接。步骤6:修复Winsock和TCP/IP1.单击“开始”,单击“运行”,键入netshwinsockreset,然后按Enter键。2.当命令提示符窗口闪烁时,请重新启动计算机。步骤7:临时卸载第三方防火墙某些第三方防火墙软件(如ZoneAlarm和NortonPersonal防火墙)在运行WindowsXPSP2的计算机上可能导致Internet连接问题。您可能必须临时卸载这些程序以测试计算机。要进行测试,仅禁用这些程序是不够的。请确保您有CD或安装文件以便可以稍后重新安装这些程序。如果问题是由这些程序导致的,则您可能必须与该程序的供应商联系,以获得关于设置该程序的帮助。注意:在删除第三方防火墙程序之前,您可能要验证启用了WindowsXP防火墙。百度百科上的一些:1、 错误代码718、619、691:属于帐号密码问题。A、用户输入帐号、密码时输错,让用户重新输入。B、 帐号到期,可去“IP综合系统”中查询帐号是否到期。C、帐号卡在网上:一般是用户下网时不断开网络连接或异常吊线所导致,可以让用户将猫和电脑的电源关闭10分钟以上再进行连接,一般可以解决。D、帐号被偷:与互联网项目部进行联系解决。2、 错误代码676:属于机房设备问题,可让用户连续多拨几次即可登陆。3、错误代码720:属于modem驱动设置不正确,主要为vpi、vci参数值设置不正确或者需要重新启动电脑。4、错误769: 此类错误原因是本地连接被用户禁用或者停用,主要出现在以太网猫的用户中,属于用户下网时错误断开网卡连接,造成网卡禁用,在“本地连接”中网卡启用即可。5、错误678:一般MODEM指示灯不正常,猫上的link灯闪烁(少数猫的link灯的英文标识为showtime),参照link不上的故障处理或让用户检查自身防火墙。如果MODEM指示灯正常,那故障的原因是电脑不能与MODEM建立连接,解决方法是将MODEM重启,如果还不行,最好重装系统,这种问题一般会长期出现。6、在Windows Vista Home Basic下经常会出现错误815.是网络端口问题.是由于网络供应商的网络断口连接性能.以及连接字段值不正确引起的.和系统一般无关再补个678:错误678,是宽带adsl拨号上网用户常常遇到的故障提示,简单地说就是网络不通了。宽带adsl拨号上网使用pppoe协议连接,通过电话线传输数据,使用adsl专用modem实现数据的调制解调,错误提示678的含义是,远程计算机无响应,意思是从计算机发出指令到网卡向外发送数据,包括电话线的传输,局端(电信局机房端)端子板的端口处理到返回数据到计算机的过程中数据传输出问题都会提示。解决方法1、首先确认adsl modem拨号正常,因为网卡自动获取的IP没有清除,所以再次拨号的时候网卡无法获取新的IP地址会提示678,操作方法是:关闭adsl modem,进入控制面板的网络连接右击本地连接选择禁用,5秒钟后右击本地连接选择启用,然后打开adsl modem拨号即可;2、如果第一步无效,则在关闭adsl modem的情况下,仍然禁用本地连接(网卡),重启计算机,然后启用本地连接(网卡),再打开adsl modem即可解决;3、如果上述步骤都无法解决,查看网卡灯是否亮,如果网卡灯不亮,参看派单知识库:“网卡灯不亮或经常不亮”的解决方案4、如果网卡灯正常1,2步无法解决则带领用户卸载网卡驱动,重装网卡驱动,如果用户xp系统按照:知识编号:9973,如何在WINXP下设置ADSL拨号连接 方法带领用户创建拨号连接,如果98系统建议用户安装Raspppoe软件或者EHERNET300软件连接即可。5、如果上述操作无效联系电信部门确认端口。6.adsl modem故障是主要原因。7.如果多台电脑使用路由器上网,可尝试将路由器拆除后连接Internt。若能顺利上网,则说明路由器故障,应排除路由器故障或更换新的路由器。8.如果是ADSL包年用户,在使用过程中如果出现这种情况,有可能是电话欠费,请咨询客户服务中心。有部分地区中国电信或中国联通用户,在电话欠费的情况下,电话可以打通,但是却无法上网,这时也有可能是电话欠费,因为现在部分地区的电信部门在用户电话欠费情况下,不是停止电话的使用,而是停止网络的使用。9.部分品牌Modem供电不足也容易造成错误67810.如果以上方法都不能解决您的问题,可以尝试一下adsl modem的reset按两三下再上试试。11.adsl modem设备损坏也会造成错误678,虽然从表面上看起来adsl modem运转正常,但是就是连接失败,笔者就曾遇到此类问题,最终换了一个新的adsl modem

独步清客 2019-12-02 00:44:12 0 浏览量 回答数 0

回答

错误代码651意思为您的调制解调器(或其它连接设备)报告了一个错误。既未找到指定的端口。解决办法:1、远程访问记事簿文件和当前的“网络和拨号连接”配置可能不一致如果更改了通讯设备(例如:串行口或调制解调器),请确保重新配置“网络和拨号连接”。如果错误仍然存在,请删除并重新创建“网络和拨号连接”。2、win7 错误代码651,路由能上,拨号上不了试一下:打开 windowssystem32logfileswmi,双击打开wmi再打开里面的RtBackup 会提示你需要管理员权限 继续 重启,即可修复。3、不行的话把wmi里的后缀为etl的文件删除包括RtBackup里的 重启4、如果上面的都不管用的话那尝试一下,禁用本地连接-关机-检查猫的所有插头拔下重插-拔下猫的电源插头-等待2分钟 之后插上插头-开机。5、最后一招先从别的能上网的系统的机子里复制下面这个文件 c:windowssystem32driversraspppoe.sys 来替换你电脑里的这个文件。宽带连接错误691(由于域上的用户名或密码无效而拒绝访问)/错误635(未知错误)的处理流程如下:(1)用户名密码填写错误(2)如果用户帐号密码填写无误,则进入下一步继续处理;建议重建拨号软件(如果不懂装拨号软件,可参考户重新):?如果重装拨号软件后正常,原因为“拨号软件丢失”;?如果重装拨号软件后故障依旧,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误691错误691真正意义上来讲:1:域上名出现错误,(用户名或密码输入错误)。2:服务器无反映,(机房用户端口错误,或帐号未被激活)。3:电话或宽带到期欠费造成。出现错误691的原因1.电信限制了你帐户使用数目,比如你这个帐户可以4个人用,现在4个人在用,你拨号就是错误6912.你在用完后没断开,至少服务器那边还是没断开,以为你还在用,和上面情况类似,所以错误691建议:每次关机的时候在宽带连接上右键,点断开出现错误691后不要一直死缠烂打拨号,等待个几分钟再试试,如果一直出现这种情况,拨打客服电话10010联通(10000电信/10050铁通),告诉工作人员你的电脑错误691上不了,然后她问“请问你的宽带编号多少”,告诉她你帐户,然后她有时问你开户的是谁,回答开户的是谁,然后过个几分钟她就会找人帮你搞定宽带连接错误691的解决办法之一解决ADSL莫名其妙的错误691问题工厂的办公室里有无线路由器,而家里新装了宽带,还没有买路由器,所以只跟哥共用一个ADSL帐号上网,一根网线在两台手提之间插来拔去的。但是让人郁闷的是,插在哥的手提上,都能连接上网络,可是插到我这台手提上总是提示错误691:用户名/密码错误。但是可以确定的是,我绝对没有把用户名或者密码输错,让我在拔号器与机子设置了好久也不行!!!郁闷......打10010询问,电信小姐坚持是我输错了,不是他们的问题。后来上网搜了一些相关的文章终于把问题解决了——原来电信把我的ADSL帐号和哥哥的提提网卡绑定了。解决方法如下:1、在大哥的手提机上运行(在“运行”中输入“cmd”可以调出命令行)中输入ipconfig/all命令,查看网络配置信息,找出本地连接里面的PhysicalAddress,记录下来。2、再进入我的本本中,进入设备管理器,在网络适配器里找到网卡,在网卡名称上用右键选择属性,进入“高级”选项卡,在左面的框中选中看到NetwotkAddress一项,选中右边的“值“,填入刚刚记录下来的MAC地址(不区分大小写,不要加“-”符号)即可。也许以后大家也会碰到,谨当学习!!!宽带连接错误623(找不到电话薄项目)步骤一:是否有防火墙或3721上网助手等软件,如有则建议退出(1)防火墙及3721上网助手后测试:如果故障解决,“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤二:指导用户检查网卡状态并拔插网线:(1)如果故障解决,故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:在条件具备情况下(有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议删除及,再重新后:(1)如果故障解决,为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:以上处理均无效或无法做简单的配合操作时,请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告宽带连接错误678(远程计算机没响应):步骤一:检查MODEM信号灯是否正常,不正常重新启动modem。如果正常见步骤二。步骤二:询问用户是否有防火墙或3721上网助手等软件,如有则建议用户退出(1)防火墙及3721上网助手后测试:如果故障解决,故障原因为“用户软件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤三:指导用户检查网卡状态并拔插网线:(1)如果故障解决,则填写:故障原因为“pc硬件问题”;(2)如果故障依旧存在,则进入下一步继续处理;步骤四:在条件具备情况下(用户有拨号软件、安装光盘(Win98要备有网卡驱动盘)建议用户删除拨号软件及,再重新安装网卡驱动后安装拨号软件:(1)如果故障解决,则填写:故障现象为“拨号连接超时”,故障原因为“PC硬件问题”;(2)如果故障依旧存在,则进入步骤七继续处理;步骤五:判断MODEM后面电话线是否可用,分离器连接是否正确:(1)MODEM后连电话不能使用,而计费号的其他电话可以使用的,建议更换电话线,故障原因为“用户室内线故障”;(2)如果用户家计费号的所有电话都不可以使用的,则请拨打客服电话10010联通(10000电信/1005铁通)进行障碍申告。步骤六:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误645产生原因为拨号软件文件受损造成(常见于XP系统),处理流程如下:步骤一:在条件具备情况下(用户有拨号软件),建议重新装拨号软件:如果故障解决,故障原因为“用户软件问题”;如果故障依旧,则建议用户找电脑公司维修电脑系统,故障原因为“用户软件问题”;。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误720现象常见于XP系统,一般将系统重新启动,可拨多次,百分之九十都可以解决,处理流程如下:步骤一:建议将系统重新启动后再重新拨号上网:(1)如果故障解决,故障原因无(2)如果故障依旧,则建议用户还原系统或找电脑公司将系统格式化重装,重装后及时关闭系统自己更新功能。步骤二:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误721(远程计算机没有响应)此现象多为USB接口Modem故障代码,可依据以下步骤进行处理:步骤一:判断MODEM信号灯是否同步,信号灯同步参照步骤二,信号灯不同步参照步骤三、四、五。步骤二:信号灯同步,则为用户协议选错(OA或OE),如若不行可电话10010联通(10000电信/10050铁通)进行申告步骤三:信号灯不同步,判断MODEM后面电话线是否可用,如果不能使用,而计费号的其他电话可以使用的,可建议用户自已换电话线,如果用户家计费号的所有电话都不可以使用的,如若不行可电话向客服电话10010联通(10000电信/10050铁通)进行申告。步骤四:检查分离器是否接反。宽带连接错误718现象,极少数为用户端问题:步骤一:建议首先重启计算机后拨号测试:(1)如果故障解决,故障原因无。(2)如果故障依旧或没法进行简单配合,可电话向客服电话10010联通(10000电信/10050铁通)进行障碍申告。字串5宽带连接错误734(PPP链接控制协议被终止)/错误735(请求的地址被服务器拒绝步骤一:建议重新启动电脑。步骤二:拨号软件出错,建议重装拨号软件,常见于XP系统的自带拨号。步骤三:以上处理均无效或用户无法做简单的配合操作,则请拨打客服电话10010联通(10000电信/10050铁通)进行障碍申告。宽带连接错误769错误769:无法连接到指定目标。问题:这是指你电脑的网络设备有问题解决方法:打开“我的电脑”→“控制面版”→“网络连接”,查看本地连接的是否处在“禁用”状态,是的话只需双击本地连接,看到状态变为“已启用”即可。若是连本地连接都没有的话,那你的网卡100%有问题了——不是没装好就是坏了。请您联系您的电脑供应商,或者自己解决。也想每天收到这样的文章,免费关注微信号:FBI机密档案FBIsecrets长按英文复制。出现错误769的错误,大多数是网卡被禁用,启用即可!造成的原因一般为:用户的误操作或一些防火墙软件、计算机病毒引起的,很普遍。如果没有找到本地连接,一般是网卡的驱动程序丢了或计算机没有检测到网卡,可以重新安装即可错误原因:网卡被禁用解决方法:请您点击电脑右键,选择属性,再选择设备管理,再看网卡驱动程序情况,如果是个“x”说明网卡被禁用,点击右键激活网卡就可以解决。宽带连接错误769产生原因及解决方案宽带连接错误769产生原因通常,如果存在下列情况之一,您将收到错误769的信息:1.网络电缆已断开。2.调制解调器已禁用。3.调制解调器驱动程序已损坏。4.计算机上正在运行间谍软件,它妨碍了连接。5.Winsock需要得到修复。6.第三方防火墙软件阻止了连接。解决方案:要查找问题的原因,请按照下列步骤操作。步骤1:确保网络电缆已连接确保网络电缆分别连接到计算机和调制解调器。如果您的计算机连接到集线器或路由器,请确保将集线器或路由器连接到调制解调器的电缆已连接。步骤2:确保网络适配器已启用1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.右键单击“本地连接”图标。单击“启用”(如果该选项可用)。步骤3:重置调制解调器1.将从计算机到调制解调器的电缆断开连接。2.关闭调制解调器。如果调制解调器没有电源开关,请切断调制解调器的电源。3.等待两分钟。4.打开调制解调器,然后连接从计算机到调制解调器的电缆。步骤4:使用设备管理器,先卸载、然后重新安装调制解调器和驱动程序在按照这些步骤操作之前,您可能必须从硬件制造商那里下载网络适配器的最新驱动程序。1.单击“开始”,单击“运行”,键入sysdm.cpl,然后单击“确定”。2.单击“硬件”选项卡,单击“设备管理器”,然后找到“网络适配器”。3.展开“网络适配器”,然后右键单击网络适配器的图标。4.单击“卸载”,然后单击“确定”。在提示您删除与此设备相关联的文件的对话框中,单击“是”。5.重新启动计算机。或者,单击“操作”,然后单击“扫描检测硬件改动”。6.如果Windows找到设备但是没有识别它,您必须为网络适配器安装最新的驱动程序。步骤5:创建新的DSL或电缆连接1.单击“开始”,单击“运行”,键入ncpa.cpl,然后单击“确定”。2.单击“网络任务”下的“创建一个新的连接”。当向导启动后,单击“下一步”。3.单击“连接到Internet”,然后单击“下一步”。4.单击“手动设置我的连接”,然后单击“下一步”。5.选择“用要求用户名和密码的宽带连接来连接”,然后单击“下一步”。6.执行其余的步骤。使用Internet服务提供商(ISP)提供的连接信息完成该向导。注意:您可能必须使用您的ISP提供的软件才能创建新的连接。步骤6:修复Winsock和TCP/IP1.单击“开始”,单击“运行”,键入netshwinsockreset,然后按Enter键。2.当命令提示符窗口闪烁时,请重新启动计算机。步骤7:临时卸载第三方防火墙某些第三方防火墙软件(如ZoneAlarm和NortonPersonal防火墙)在运行WindowsXPSP2的计算机上可能导致Internet连接问题。您可能必须临时卸载这些程序以测试计算机。要进行测试,仅禁用这些程序是不够的。请确保您有CD或安装文件以便可以稍后重新安装这些程序。如果问题是由这些程序导致的,则您可能必须与该程序的供应商联系,以获得关于设置该程序的帮助。注意:在删除第三方防火墙程序之前,您可能要验证启用了WindowsXP防火墙。百度百科上的一些:1、 错误代码718、619、691:属于帐号密码问题。A、用户输入帐号、密码时输错,让用户重新输入。B、 帐号到期,可去“IP综合系统”中查询帐号是否到期。C、帐号卡在网上:一般是用户下网时不断开网络连接或异常吊线所导致,可以让用户将猫和电脑的电源关闭10分钟以上再进行连接,一般可以解决。D、帐号被偷:与互联网项目部进行联系解决。2、 错误代码676:属于机房设备问题,可让用户连续多拨几次即可登陆。3、错误代码720:属于modem驱动设置不正确,主要为vpi、vci参数值设置不正确或者需要重新启动电脑。4、错误769: 此类错误原因是本地连接被用户禁用或者停用,主要出现在以太网猫的用户中,属于用户下网时错误断开网卡连接,造成网卡禁用,在“本地连接”中网卡启用即可。5、错误678:一般MODEM指示灯不正常,猫上的link灯闪烁(少数猫的link灯的英文标识为showtime),参照link不上的故障处理或让用户检查自身防火墙。如果MODEM指示灯正常,那故障的原因是电脑不能与MODEM建立连接,解决方法是将MODEM重启,如果还不行,最好重装系统,这种问题一般会长期出现。6、在Windows Vista Home Basic下经常会出现错误815.是网络端口问题.是由于网络供应商的网络断口连接性能.以及连接字段值不正确引起的.和系统一般无关再补个678:错误678,是宽带adsl拨号上网用户常常遇到的故障提示,简单地说就是网络不通了。宽带adsl拨号上网使用pppoe协议连接,通过电话线传输数据,使用adsl专用modem实现数据的调制解调,错误提示678的含义是,远程计算机无响应,意思是从计算机发出指令到网卡向外发送数据,包括电话线的传输,局端(电信局机房端)端子板的端口处理到返回数据到计算机的过程中数据传输出问题都会提示。解决方法1、首先确认adsl modem拨号正常,因为网卡自动获取的IP没有清除,所以再次拨号的时候网卡无法获取新的IP地址会提示678,操作方法是:关闭adsl modem,进入控制面板的网络连接右击本地连接选择禁用,5秒钟后右击本地连接选择启用,然后打开adsl modem拨号即可;2、如果第一步无效,则在关闭adsl modem的情况下,仍然禁用本地连接(网卡),重启计算机,然后启用本地连接(网卡),再打开adsl modem即可解决;3、如果上述步骤都无法解决,查看网卡灯是否亮,如果网卡灯不亮,参看派单知识库:“网卡灯不亮或经常不亮”的解决方案4、如果网卡灯正常1,2步无法解决则带领用户卸载网卡驱动,重装网卡驱动,如果用户xp系统按照:知识编号:9973,如何在WINXP下设置ADSL拨号连接 方法带领用户创建拨号连接,如果98系统建议用户安装Raspppoe软件或者EHERNET300软件连接即可。5、如果上述操作无效联系电信部门确认端口。6.adsl modem故障是主要原因。7.如果多台电脑使用路由器上网,可尝试将路由器拆除后连接Internt。若能顺利上网,则说明路由器故障,应排除路由器故障或更换新的路由器。8.如果是ADSL包年用户,在使用过程中如果出现这种情况,有可能是电话欠费,请咨询客户服务中心。有部分地区中国电信或中国联通用户,在电话欠费的情况下,电话可以打通,但是却无法上网,这时也有可能是电话欠费,因为现在部分地区的电信部门在用户电话欠费情况下,不是停止电话的使用,而是停止网络的使用。9.部分品牌Modem供电不足也容易造成错误67810.如果以上方法都不能解决您的问题,可以尝试一下adsl modem的reset按两三下再上试试。11.adsl modem设备损坏也会造成错误678,虽然从表面上看起来adsl modem运转正常,但是就是连接失败,笔者就曾遇到此类问题,最终换了一个新的adsl modem

独步清客 2019-12-02 00:44:11 0 浏览量 回答数 0

回答

回 2楼(zc_0101) 的帖子 您好,       您的问题非常好,SQL SERVER提供了很多关于I/O压力的性能计数器,请选择性能计算器PhysicalDisk(LogicalDisk),根据我们的经验,如下指标的阈值可以帮助你判断IO是否存在压力: 1.  % Disk Time :这个是磁盘时间百分比,这个平均值应该在85%以下 2.  Current Disk Queue Length:未完成磁盘请求数量,这个每个磁盘平均值应该小于2. 3.  Avg. Disk Queue Length:磁盘请求队列的平均长度,这个每个磁盘平均值也应该小于2 4.  Disk Transfers/sec:每次磁盘传输数量,这个每个磁盘的最大值应该小于100 5.  Disk Bytes/sec:每次磁盘传入字节数,这个在普通的磁盘上应该在10M左右 6.  Avg. Disk Sec/Read:从磁盘读取的平均时间,这个平均值应该小于10ms(毫秒) 7.  Avg. Disk Sec/Write:磁盘写入的平均时间,这个平均值也应该小于10ms(毫秒) 以上,请根据自己的磁盘系统判断,比如传统的机械臂磁盘和SSD有所不同。 一般磁盘的优化方向是: 1. 硬件优化:比如使用更合理的RAID阵列,使用更快的磁盘驱动器,添加更多的内存 2. 数据库设置优化:比如创建多个文件和文件组,表的INDEX和数据放到不同的DISK上,将数据库的日志放到单独的物理驱动器,使用分区表 3. 数据库应用优化:包括应用程序的设计,SQL语句的调整,表的设计的合理性,INDEX创建的合理性,涉及的范围很广 希望对您有所帮助,谢谢! ------------------------- 回 3楼(鹰舞) 的帖子 您好,      根据您的描述,由于查询产生了副本REDO LOG延迟,出现了架构锁。我们知道SQL SERVER 2012 AlwaysOn在某些数据库行为上有较多变化。我们先看看架构锁: 架构锁分成两类: 1. SCH-M:架构更改锁,主要发生在数据库SCHEMA的修改上,从你的描述看,没有更改SCHEMA,那么可以排除这个因素 2. SCH-S:架构稳定锁,主要发生在数据库的查询编译等活动 根据你的情况,应该属于SCH-S导致的。查询编译活动主要发生有新增加了INDEX, 更新了统计信息,未参数化的SQL语句等等 对于INDEX和SQL语句方面应,我想应该不会有太多问题。 我们重点关注一下统计信息:SQL SERVER 2012 AG副本的统计信息维护有两种: 1. 主体下发到副本 2. 临时统计信息存储在TEMPDB 对于主体下发的,我们可以设置统计信息的更新行为,自动更新时,可以设置为异步的(自动更新统计信息必须首先打开): USE [master] GO ALTER DATABASE [Test_01]     SET AUTO_UPDATE_STATISTICS_ASYNC ON WITH NO_WAIT GO 这样的话查询优化器不等待统计信息更新完成即编译查询。可以优化一下你的BLOCK。 对于临时统计信息存储在TEMPDB里面也是很重要的,再加上ALWAYSON的副本数据库默认是快照隔离,优化TEMPDB也是必要的,关于优化TEPDB这个我想大部分都知道,这里只是提醒一下。 除了从统计信息本身来解决,在查询过程中,可以降低查询的时间,以尽量减少LOCK的时间和范围,这需要优化你的SQL语句或者应用程序。 以上,希望对您有所帮助。谢谢! ------------------------- 回 4楼(leamonjxl) 的帖子 这是一个关于死锁的问题,为了能够提供帮助一些。请根据下列建议进行: 1.    跟踪死锁 2.    分析死锁链和原因 3.    一些解决办法 关于跟踪死锁,我们首先需要打开1222标记,例如DBCC TRACEON(1222,-1), 他将收集的信息写入到死锁事件发生的服务器上的日志文件中。同时建议打开Profiler的跟踪信息: 如果发生了死锁,需要分析死锁发生的根源在哪里?我们不是很清楚你的具体发生死锁的形态是怎么样的。 关于死锁的实例也多,这里不再举例。 这里只是提出一些可以解决的思路: 1.    减少锁的争用 2.    减少资源的访问数 3.    按照相同的时间顺序访问资源 减少锁的争用,可以从几个方面入手 1.    使用锁提示,比如为查询语句添加WITH (NOLOCK), 但这还取决于你的应用是否允许,大部分分布式的系统都是可以加WITH (NOLOCK), 金融行业可能需要慎重。 2.    调整隔离级别,使用MVCC,我们的数据库默认级别是READ COMMITED. 建议修改为读提交快照隔离级别,这样的话可以尽量读写不阻塞,只不过MVCC的ROW VERSION保存到TEMPDB下面,需要维护好TEMPDB。当然如果你的整个数据库隔离级别可以设置为READUNCOMMINTED,这些就不必了。 减少资源的访问数,可以从如下几个方面入手: 1.    使用聚集索引,非聚集INDEX的叶子页面与堆或者聚集INDEX的数据页面分离。因此,如果对非聚集INDEX 操作的话,会产生两个锁,一个是基本表,一个是非聚集INDEX。而聚集INDEX就不一样,聚集INDEX的叶子页面和表的数据页面相同,他只需要一个LOCK。 2.    查询语句尽量使用覆盖INDEX, 使用全覆盖INDEX,就不需要访问基本表。如果没有全覆盖,还会通过RID或者CLUSTER INDEX访问基本表,这样产生的LOCK可能会与其他SESSION争用。 按照相同的时间顺序访问资源: 确保每个事务按照相同的物理顺序访问资源。两个事务按照相同的物理顺序访问,第一个事务会获得资源上的锁而不会被第二个事务阻塞。第二个事务想获得第一个事务上的LOCK,但被第一个事务阻塞。这样的话就不会导致循环阻塞的情况。 ------------------------- 回 4楼(leamonjxl) 的帖子 两种方式看你的业务怎么应用。这里不仅是分表的问题,还可能存在分库,分服务器的问题。取决与你的架构方案。 物理分表+视图,这是一种典型的冷热数据分离的方案,大致的做法如下: 1.    保留最近3个月的数据为当前表,也即就是我们说的热数据 2.    将其他数据按照某种规则分表,比如按照年或者季度或者月,这部分是相对冷的数据 分表后,涉及到几个问题: 第一问题是,转移数据的过程,一般是晚上业务比较闲来转移,转移按照一定的规则来做,始终保持3个月,这个定时任务本身也很消耗时间 再者,关于查询部分,我想你们的数据库服务器应该通过REPLICATION做了读写分离的吧,主库我觉得压力不会太大,主要是插入或者更新,只读需要做视图来包含全部的数据,但通过UNION ALL所有分表的数据,最后可能还是非常大,在某些情况下,性能不一定好。这个是不是业务上可以解决。比如,对于1年前的历史数据,放在单独的只读上,相对热的数据放在一起,这样压力也会减少。 分区表的话,因为涉及到10亿数据,要有好的分区方案,相对比较简单一点。但对于10亿的大表,始终是个棘手的问题,无论分多少个分区,单个服务器的资源也是有限的。可扩展性方面也存在问题,比如在只读上你没有办法做服务器级别的拆分了。这可能也会造成瓶颈。 现在很多企业都在做分库分表,这些的要解决一些高并发,数据量大的问题。不知是否考虑过类似于中间件的方案,比如阿里巴巴的TDDL类似的方案,如果你有兴趣,可以查询相关资料。 ------------------------- 回 9楼(jiangnii) 的帖子 阿里云数据库不仅提供一个数据库,还提供数据库一种服务。阿里云数据库不仅简化了基础架构的部署,还提供了数据库高可用性架构,备份服务,性能诊断服务,监控服务,专家服务等等,保证用户放心、方便、省心地使用数据库,就像水电一样。以前的运维繁琐的事,全部由阿里云接管,用户只需要关注数据库的使用和具体的业务就好。 关于优化和在云数据库上处理大数据量或复杂的数据操作方面,在云数据库上是一样的,没有什么特别的地方,不过我们的云数据库是使用SSD磁盘,这个比普通的磁盘要快很多,IO上有很大的优势。目前单个实例支持1T的数据量大小。陆续我们会推出更多的服务,比如索引诊断,连接诊断,容量分析,空间诊断等等,这些工作可能是专业的DBA才能完成的,以后我们会提供自动化的服务来为客户创造价值,希望能帮助到客户。 谢谢! ------------------------- 回 12楼(daniellin17) 的帖子 这个问题我不知道是否是两个问题,一个是并行度,另一个是并发,我更多理解是吞吐量,单就并行度而言。 提高并行度需要考虑的因素有: 1.    可用于SQL SERVER的CPU数量 2.    SQL SERVER的版本(32位/64位) 3.    可用内存 4.    执行的查询类型 5.    给定的流中处理的行数 6.    活动的并发连接数量 7.    sys.configurations参数:affinity mask/max server memory (MB)/ max degree of parallelism/ cost threshold for parallelism 以DOP的参数控制并行度为例,设置如下: SELECT * FROM sys.configurations WITH (NOLOCK) WHERE name = 'max degree of parallelism' EXEC sp_configure 'max degree of parallelism',2 RECONFIGURE WITH OVERRIDE 经过测试,DOP设置为2是一个比较适中的状态,特别是OLTP应用。如果设置高了,会产生较多的SUSPEND进程。我们可以观察到资源等待资源类型是:CXPACKET 你可以用下列语句去测试: DBCC SQLPERF('sys.dm_os_wait_stats',CLEAR) SELECT * FROM sys.dm_os_wait_stats WITH (NOLOCK) ORDER BY 2 DESC ,3 DESC 如果是吞吐量的话。优化的范围就很广了。优化是系统性的。硬件配置我们选择的话,大多根据业务量来预估,然后考虑以下: 1.    RAID的划分,RAID1适合存放事务日志文件(顺序写),RAID10/RAID5适合做数据盘,RAID10是条带化并镜像,RAID5条带化并奇偶校验 2.    数据库设置,比如并行度,连接数,BUFFER POOL 3.    数据库文件和日志文件的存放规则,数据库文件的多文件设置规则 4.    TEMPDB的优化原则,这个很重要的 5.    表的设计方面根据业务类型而定 6.    CLUSTERED INDEX和NONCLUSTERED INDEX的设计 7.    阻塞分析 8.    锁和死锁分析 9.    执行计划缓冲分析 10.    存储过程重编译 11.    碎片分析 12.    查询性能分析,这个有很多可以优化的方式,比如OR/UNION/类型转换/列上使用函数等等 我这里列举一个高并发的场景: 比如,我们的订单,比如搞活动的时候,订单刷刷刷地增长,单个实例可能每秒达到很高很高,我们分析到最后最常见的问题是HOT PAGE问题,其等待类型是PAGE LATCH竞争。这个过程可以这么来处理,简单列几点,可以参考很多涉及高并发的案例: 1.    数据库文件和日志文件分开,存放在不同的物理驱动器磁盘上 2.    数据库文件需要与CPU个数形成一定的比例 3.    表设计可以使用HASH来作为表分区 4.    表可以设置无序的KEY/INDEX,比如使用GUID/HASH VALUE来定义PRIMARY KEY CLUSTER INDEX 5.    我们不能将自增列设计为聚集INDEX 这个场景只是针对高并发的插入。对于查询而言,是不适合的。但这些也可能导致大量的页拆分。只是在不同的场景有不同的设计思路。这里抛砖引玉。 ------------------------- 回 13楼(zuijh) 的帖子 ECS上现在有两种磁盘,一种是传统的机械臂磁盘,另一种是SSD,请先诊断你的IO是否出现了问题,本帖中有提到如何判断磁盘出现问题的相关话题,请参考。如果确定IO出现问题,可以尝试使用ECS LOCAL SSD。当然,我们欢迎你使用云数据库的产品,云数据库提供了很多有用的功能,比如高可用性,灵活的备份方案,灵活的弹性方案,实用的监控报警等等。 ------------------------- 回 17楼(豪杰本疯子) 的帖子 我们单个主机或者单个实例的资源总是有限的,因为涉及到很大的数据量,对于存储而言是个瓶颈,我曾使用过SAN和SAS存储,SAN存储的优势确实可以解决数据的灵活扩展,但是SAN也分IPSAN和FIBER SAN,如果IPSAN的话,性能会差一些。即使是FIBER SAN,也不是很好解决性能问题,这不是它的优势,同时,我们所有DB SERVER都连接到SAN上,如果SAN有问题,问题涉及的面就很广。但是SAS毕竟空间也是有限的。最终也会到瓶颈。数据量大,是造成性能问题的直接原因,因为我们不管怎么优化,一旦数据量太大,优化的能力总是有限的,所以这个时候更多从架构上考虑。单个主机单个实例肯定是抗不过来的。 所以现在很多企业在向分布式系统发展,对于数据库而言,其实有很多形式。我们最常见的是读写分离,比如SQL SERVER而言,我们可以通过复制来完成读写分离,SQL SERVER 2012及以后的版本,我们可以使用ALWAYSON来实现读写分离,但这只能解决性能问题,那空间问题怎么解决。我们就涉及到分库分表,这个分库分表跟应用结合得紧密,现在很多公司通过中间件来实现,比如TDDL。但是中间件不是每个公司都可以玩得转的。因此可以将业务垂直拆分,那么DB也可以由此拆分开来。举个简单例子,我们一个典型的电子商务系统,有订单,有促销,有仓库,有配送,有财务,有秒杀,有商品等等,很多公司在初期,都是将这些放在一个主机一个实例上。但是这些到了一定规模或者一定数据量后,就会出现性能和硬件资源问题,这时我们可以将它们独立一部分获完全独立出来。这些都是一些好的方向。希望对你有所帮助。 ------------------------- 回 21楼(dt) 的帖子 问: 求大数据量下mysql存储,优化方案 分区好还是分表好,分的过程中需要考虑事项 mysql高并发读写的一些解决办法 答: 分区:对于应用来说比较简单,改造较少 分表: 应用需较多改造,优点是数据量太大的情况下,分表可以拆分到多个实例上,而分区不可以。 高并发优化,有两个建议: 1.    优化事务逻辑 2.    解决mysql高并发热点,这个可以看看阿里的一个热点补丁: http://www.open-open.com/doc/view/d58cadb4fb68429587634a77f93aa13f ------------------------- 回 23楼(aelven) 的帖子 对于第一个问题.需要看看你的数据库架构是什么样的?比如你的架构具有高可用行?具有读写分离的架构?具有群集的架构.数据库应用是否有较冷门的功能。高并发应该不是什么问题。可扩展性方面需要考虑。阿里云数据库提供了很多优势,比如磁盘是性能超好的SSD,自动转移的高可用性,没有任何单点,自动灵活的备份方案,实用的监控报警,性能监控服务等等,省去DBA很多基础性工作。 你第二个问题,看起来是一个高并发的场景,这种高并发的场景容易出现大量的LOCK甚至死锁,我不是很清楚你的业务,但可以建议一下,首先可以考虑快照隔离级别,实现行多版本控制,让读写不要阻塞。至于写写过程,需要加锁的粒度降低最低,同时这种高并发也容易出现死锁,关于死锁的分析,本帖有提到,请关注。 第三个问题,你用ECS搭建自己的应用也是可以的,RDS数据库提供了很多功能,上面已经讲到了。安全问题一直是我们最看重的问题,肯定有超好的防护的。 ------------------------- 回 26楼(板砖大叔) 的帖子 我曾经整理的关于索引的设计与规范,可以供你参考: ----------------------------------------------------------------------- 索引设计与规范 1.1    使用索引 SQL SERVER没有索引也可以检索数据,只不过检索数据时扫描这个表而异。存储数据的目的,绝大多数都是为了再次使用,而一般数据检索都是带条件的检索,数据查询在数据库操作中会占用较大的比例,提高查询的效率往往意味着整个数据库性能的提升。索引是特定列的有序集合。索引使用B-树结构,最小优化了定位所需要的键值的访问页面量,包含聚集索引和非聚集索引两大类。聚集索引与数据存放在一起,它决定表中数据存储的物理顺序,其叶子节点为数据行。 1.2    聚集索引 1.2.1    关于聚集索引 没聚集索引的表叫堆。堆是一种没有加工的数据,以行标示符作为指向数据存储位置的指针,数据没有顺序。聚集索引的叶子页面和表的数据页面相同,因此表行物理上按照聚集索引列排序,表数据的物理顺序只有一种,所以一个表只有一个聚集索引。 1.2.2    与非聚集索引关系 非聚集索引的一个索引行包含指向表对应行的指针,这个指针称为行定位器,行定位器的值取决于数据页保存为堆还是被聚集。若是堆,行定位器指向的堆中数据行的行号指针,若是聚集索引表,行定位器是聚集索引键值。 1.2.3    设计聚集索引注意事项     首先创建聚集索引     聚集索引上的列需要足够短     一步重建索引,不要使用先DROP再CREATE,可使用DROP_EXISTING     检索一定范围和预先排序数据时使用,因为聚集索引的叶子与数据页面相同,索引顺序也是数据物理顺序,读取数据时,磁头是按照顺序读取,而不是随机定位读取数据。     在频繁更新的列上不要设计聚集索引,他将导致所有的非聚集所有的更新,阻塞非聚集索引的查询     不要使用太长的关键字,因为非聚集索引实际包含了聚集索引值     不要在太多并发度高的顺序插入,这将导致页面分割,设置合理的填充因子是个不错的选择 1.3    非聚集索引 1.3.1    关于非聚集索引 非聚集索引不影响表页面中数据的顺序,其叶子页面和表的数据页面时分离的,需要一个行定位器来导航数据,在将聚集索引时已经有说明,非聚集索引在读取少量数据行时特别有效。非聚集索引所有可以有多个。同时非聚集有很多其他衍生出来的索引类型,比如覆盖索引,过滤索引等。 1.3.2    设计非聚集索引     频繁更新的列,不适合做聚集索引,但可以做非聚集索引     宽关键字,例如很宽的一列或者一组列,不适合做聚集索引的列可作非聚集索引列     检索大量的行不宜做非聚集索引,但是可以使用覆盖索引来消除这种影响 1.3.3    优化书签查找 书签会访问索引之外的数据,在堆表,书签查找会根据RID号去访问数据,若是聚集索引表,一般根据聚集索引去查找。在查询数据时,要分两个部分来完成,增加了读取数据的开销,增加了CPU的压力。在大表中,索引页面和数据页面一般不会临近,若数据只存在磁盘,产生直接随机从磁盘读取,这导致更多的消耗。因此,根据实际需要优化书签查找。解决书签查找有如下方法:     使用聚集索引避免书签查找     使用覆盖索引避免书签查找     使用索引连接避免数据查找 1.4    聚集与非聚集之比较 1.4.1    检索的数据行 一般地,检索数据量大的一般使用聚集索引,因为聚集索引的叶子页面与数据页面在相同。相反,检索少量的数据可能非聚集索引更有利,但注意书签查找消耗资源的力度,不过可考虑覆盖索引解决这个问题。 1.4.2    数据是否排序 如果数据需要预先排序,需要使用聚集索引,若不需要预先排序就那就选择聚集索引。 1.4.3    索引键的宽度 索引键如果太宽,不仅会影响数据查询性能,还影响非聚集索引,因此,若索引键比较小,可以作为聚集索引,如果索引键够大,考虑非聚集索引,如果很大的话,可以用INCLUDE创建覆盖索引。 1.4.4    列更新的频度 列更新频率高的话,应该避免考虑所用非聚集索引,否则可考虑聚集索引。 1.4.5    书签查找开销 如果书签查找开销较大,应该考虑聚集索引,否则可使用非聚集索引,更佳是使用覆盖索引,不过得根据具体的查询语句而看。 1.5    覆盖索引 覆盖索引可显著减少查询的逻辑读次数,使用INCLUDE语句添加列的方式更容易实现,他不仅减小索引中索引列的数据,还可以减少索引键的大小,原因是包含列只保存在索引的叶子级别上,而不是索引的叶子页面。覆盖索引充当一个伪的聚集索引。覆盖索引还能够有效的减少阻塞和死锁的发生,与聚集索引类似,因为聚集索引值发生一次锁,非覆盖索引可能发生两次,一次锁数据,一次锁索引,以确保数据的一致性。覆盖索引相当于数据的一个拷贝,与数据页面隔离,因此也只发生一次锁。 1.6    索引交叉 如果一个表有多个索引,那么可以拥有多个索引来执行一个查询,根据每个索引检索小的结果集,然后就将子结果集做一个交叉,得到满足条件的那些数据行。这种技术可以解决覆盖索引中没有包含的数据。 1.7    索引连接 几乎是跟索引交叉类似,是一个衍生品种。他将覆盖索引应用到交叉索引。如果没有单个覆盖索引查询的索引而多个索引一起覆盖查询,SQL SERVER可以使用索引连接来完全满足查询而不需要查询基础表。 1.8    过滤索引 用来在可能没有好的选择性的一个或者多个列上创建一个高选择性的关键字组。例如在处理NULL问题比较有效,创建索引时,可以像写T-SQL语句一样加个WHERE条件,以排除某部分数据而检索。 1.9    索引视图 索引视图在OLAP系统上可能有胜算,在OLTP会产生过大的开销和不可操作性,比如索引视图要求引用当前数据库的表。索引视图需要绑定基础表的架构,索引视图要求企业版,这些限制导致不可操作性。 1.10    索引设计建议 1.10.1    检查WHERE字句和连接条件列 检查WHERE条件列的可选择性和数据密度,根据条件创建索引。一般地,连接条件上应当考虑创建索引,这个涉及到连接技术,暂时不说明。 1.10.2    使用窄的索引 窄的索引有可减少IO开销,读取更少量的数据页。并且缓存更少的索引页面,减少内存中索引页面的逻辑读取大小。当然,磁盘空间也会相应地减少。 1.10.3    检查列的唯一性 数据分布比较集中的列,种类比较少的列上创建索引的有效性比较差,如果性别只有男女之分,最多还有个UNKNOWN,单独在上面创建索引可能效果不好,但是他们可以为覆盖索引做出贡献。 1.10.4    检查列的数据类型 索引的数据类型是很重要的,在整数类型上创建的索引比在字符类型上创建索引更有效。同一类型,在数据长度较小的类型上创建又比在长度较长的类型上更有效。 1.10.5    考虑列的顺序 对于包含多个列的索引,列顺序很重要。索引键值在索引上的第一上排序,然后在前一列的每个值的下一列做子排序,符合索引的第一列通常为该索引的前沿。同时要考虑列的唯一性,列宽度,列的数据类型来做权衡。 1.10.6    考虑索引的类型 使用索引类型前面已经有较多的介绍,怎么选择已经给出。不再累述。 ------------------------- 回 27楼(板砖大叔) 的帖子 这两种都可以吧。看个人的喜好,不过微软现在的统一风格是下划线,比如表sys.all_columns/sys.tables,然后你再看他的列全是下划线连接,name     /object_id    /principal_id    /schema_id    /parent_object_id      /type    /type_desc    /create_date    /modify_date 我个人的喜好也是喜欢下划线。    

石沫 2019-12-02 01:34:30 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站