CENTOS修改MYSQL数据文件存储目录

0 个评论
MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/var/www/html/xxxx/data下需要进行下面几步: 1、home目录下建立data目录 cd /var/www/html/xxxx/ mkdir data 2、把MySQL服务进程停掉: mysqladmin -u root -p shutdown 3、把/var/lib/mysql整个目录移到/var/www/html/xxxx/data mv /var/lib/mysql /var/www/html/xxxx/data/ 这样就把MySQL的数据文件移动到了/var/www/html/xxxx/data/mysql下  (不过好像会把/var/lib/mysql这个目录删除,会对下面ln命令造成问题,所以我又手工创建了一个/var/lib/mysql) 4、找到my.cnf配置文件 如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 5、编辑MySQL的配置文件/etc/my.cnf 为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/var/www/html/xxxx/data/mysql/mysql.sock 。操作如下: vi  my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)# The MySQL server[mysqld]  port = 3306#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)socket  = /var/www/html/xxxx/data/mysql/mysql.sock (加上此行) PS:我修改的版本稍微有点不一样,貌似有两行 #datadir=/var/lib/mysql #socket=/var/lib/mysql/mysql.sock 我都修改了目录 6、修改MySQL启动脚本/etc/init.d/mysql(这一步我没做,因为我使用的版本貌似直接调用了上面那个文件的路径) 最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/var/www/html/xxxx/data/mysql。(这一步我没做) [root@test1 etc]# vi /etc/init.d/mysql#datadir=/var/lib/mysql(注释此行)datadir=/var/www/html/xxxx/data/mysql (加上此行)(这一步我没做) 如果是CentOS还要改 /usr/bin/mysqld_safe 相关文件位置;(这一步我没做) 最后 做一个mysql.sock 链接: ln -s /var/www/html/xxxx/data/mysql/mysql.sock /var/lib/mysql/mysql.sock     (原来的错误教程把L打成了i,结果我运行出错,仔细一看原来错在这个地方) PS,这个文件貌似是自动生成的,最好启动MYSQL服务以后再运行这个命令,然后如果提示“没有那个文件或目录”肯定就是刚才把文件夹移动的时候把/var/lib/mysql这个文件夹删除了 最好自己重新建立一个,以让mysql.sock能复制进去 7、重新启动MySQL服务 /etc/init.d/mysqld start 或用reboot命令重启Linux 如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。 复制内容到剪贴板 代码: [root@sample ~]# chown -R mysql:mysql /var/www/html/xxxx/data/mysql/  ← 改变数据库的归属为mysql [root@sample ~]# chmod 700 /var/www/html/xxxx/data/mysql/test/  ← 改变数据库目录属性为700 (这步貌似在我使用的新版本中也不用的,因为/etc/init.d/mysql里面已经有修改权限的命令了,一启动MYSQL就自动修改) [root@sample ~]# chmod 660 /var/www/html/xxxx/data/mysql/test/*  ← 改变数据库中数据的属性为660  (这步也不用,理由同上) 错误解决方案: 1.在CentOS上,如果mysql是通过yum安装的,那么可能使用上面的方法不能完全凑效。 原因:mysql的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config 这个文件里面有一行“ldata=’/var/lib/mysql’”和"socket=/var/lib/mysql/mysql.sock",这里也需要改掉 2.另外,还有权限问题,查看/var/log/mysqld.log,发现Can’t create test file /xxx/mysql/centos5.lower-test 这里是因为没有权限创建或读取文件。 解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start 发现OK了。 另外一个办法是restorecon -FRv /var/www/html/xxxx/data/mysql,或者chcon -R -t mysqld_db_t /var/www/html/xxxx/data/mysql PS:相关的命令,调试的时候方便使用的 /etc/init.d/mysqld start /etc/init.d/mysqld restart service mysqld stop  停止mysql服务,上面的命令提示出错的时候可以用下面这两个 service mysqld start 启动mysql服务 如果访问网站后发现文章列表不见了~不要紧~那是因为有些表正在使用,可以用神器phpmyadmin,进去选中in use的表,然后选下面的 repair table就搞定了
2016-04-16 / centos / 2,530 views浏览
阅读全文

