Monthly Archives: 9月 2015

9月 28th, 2015

MySQL ibdata1占用空间大 释放MySQL ibdata1文件的空间

说明: mysql有多种存储引擎,比如MyISAM、InnoDB很常用。 如果用的InnoDB, 且使用mysql默认的配置文件,MySQL的数据都会存放在ibdata1文件中,经过一段时间此文件会变的非常大,占用大量磁盘空间。如何把mysql占用的空间释放出来。

mysql ibdata1存放数据,索引等,是MYSQL的最主要的数据。

步骤:

1,备份数据库

备份全部数据库,执行命令mysqldump  -uusername -ppassword  –all-databases > /backup/all.sql 或者只备份需要的库。

删除数据库
drop database A;
drop database B;

停止数据库: service mysqld stop 
2,修改mysql配置文件

修改my.cnf文件,增加下面配置

innodb_file_per_table

对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件

3,删除原数据文件

删除原来的ibdata1文件及日志文件ib_logfile*,删除data目录下的应用数据库文件夹(mysql,test,information_schema数据库本身文件夹不要删除)

4,还原数据库

启动数据库服务service mysqld start

还原全部数据库,执行命令mysql -uusername -ppassword <all.sql

经过以上几步后,可以看到新的ibdata1文件就只有几十M了,数据及索引都变成了针对单个表的小ibd文件了,它们在相应数据库的文件夹下面。

TAGS: ,
9月 28th, 2015

用ssh连其他linux机器,会等待10-30秒才有提示输入密码。这种情况主要有两种可能的原因

1.DNS反向解析的问题:

vi /etc/ssh/sshd_config,设置UseDNS为no ,并重启sshd

2.关闭ssh的gssapi认证:

vi /etc/ssh/ssh_config,设置GSSAPIAuthentication no ,并重启sshd

TAGS: ,
9月 28th, 2015

一、环境准备

1、创建存放备份的目录以及存放二进制日志的目录

   # mkdir /backup
   # chown -R mysql:mysql /backup
   # mkdir /binlogdir
   # chown mysql:mysql /binlogdir

2、修改二进制文件存放路径为新建目录下,并设定innodb每表一文件

 # vim /etc/my.cnf
   log-bin=/binlogdir/mysql-bin   #二进制日志文件存放位置
   innodb_file_per_table = 1      #启用InnoDB表每表一文件,默认所有库使用一个表空间

3、启动服务并创建数据库

   # service mysqld start
   # mysql -uroot -ptsb-net
   mysql> create database testdb;
   mysql> use testdb;
   mysql> CREATE TABLE tb1 (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 
   Name CHAR(30) NOT NULL UNIQUE KEY, Age TINYINT UNSIGNED);
   mysql> insert into tb1 values (1,'Huchong',24);
   mysql> insert into tb1 values (2,'Huafeng',24);
   mysql> insert into tb1 values (3,'Jim',21);
   mysql> insert into tb1 values (4,'Tom',25);

显示创建内容.png

二、进行备份(完全备份+增量备份+节点恢复)

1、完全备份

# mysqldump -uroot -ptsb-net --lock-all-tables --flush-logs --events --routines --master-data=2 --all-databases > /backup/fulldata-`date +%F`.sql
    --single-transaction: 基于此选项能实现热备InnoDB表;mysql> show table status\G;可以查看表的类型,如果表的类型不是全部为InnoDB,则需要使用--lock-all-tables;
    --events:备份数据的同时,备份事件调度器代码;
    --master-data=2:在备份文件中记录当前二进制日志的位置
    --all-databases:备份所有库
    --flush-logs:刷新二进制日志,产生一个新的二进制日志文件

2、模拟增量备份并进行增量备份

# mysql -uroot -ptsb-net
mysql> use testdb;
mysql> delete from tb1 where id = 4;  #模拟增量备份
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      297 |              |                  |
+------------------+----------+--------------+------------------+
mysql> flush logs;
mysql> quit;
# mysqlbinlog /binlogdir/mysql-bin.000002 > /backup/cactidb-`date +%F`.sql #增量备份

三、产生新的二进制事件并模拟数据库损坏

# mysql -uroot -ptsb-net
mysql> use testdb;
mysql> delete from tb1 where id = 3;
mysql> drop database testdb;    #模拟数据库损坏

四、数据库恢复

1、恢复前的准备

mysql> set global sql_log_bin=0;                  #不需要记录二进制日志
mysql> show global variables like 'sql_log_bin';  #查看二进制日志状态
mysql> flush logs;            #滚动日志
mysql> show master status;

+——————+———-+————–+——————+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000004 |      107 |              |                  |

+——————+———-+————–+——————+

2、导入完全备份及增量备份

# mysql -u root -ptsb-net < /backup/fulldata-2015-07-17.sql
# mysql -u root -ptsb-net < /backup/cactidb-2015-07-17.sql

