浏览模式: 标准 | 列表 Tag: mysql

解决linux下mysql数据库一直显示使用中问题

当在linuxmysql数据库一直显示使用中,可能这个问题就是数据库权限错误导致。

mysql的数据库用户是mysql,而有时数据库的迁移中因为数据库被root用户直接复制迁移导致权限变成了root用户,所以只需要把权限改为mysql即可。

以wdcp主机管理系统为例,修改一个is36的mysql数据库权限如下:

[root@is36.com /]# chown -R mysql.mysql /www/wdlinux/mysql/var/is36/

Tags: linux, mysql, 使用中

dedecms转iwms操作过程

dedecms是一款基于php+mysql的国产cms系统,iwms是一款基于asp.net+access/mssql的国产cms。前者漏洞百出,后者比较适合企事业单位发布内容,已知漏洞极少。

一朋友网站构建于dedecms之上,某次检查时候发现后门无数,垃圾文件达到上万个。修补dedecms的漏洞还不如直接把数据转到另外一款cms系统——iwms系统。

懒人先搜索有没有直接转换的工具,发现没有。在这样的前提下,只能手工进行转换了。

iwms系统是可以在后台配置好参数直接采集access或者mssql数据库的,而dedecms的数据库是mysql,为了方便操作,得想办法把它转换到access。

以下开始记录手工操作步骤:

1、dede_archives表记录着文章内容页除了文章内容外的其他信息,dede_addonarticle表记录着文章内容,dede_arctype表记录着文章栏目。

2、手工摘录下dede_arctype表中文章栏目名称和栏目id。

3、在dede_archives表增加文章内容列body(类型为 mediumtext)和文章发布时间pubdate2(类型为datetime)。

4、接着通过文章id一一对应把dede_addonarticle表中的内容通过update方式存入dede_archives表中的body列中。

5、而dede_archives表中文章发布列pubdate是一个10位整数的Unix 时间戳,需要把它通过FROM_UNIXTIME函数转换为datetime类型存入到pubdate2列中。类似:update dede_archives set pubdate2=(select FROM_UNIXTIME(pubdate) from dede_archives where aid=1) where id=1;

6、完成以上5步操作已经把转换所需的基本7个信息都集合到了一个表内:文章栏目、文章标题、文章内容、文章点击数、文章发布时间、文章作者、文章来源。

7、接着借助《Convert Mysql to Access 4.0免费版》软件把数据库中的dede_archives列转换到access数据库(数据库编码选择gbk否则会出现乱码)。软件下载地址:http://www.5stardatabasesoftware.com/cn/mysqltoaccess.php

8、转换得到的mdb文件放到iwms系统网站目录下,通过“数据采集”功能下的“数据库采集”完成数据采集。

以上操作步骤供参考,其中有较多细节懒得输入写,只是简单记录方便下次操作方便。

Tags: dedecms, iwms, mysql, access

Mysql清空表(truncate)与删除表中数据(delete)的区别

因为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活。遂考虑直接进入mysql直接清空表或者删除表中数据。

本文记录一下这2种操作模式的区别,目标对象是表wp_comments,里面的所有留言均是垃圾留言,均可删除。然后便有了以下2种方式(进入mysql操作界面后):

  1. truncate table wp_comments;
  2. delete from wp_comments;

其中truncate操作中的table可以省略。这两者都是将wp_comments表中数据清空,不过也是有区别的,如下:

  • truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
  • truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
  • truncate不激活trigger(触发器),但是会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。
  • 如果只需删除表中的部分记录,只能使用DELETE语句配合where条件。 DELETE FROM wp_comments WHERE……

全文完。

Tags: mysql, truncate, delete

时代互联手机站二次因MYSQL出错爆路径

为了快速浏览某域名是否被注册或者是whois信息,我会选择“时代互联手机站”,也就是www.times.mobi。今天浏览时代互联手机站打开http://www.times.mobi/domain/whois.php?chrDomain=baidu.com想查看baidu的whois信息,结果又一次报错如下:

Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'nownetcn'@'10.0.61.137' (using password: YES) in /liusra2/now.cn/web/wap/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/wap/conf/db.inc.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www.git/api/whois/whoisclass.inc.php on line 39

Access denied for user 'nownetcn'@'10.0.61.137' (using password: YES)SELECT * FROM WhoisCache WHERE Domain='baidu.com'


140325查询某域名又报错——太多的mysql连接

Warning: mysql_pconnect() [function.mysql-pconnect]: Too many connections in /liusra2/now.cn/web/mobile/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/mobile/conf/db.inc.php on line 6

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www.git/api/whois/whoisclass.inc.php on line 39

Too many connectionsSELECT * FROM WhoisCache WHERE Domain='is36.com'

Tags: 时代互联手机站, mysql

Linux VPS定时自动备份网站和mysql数据库并上传至FTP的脚本