centos移动了网站目录后权限的修改

0 个评论
发现移动网站后无法写入 即使设置了文件夹777属性还是不行 错误log里面一大堆的fwrite()和fclose()错误 一看就是权限问题 首先找到/etc/httpd/conf/httpd.conf搜索Group 找到类似 User apache Group apache 知道用户和用户组后,修改网站根目录的用户权限,假如网站根目录是/var/www/html/xxx.com chown -R apache:apache /var/www/html/xxx.com
2016-04-15 / centos / 2,138 views浏览
阅读全文

centos删除文件或文件夹

0 个评论
删除文件或文件夹 1、删除home目录下的test目录 rm /home/test 2、这种不带参数的删除方法经常会提示无法删除,因为权限不够。 rm -r /home/test 3、-r是递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。 rm -rf /home/test -4、f是不提示用户,删除目录下的所有文件。请注意检查路径,输成别的目录就悲剧了。 rm -ir /home/test 5、-i是交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认。
2016-04-15 / centos / 2,056 views浏览
阅读全文

linux Centos系统VPS挂载数据盘教程

0 个评论
转自http://jingyan.baidu.com/album/b907e627d6a1d646e7891c0b.html Df命令是以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl linux Centos系统VPS挂载数据盘教程 一般的linux的云服务器VPS数据盘都是未做分区和格式化 远程SSH登录上Centos服务器:并进行如下操作,注意挂载操作会清空数据,请确认挂载盘无数据或者未使用 列出所有磁盘: 1命令:ll /dev/disk/by-path(注意:ll是字母LL的小写,不是数字11) 一般sda是正在使用的盘,里面还会有分区sda1,sda2 如果有个sdb什么的就是有多一块硬盘 2格式化硬盘 /dev/sdb: 命令:#fdisk /dev/sdb按方框提示操作 分别输入:n    p    数字1     回车      回车       w 就可以分区成功了 3创建分区: 命令:mkfs.ext4 /dev/sdb1 可能需要等一段时间 4将数据盘挂载为/www: 命令:#mount /dev/sdb1 /www 我是挂成其他文件夹 mount /dev/sdb1 /var/www/html/98tt    要注意的一点是要确保/var/www/html/98tt 这个文件夹是存在的   5最后一步是写入硬盘启动信息,下次重启后自动挂载数据盘: 命令为:echo "/dev/sdb1 /www ext4 defaults 0 0" >>/etc/fstab 我挂载在其他文件夹,所以修改为 echo "/dev/sdb1 /var/www/html/98tt ext4 defaults 0 0" >>/etc/fstab 然后可以用命令查看一下是否成功  cat /etc/fstab 如果成功,最后一行会显示有 挂载以后可能会出现的问题:把挂载的目录设置为虚拟网站目录,重启APACHE的时候提示这个目录不存在 chcon -R -h -t httpd_sys_content_t /var/www/html/98tt chcon -R -h -t httpd_sys_content_t /var/www/html/98tt/ 然后重启apache就可以了 然后把原来的文件复制过去,如果网站文件很多可能要花费很长时间 cp -r /var/www/html/98tt.com/ /var/www/html/98tt/
2016-04-15 / centos / 2,036 views浏览
阅读全文

centos操作系统中如何查看文件夹占了多少磁盘空间?