3、节点恢复(目前日志文件是mysql-bin.000004,所以我们需要恢复的文件是mysql-bin.000003)

# mysqlbinlog  /binlogdir/mysql-bin.000003    #查看日志文件

QQ截图20150722111819.png

# mysqlbinlog --stop-position=297 /binlogdir/mysql-bin.000003 > /backup/last.sql
# mysql -u root -ptsb-net < /backup/last.sql 
# mysql -u root -ptsb-net
mysql> use testdb;
mysql> select * from tb1;

QQ截图20150722112110.png

五、收尾工作

mysql> set global sql_log_bin=1;    #开启二进制日志记录
mysql> quit;
# service mysqld restart

总结:mysqldump工具对InnoDB存储引擎的表可实现热备,备份时可以不锁定表,否则在备份前需要锁定表,只能实现温备。当备份的数据 量较大时,恢复时间会很长,因为恢复是把一条一条的sql语句读取后在mysql中执行,是写入操作。所以建议在数据量不大时可以使用此工具进行备份操 作,但当随着数据增长此工具将不适合进行mysql的备份可恢复操作,应选取其他更优的数据备份恢复方案。

9月 28th, 2015

在国外购买的VPS或者租用的服务器一般大部份情况下都会是英文的版本,英文还好最最要的是不能显示中文,中文目录,文件名之类的都无法显示。

这个文章介绍大家如何来把英文的 2003系统安装中文简体语言包。

数据包都比较大家建议大家使用迅雷下载 http://www.cr173.com/soft/13907.html

让Windows 2003 VPS安装中文语言包的图文教程。

1.下载Windows 2003中文包

下载地址:http://soft.dahualab.com/windows/Win2K3_SP2_MUI.iso

小提示:如果下载不了是你的IE安全设置设置的太高,请点击 ie->tools->internet settings 然后切换到secruity,把enable改成disable,把disable改成enable。

2. 安装Winrar解压缩软件

没安装winrar是无法解压缩Win2K3_SP2_MUI.iso文件,这就要求安装winrar了。
Winrar下载地址:http://www.cr173.com/soft/18645.html

期间如果提示不安全请直接点击add加入信任列表然后重新下载即可。

3. 解压缩 Win2K3_SP2_MUI.iso

双击安装WinRAR软件,之后就可以用WinRAR来解压缩 Win2K3_SP2_MUI.iso 了。

4.安装Windows 2003中文语言包

解压完毕之后点击MUISETUP.exe即可进行安装,按照下图1及图2所示进行勾选安装,途中会提示插入光盘,点击确定,里面的路径是D:\i386,直接修改为C:\i386即可,如图3所示。