网上很多做VPS推介的网站都会提醒用户注意备份网站数据,而linux vps备份的方法都是用脚本定时自动化备份,其中有一个自动化备份并上传至ftp服务器的脚本有点问题(手动执行脚本本地可以产生备份数据压缩包并上传到ftp服务器,但是放到crontab里自动化执行则只有本地可以产生备份数据压缩包却没有上传到ftp服务器),我改了下脚本,适用于使用lnmp环境下定时自动备份网站和mysql数据库并上传至FTP:

  • #!/bin/bash
  • MYSQL_USER=root
  • MYSQL_PASS=root
  • FTP_USER=ftp
  • FTP_PASS=123456
  • FTP_IP=www.is36.com
  • FTP_backup=/public_html/
  • WEB_DATA=/home/wwwroot/
  •  
  • DataBakName=Data_$(date +"%Y%m%d").tar.gz
  • WebBakName=Web_$(date +%Y%m%d).tar.gz
  • OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
  • OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
  • rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
  • cd /home/backup
  • for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  •     (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
  • done
  • tar zcfP /home/backup/$DataBakName /home/backup/*.sql.gz
  • rm -rf /home/backup/*.sql.gz
  • tar zcfP /home/backup/$WebBakName $WEB_DATA
  •  
  • ftp -i -n << !
  • open $FTP_IP
  • user $FTP_USER $FTP_PASS
  • bin
  • lcd /home/backup/
  • cd $FTP_backup
  • delete $OldData
  • delete $OldWeb
  • put $DataBakName
  • put $WebBakName
  • bye

Tags: linux vps, mysql, lnmp, ftp

wdlinux之mysql无法启动解决

某天,连接某VPS时显示程序无法连接mysql服务,SSH登陆进行问题排查。

先查看mysql是否运行:ps auxf | grep mysql

如果有进程存在,那么可以考虑杀死mysql的进程,因为mysql可能已经卡死掉了,命令:kill mysql_pid,然后再尝试启动mysql服务。

当然也可以直接采用pkill -9 mysql这样暴力的杀死进程方式,不过正冰不推荐这样操作,有可能导致数据意外丢失。

本案例中mysql并没运行,那么尝试启动它:service mysqld start

结果并不乐观,返回信息如下: 

  • ERROR! MySQL manager or server PID file could not be found!
  • Starting MySQL. ERROR! Manager of pid-file quit without updating file. 

通过这样的错误提示并不能准确定位问题,继续去看mysql的错误日志文件,位于/www/wdlinux/mysql/var/vps.err,最新的启动错误信息如下: 

  • 120513 14:20:51 mysqld_safe Starting mysqld daemon with databases from /www/wdlinux/mysql-5.1.61/var
  • 120513 14:20:51 [ERROR] /www/wdlinux/mysql-5.1.61/libexec/mysqld: unknown option '--skip-innodb'
  • 120513 14:20:51 [ERROR] Aborting
  • 120513 14:20:51 [Note] /www/wdlinux/mysql-5.1.61/libexec/mysqld: Shutdown complete
  • 120513 14:20:51 mysqld_safe mysqld from pid file /www/wdlinux/mysql-5.1.61/var/vps.pid ended

解决方法很简单了,编辑/www/wdlinux/etc/my.cnf文件,将其中的--skip-innodb注释掉即可,也就是在这个项目前加#并保存,然后启动mysql搞定。

Tags: linux, wdlinux, mysql

时代互联手机站因MYSQL出错爆路径

为了快速浏览某域名是否被注册或者是whois信息,我会选择“时代互联手机站”,也就是www.times.mobi。今天浏览时代互联手机站打开http://www.times.mobi/domain/whois.php?chrDomain=baidu.com想查看baidu的whois信息,结果报错如下:

Warning: mysql_pconnect() [function.mysql-pconnect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /liusra2/now.cn/web/wap/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/wap/conf/db.inc.php on line 6

Warning: include(../conf/global/scp/scp_server.inc.php) [function.include]: failed to open stream: No such file or directory in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 9

Warning: include() [function.include]: Failed opening '../conf/global/scp/scp_server.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 9

Warning: include(../conf/global/scp/scp_config.inc.php) [function.include]: failed to open stream: No such file or directory in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 10

Warning: include() [function.include]: Failed opening '../conf/global/scp/scp_config.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 10

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www/api/whois/whoisclass.inc.php on line 30

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)SELECT * FROM WhoisCache WHERE Domain='baidu.com

从错误中可以看出MySQL出错了……

Tags: 时代互联手机站, mysql

查看MySQL是否支持InnoDB引擎以及不支持的解决办法

通过命令行进入mysql或者是通过phpmyadmin进行操作,执行如下命令:

SHOW variables like "have_%"

显示结果中会有如下3种可能的结果:

  • have_innodb YES
  • have_innodb NO
  • have_innodb DISABLED

这3种结果分别对应:

  • 已经开启InnoDB引擎
  • 未安装InnoDB引擎
  • 未启用InnoDB引擎

针对第二种未安装,只需要安装即可;针对第三种未启用,则打开mysql配置文件,找到 skip-innodb项,将其改成#skip-innodb,之后重启mysql服务即可。

Tags: mysql, innodb

Total:1212Next ›