0 个评论
du -sh. 系统只显示当前文件夹所占用的总空间 du -a. 显示的是所有的文件.包括子文件夹下所有文件也显示.. 某个文件夹的话例如home:du -sh /var/www/*
2016-04-14 / centos / 2,541 views浏览
阅读全文

客户的VPS又出问题了,访问慢悠悠

0 个评论
然后APACHE的错误日志老是提示MYSQL没有响应什么的 用phpmyadmin登陆不进去 感觉MYSQL不能访问,登录SSH,重启MYSQL发现不能重启 找到日志文件/var/log/mysqld.log打开看了一下 [ERROR] Can’t start server: can’t create PID file: No space left on device 又TM空间满了~又得删除日志了 一看/var/log/下最大的文件竟然有50M 是一个叫btmp的 搜索了一下~这个日志貌似是记录尝试登陆ssh的错误日志 我靠~有人想暴力破解SSH密码啊~ 还好我设置了很多符号~ 然后我把所有的大文件日志一删除 然后重启MYSQL~ 再访问就正常了~
2016-04-14 / centos / 2,138 views浏览
阅读全文

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

0 个评论
Redhat64位服务器重启后出现该问题,研究了一下午,发现解决办法: 问题说明80端口被占用,用netstat -nlp |grep :80命令看看有什么进程占用了80端口,发现是httpd进程。killall -9 httpd杀掉所有的httpd进程后,用service httpd start命令重启apache服务器,发现现在能够正常重启,不会出现上述问题   检查了一系列东西,最后发现是防火墙的问题,service iptables stop关闭防火墙后,远程测试能够正常访问服务器   PS:一天后发现并没有从根本上解决问题~APACHe还是会自动关掉,启动的时候还是上面的提示 网上找了一个解决办法 3.  Third solution is to change binging address in your httpd.conf  like this: Listen 127.0.0.1:80 ( that means:  instead of  Listen 0.0.0.0:80) 然后我修改了/etc/httpd/conf/httpd.conf 把里面的Listen 80修改为 Listen 127.0.0.1:80   然后重启apache,看看明天还出不出这个问题~ PS:貌似还是不太对~网站直接无法访问了,然后我看看配置文件里的例子~貌似要写服务器IP的 于是我直接改成了VPS的IP(这个IP每个服务器都不一样,根据自己的服务器IP修改),类似 Listen 123.123.123.123:80 再测试看看~   PS:apache还是不停地自动关闭,实在没办法~去查了一下错误日志 在/var/log/httpd/里面error_log 看了一下,原来是DEDE程序用了老函数,php5.3以上已经不支持了 [Wed Apr 13 00:16:15 2016] [error] [client 66.249.77.20] PHP Deprecated:  Function ereg() is deprecated in /var/www/html/xxx.com/include/arc.listview.class.php on line 681 一堆类似的错误,好吧修改吧 这是因为php5.3中不再支持eregi()函数,而使用preg_match()函数替代。 解决的方法是:将eregi()函数替换成preg_match() 函数。 if(eregi(‘^test’,$file)) 可以替换为 if(preg_match(‘/^test/i’,$file))   ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, 詳可見: PHP: Differences from POSIX regex * POSIX → PCRE * ereg_replace() → preg_replace() * ereg() → preg_match() * eregi_replace() → preg_replace() * eregi() → preg_match() * split() → preg_split() * spliti() → preg_split() * sql_regcase() → No equivalent * 需要 regex 的 split, 可用 preg_split() 代替 * 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)
2016-04-13 / centos / 2,047 views浏览
阅读全文

dede常见漏洞以及解决方法

0 个评论
转自http://www.2cto.com/Article/201309/241568.html dede的漏洞公认的多,接手这个网站也接触了不少,现在就把几种接触到的或者了解到的漏洞记录下来,让大家可以提高警惕,防止网站被攻击。 1.dede dialog目录下的配置文件漏洞    如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处 在include/dialog下的config.php第35行   if($cuserLogin->getUserID() <=0 ) { if(empty($adminDirHand)) { ShowMsg("<b>提示:需输入后台管理目录才能登录</b><br /><form>请输入后台管理目录名:<input type='hidden' name='gotopage' value='".urlencode($dedeNowurl)."' /><input type='text' name='adminDirHand' value='dede' style='width:120px;' /><input style='width:80px;' type='submit' name='sbt' value='转入登录' /></form>", "javascript:;"); exit(); } $adminDirHand = HtmlReplace($adminDirHand, 1); $gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl); echo "<script language='javascript'>location='$gurl';</script>"; exit(); } 修改方案:$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);上面添加如下语句: $adminDirHand = HtmlReplace($adminDirHand, 1); 2.dede group.php页面sql注入漏洞    具体在group/global.inc.php中 $db->SetQuery("SELECT G.groupname,G.groupid,G.des,G.groupimg FROM #@__group_user AS U LEFT JOIN #@__groups AS G ON U.gid=G.groupid WHERE U.uid IN({$_GROUPS[‘_vars’][‘mids’]}) AND U.isjoin=1 AND U.gid<>$id LIMIT 0,6"); $id直接来自用户的输入。应该给$id加过滤 3.dede 5.7版本sql注入漏洞    漏洞位置:/member/ajax_membergroup.php    漏洞原因:没有对membergroup变量进行过滤 4.wap跨站攻击    漏洞文件:wapphp第39行    解决方式:echo htmlspecialchars($pageBody); 5.dede搜索模块sql注入    漏洞文件 : plus/search.php文件存在变量覆盖漏洞,导致$typeid能被二次覆盖,产生sql注入漏洞。   解决方式:官网下载补丁吧. 6.dede 5.6版本任意sql注入漏洞    原因:形成原因:由于dedecmsv5.6的全局机制可以任意给其赋值,而且高级搜索功能/plus/advancedsearch.php中的$sql变量未初始化,导致高级搜索功能可以绕过模板定义直接执行任意SQL语句。   解决方法:对高级搜索功能/plus/advancedsearch.php中的$sql变量初始化 7.dede全局变量漏洞:   漏洞文件:include/common.inc.php   解决方法: 在 /include/common.inc.php  中 找到注册变量的代码   foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); } 修改为 foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) { if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){ exit('Request var not allow!'); } ${$_k} = _RunMagicQuotes($_v); } } 8.dede feedback.php页面漏洞    原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。    解决方式:官方有补丁 9.dede变量覆盖漏洞 安装完了删除了install就解决了 10.dede圈子搜索漏洞 漏洞页面:/group/search.php 解决方式:第16行: 1$keyword = htmlspecialchars(addslashes($keyword)); 11.dede官方源码漏洞 源码文件:include/shopcar.class.php文件第8行: 解决方式:删除@eval(file_get_contents(‘php://input’)); 12.dede新版本变量覆盖漏洞 文件include/common.inc.php 解决方式: CheckRequest($_REQUEST); 在下面添加 CheckRequest($_COOKIE); 13 .dede文件包含漏洞   漏洞文件:Include/payment/alipay.php      Include/payment/yeepay.php     解决方式:官方有补丁 14.dede样式分享XSS漏洞     漏洞文件plus/bshare.php     解决方式: plus目录下的bshare.php文件117行 $uuid = isset($uuid)? $uuid : ”;改成 $uuid = isset($uuid)? htmlspecialchars($uuid) : ”;
2016-04-12 / dedecms / 2,205 views浏览
阅读全文

ecms7.2修改头尾模版后需要的操作

0 个评论
以前一直不知道,模版头尾更新了以后还得一个一个模版去点一次 提交 更新数据 今天看了下代码,原来是\e\data\tmp下生成了模版缓存,以dt_开头的就是 dt_tempindexpage.php就是首页的缓存 难怪我说怎么更新了头尾,怎么首页等模版不变的~ 然后在后台数据更新那里有个 清除临时文件和数据  可以把这些缓存删除~ 以后更新了头尾直接点这里就可以了~不用每个模版去点一次 提交
2016-03-31 / ecms / 2,075 views浏览
阅读全文

MKV加字幕

0 个评论
昨天给小孩下了个动画片,发现字幕是单独的 在电脑看的话,播放软件一般可以外挂字幕 但是用电视看的话就没办法外挂了 最好的办法,把字幕给放进mkv文件里去 我下了一个mkvtoolnix绿色版 发现是英文的,即使在选项里选了中文还是没用,大部分文字还是英文   然后我们点红圈那里导入需要加字幕的视频   再按第二次上图红圈那里导入字幕   导入成功,看到了吗?   还需要设置一下语言   以及字幕的格式,这个可以用editplus另存为,就可以看出是什么格式了,或者我们直接把字幕文件转为UTF-8格式,然后这里也选utf-8格式,再按下面红圈的按钮   等一下子,右下绿色进度条变为100%就可以了
2016-03-30 / 生活 / 1,794 views浏览
阅读全文