(一般老外安装系统都比较本份会把 i386  的文件复制 C盘 i386 下 ,但是如果在C盘没看到 i386文件夹的同学就到西西下载一个完整的I386文件吧 ,http://www.cr173.com/soft/26527.html 500多M最好是用迅雷下载 🙁 西西在国外也有下载镜像也许直接用IE也能高速下载哈 http://big.cr173.com//windows2003sp2i386.RAR)

装完中文包之后重启,然后点击Start(开始),contral panel(控制面板)- Region and language 把看到的English都修改成China或者Chinese(PRC) 如图4所示。再次重启机器就OK了。

注意上面几个地方一定要勾选

如果C盘没有 i386文件夹的话就从西西下载一个吧

重启后进入控制面板 打开  Region and language

重启完后进入控制面板 把语言 菜单都改成中文

9月 12th, 2015

1、右键“我的电脑”,选择“管理”,打开“服务器管理器”

2、点击左边菜单栏“角色”调出角色窗口

3、接着点击“添加角色”,弹出添加“角色向导”

4、点击“下一步”进入服务器角色选项

5、勾选“Web服务器(IIS)”,弹出是否添加Web服务器(IIS)所需的功能。点击“添加必需的功能”所回到角色向导

6、Windows 进程激活服务,Windows 进程激活服务通过删除对HTTP 的依赖关系,可统一 Internet 信息服务 (IIS) 进程模型。通过使用非 HTTP 协议,以前只可用于 HTTP 应用程序的 IIS 的所有功能现在都可用于运行 Windows Communication Foundation (WCF) 服务的应用程序。IIS7.0 还使用 Windows 进程激活服务通过 HTTP 实现基于消息的激活。点击“下一步”到Web服务器安装界面

7、点击下一步弹出Web服务器(IIS)的功能选项,勾选需要安装的组件。采用默认安装,在这种安装方式下,只会安装最少的一组角色服务。如果需 要其他 IIS 角色服务,例如“应用程序开发”或“运行状况和诊断”,请确保在向导的“选择角色服务”页中选中与这些功能关联的复选框。

8、初级安装IIS默认基本上这些功能已经足够了,点击”下一步”进入安装选择确认界面。

9、系统列出了IIS服务器的安装列表,这里可以看到觉的HTTP功能,安全性及管理工具都在安装的列表里面,这时点击“安装”即可对这些组件及功能进行安装

10、等待安装完闭后关闭向导窗口,在打开浏览器输入本机IP,验证IIS7是否安装成功。

TAGS: ,
9月 12th, 2015

贵人多忘事?其实作为站长的我们,也不是贵人,但有时就是会忘记WordPress登录密码?尤其一直都是浏览器保存密码,哪知突然有一天,浏览器 也“失忆”了,怎么办?通过邮件取回?该死!服务器不支持发送邮件!!其实,不必担心,来看看找回WordPress登录密码的方法吧!

方法一:通过邮件取回

前提是你的主机空间支持发送邮件,这样你就可以点击WordPress登录页面的“忘记密码?”按操作即可找到。

方法二:修改数据库信息

登录phpMyadmin ,进入到网站对应的数据库,然后打开 wp_users 那个表,你会看到所有用户信息。

wpdaxue.com-201302345

比如上图中,管理员 demo 对应的密码是 user_pass 下的MD5值,你只需将它修改为 5d41402abc4b2a76b9719d911017c592,然后demo的密码就改为了 hello ,就可以登录啦!然后在 后台 的 用户>我的个人资料 修改新密码。

方法三:使用重置文件

如果你没办法登录phpMyadmin,那你也不用担心,将下面的代码另存为 reset_pw.php ,注意根据里面的注释修改 2-15行的相关信息(如果你不知道数据库的信息,可以查看你网站根目录下的 wp-config.php),然后通过FTP将 reset_pw.php 上传到网站根目录,在浏览器中访问这个文件,就会提示修改成功!使用完以后,记得删除 reset_pw.php ,以免存在安全隐患!!

  1. <?php
  2. /*你的数据库服务器地址,一般保持默认*/
  3. $servername = "localhost:3306";
  4. /*数据库用户名*/
  5. $phpMyadminUser = "root";
  6. /*数据库密码*/
  7. $phpMyadminKey = "yiduqiang";
  8. /*数据库名称*/
  9. $phpMyadminName = "test";
  10. /*wordpress数据表格前缀*/
  11. $QZ = "wp_";
  12. /*你要设置的wordpress新密码*/
  13. $NewKey = "yiduqiang";
  14. /*你要设置新密码的用户名*/
  15. $wordpress_User = "yiduqiang";
  16. ?>
  17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  18. <html xmlns="http://www.w3.org/1999/xhtml">
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  21. <title>wordpress密码找回工具</title>
  22. </head>
  23. <body>
  24. <?php
  25. error_reporting(0);
  26. if(!mysql_connect($servername,$phpMyadminUser,$phpMyadminKey))
  27. {
  28.     echo "对不起,数据库链接出错。<br />";
  29. }
  30. else
  31. {
  32.     echo "数据库链接成功。<br />";
  33.     mysql_select_db($phpMyadminName,mysql_connect($servername,$phpMyadminUser,$phpMyadminKey));
  34.     if (!mysql_query("update ".$QZ."users set user_pass='".md5($NewKey)."' where user_login='".$wordpress_User."'"))
  35.     {
  36.         echo "对不起,修改密码失败。";
  37.     }
  38.     else
  39.     {
  40.         echo "修改密码成功。";
  41.     }
  42. }
  43. ?>
  44. </body>
  45. </html>
9月 12th, 2015

magento 安装时出现 There has been an error processing your request 错误解决方法

Exception printing is disabled by default for security reasons.

Error log record number:

解决方法:

复制magento根目录下 /errors/local.xml.sample 并命名为/errors/local.xml

改变magento根目录下/lib/Zend/Cache/Backend/File.php

文件里面

protected $_options = array(

‘cache_dir’ => NULL,

‘file_locking’ => true,

protected $_options = array(

‘cache_dir’ => ‘tmp/’,

‘file_locking’ => true,

然后在根目录下创建tmp文件夹.

再然后刷新前台,”There has been an error processing your request” 就没有了,出现的是错误提示的也没,然后根据错误提示方便寻找解决答案!

简单的来说就是给cache_dir设置一个目录为‘tmp/’

注意这个不要改漏掉了哦:复制magento根目录下 /errors/local.xml.sample 并命名为/errors/local.xml

TAGS:
9月 12th, 2015

1.uptime命令

uptime

 

输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00

如下图所示:


2.查看/proc/uptime文件计算系统启动时间

cat /proc/uptime

 

输出: 5113396.94 575949.85 第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间

代码:

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

输出: 2008-11-09 11:50:31

3.查看/proc/uptime文件计算系统运行时间

代码:

cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

输出:系统已运行:59天4时13分9秒