早上登上服务器发现服务器异常重启了,当时也没在意,不料过一会儿登陆网站后台发现登陆不进去,也没有任何错误提示。凭经验感觉是数据库连接出了问题,到管理工具的“服务”里看了看,MySQL这个服务竟然消失不见了,真是神奇。谷歌了一下,解决办法就是重新安装MySQL服务。
首先用命令行定位到mysql文件夹中的bin目录,然后输入以下命令:
mysqld.exe -install //mysql5.1及以上版本版本 mysqld-nt.exe -install //mysql5.0
当出现提示“Service successfully installed. ”之后再去服务里面刷新,就可以看到MySQL服务了。开启服务之后问题就解决了。
附图:
windows server 2003中MySQL服务消失的解决办法
虽然作为一个半吊子前端来说,数据库和我没什么关系,不过维护网站的时候还是难免和数据库打交道。以前在学校的时候SQLServer学的还不错,但是现在早都忘光了,基本的语句都得去网上查。更可气的是有时候查到的还是错的,我内心一万头草泥马奔腾而过……所以在这里记下常用的语句,做个书签。
添加字段:
alter table dede_sysconfig add cfg_data_about varchar(500);
删除字段:
alter table dede_sysconfig drop column cfg_data_about;
插入记录:
INSERT INTO `dede_addonarticle` (`body`) VALUES('test'); //只插入对应字段的记录 INSERT INTO `dede_sysconfig` VALUES(800,'cfg_data_about',"网页中关于我们的文字",1,"bstring",NULL);//插入所有字段的记录(没有指定字段,所以要把每个字段的值都写出来)
删除记录:
DELETE FROM `wp_users` WHERE `user_email` like '%yahoo%';
替换:
UPDATE `dede_addonarticle` SET `body`=replace(body,'最好','');
修改:
UPDATE dede_arctype SET typedir='{cmspath}/a/yyjj' where id=1;
查找:
select * from dede_addonarticle where body like '%最好%';
清空表:
TRUNCATE TABLE dede_diyform1
删除表:*
DROP TABLE wp_links,wp_options,wp_postmeta
删除数据库:
drop database datebaseName
修改字段的类型和长度:
alter table dede_arctype modify column typedir char(100) ;
另可参考《mysql sql语句大全》
*一次性删除数据库内所有所有表的办法:
先执行
SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` WHERE table_schema='datebaseName';
执行结果里有许多DROP TABLE语句,全部复制然后执行,就删除了所有的表。
(如果是phpmyadmin的话,由于查询结果不便于复制,可以得到的结果导出为word文件,然后复制“转存表中的数据 TABLES”一项的内容并执行。)
常用sql语句
我在同一个数据库中安装了两个 dedecms,第一个前缀是dede_,第二个是dede2_。现在不需要第二个 dedecms了,于是百度到一个从mysql数据库中批量删除相同前缀的数据表的办法。
先在phpmyadmin中执行下面的sql语句:
Select CONCAT( 'drop table ', table_name, ';' )
FROM information_schema.tables
Where table_name LIKE 'dede2_%';
执行之后,会得到一系列语句:
drop table dede2__addonimages;
drop table dede2__addonsoft;
………………
drop table dede2__vote_member;
这里面列出了删除所有dede2_前缀数据表的语句。全部复制下来,再粘贴到sql中执行就OK了。
从mysql数据库中批量删除相同前缀的数据表
今天某个网站的自定义表单里发现了大量垃圾内容,打算把表单里的所有数据都删除掉。sql以前学过入门知识,但现在基本也都忘光了,于是还是去百度。最后使用了 TRUNCATE TABLE 表名 的方法。
TRUNCATE TABLE dede_diyform1
TRUNCATE是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。其没有筛选条件;不留下日志记录,不可恢复。
此外清除表数据还可以用 DELETE FROM 表名 WHERE 条件 的方法,可以有选择的删除;删除速度较慢,但是可恢复。