saber酱的抱枕

努力变强

01/10
11:18
软件

解决MySQL 5.6 内存占用过高的问题

MySQL 5.6 的内存占用偏高,安装后不改配置的话,总是占用400多MB的内存。就算你是一个小网站,只有1个数据库,也是如此。

如果不修改的话,一方面内存占用确实偏高,另一方面可能导致错误:“Windows 成功诊断出虚拟内存不足的情况”。

解决MySQL 5.6 内存占用过高的问题

虽然只是一个可能而已,不过当时我确实怀疑是MySQL的问题。这台服务器物理内存4G,报错时内存占用并没有超出,即使按“已提交”的内存量来看也没超出4G,不知为何就报错。总之我还是去修改了下。
Read More →

解决MySQL 5.6 内存占用过高的问题

08/5
06:31
学习

在sql中使用正则表达式

前几天我对数据库进行了一次批量修改,但是今天发现有些地方改出了毛病,需要针对这些地方再进行修改。

什么问题呢?就是内链变成了以“/”开头的链接。问题在于http后面只有一个斜杠,所以要修复这个问题。

但是修复时还有个问题,就是如果直接匹配“/”的话,正常链接的“http://”也会被匹配到。为了避免这种失误,我只好尝试用正则表达式来解决。

我对着教程折腾许久,终于用术语叫做“零宽度负回顾后发断言”的方式达成了目标,累觉不爱。

/{1}+(?!/{1})
// 意思是 匹配“/”,但需要它后面不再有其他斜杠

然后我就去MySQL里用这个正则去查询一下试试:

select post_content from wp_posts where post_content REGEXP '/{1}+(?!/{1})';
// 报错  SQL错误(1139):Got error 'repetition-operator operand invalid' from regexp

emmmmm……上面的语法没错,但是问题在于MySQL对正则表达式的支持很简单,不支持零宽断言,所以悲剧了。所以这篇文章不幸成了反面教材……

后续:
我用了笨办法,先导出数据库,用文本编辑器替换之后再导回去,姑且也算解决了问题(逃

在sql中使用正则表达式

07/7
03:28
学习 软件

使用MySQL命令行恢复phpMyAdmin导出的sql文件

数据库的备份与恢复是个常见的问题,但是不同备份工具备份出来的.sql文件内容与格式不尽相同。

对于phpMyAdmin导出的sql文件,似乎用phpMyAdmin恢复比较容易。但我用其他一些MySQL数据库管理工具经常无法恢复成功(如使用Navicat for MySQL、HeidiSQL运行转储的sql文件,没有任何效果)。今天我试了下用MySQL命令行恢复phpMyAdmin导出的sql文件,感觉比较好使,记录一下。

恢复之前先手动创建一个空的数据库,编码和排序方式按需要选择。比如dedecms和WordPress默认的都是utf8_general_ci。

之后运行MySQL命令行,输入密码开始使用。

之后依次输入命令(按需要修改):

use databasename;
set names utf8;
source d:\desktop\simple.sql;

如下:

 database mysql phpmyadmin sql 恢复 数据库

记得输入分号,否则第二个命令会跑偏。

输入第三条之后就开始恢复了,等到执行完毕就ok了。

其实前两条命令,有些工具导出的sql文件里已经有了,有的没有(phpMyAdmin导出的就没有,这应该也是直接运行它备份的sql文件时无法恢复数据的原因)。所以有些工具备份的sql文件可能比较容易恢复,有的就要手动输入命令了。

使用MySQL命令行恢复phpMyAdmin导出的sql文件

06/24
16:18
软件

mysql首次安装却需要输入current password的问题

current password mysql 数据库

如果你以前在操作系统上安装过MySQL,那么当你重新安装MySQL时,会要求你先输入旧的密码(current password),才能设定新密码。

但是我刚才在一个新系统上安装MySQL,却也提示我输入current password。一开始我不知道这是什么鬼,随便填了个“root”,结果MySQL安装失败,报错:

Unable to update security settings. Access denied for user 'root'@'localhost' (using password: YES)

百度后发现这个问题在于current password密码不对,可是这个系统上以前根本没有安装过MySQL,怎么会要求输入current password呢?

后来我仔细思索,发现了问题所在。MySQL安装时会让我们选择数据库存放目录,当时我在D盘新建了个“database”文件夹,然后在安装路径里填入这个文件夹。MySQL当时就出现黄色感叹号,提醒:文件夹已存在。

当时觉得没什么,后来一想果然是这个原因。如果数据库目录是个已存在的目录(即使是空的),MySQL也认为以前安装过,就要求输入current password。

那么解决办法呢,有两种方式:
1.删除database文件夹,然后重新安装MySQL,让它自己去建立这个文件夹。
2.current password留空,不填即可。

mysql首次安装却需要输入current password的问题

02/16
17:17
学习

用PHP做一个设置网站副标题的接口

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

WordPress设置网站副标题需要到后台的设置项里设置,操作起来太繁琐,于是我用php做了个设置网站副标题的接口。这个没什么技术含量,主要是熟悉下php对mysql数据库的基本操作流程。

首先是到数据库里找到网站副标题的字段:

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

找到之后写出用于修改它的sql语句,如下:

UPDATE wp_options SET option_value = '大好き' WHERE option_name = 'blogdescription'

接下来做一个html文件和一个php文件,用html文件给php文件发送要设置的副标题,php接到请求后执行数据库操作。

功能做好之后,把html传到网站上,并保存成书签。以后想修改修改副标题只要打开这个书签,输入文字就可以了。
Read More →

用PHP做一个设置网站副标题的接口

11/22
16:40
学习

安装phpMyAdmin

安装phpMyAdmin

由于我装的wampserver环境没有带phpMyAdmin,所以我自己撞了下,记录下过程。

1.到官网或其他下载站下载phpMyAdmin的安装文件。

2.解压后,将解压出来的文件夹改名为“phpmyadmin”,以便访问。

3.将phpmyadmin文件夹放到web环境里,如我在本地,就放到127.0.0.1里。

4.将phpmyadmin文件夹里的config.sample.inc.php 更名为 config.inc.php。

5.编辑并保存config.inc.php:

修改 $cfg['Servers'][$i]['controluser'] 把前面的 //去掉,在后面写上数据库名字 如 'root'
$cfg['Servers'][$i]['controlpass'] 把前面的// 去掉,在后面写上数据库密码,如'123'
修改$cfg['blowfish_secret'] = '' 在后面'' 里面随便填上几个数字 '456'

做完之后,在浏览器中访问phpMyAdmin就OK了~

ps:本文是数据库相关,可巧的是我刚才在数据库里执行sql语句替换东西替换错了←_←

我先写了这篇文章,然后数据库替换出错了,又用今天早上的备份恢复了一下,所以这篇文章是第二次写的了→_→

安装phpMyAdmin

11/21
13:21
学习

在 dedecms的系统参数中添加设置项

在 dedecms的系统参数中添加设置项

dedecms的系统设置里有许多参数(蓝色线条上面的是其他种类的设置),合起来有一百五十多条。不过我们最常用的还是第一栏的这些选项,这些选项也经常会在模板里调用。

如果我们要增加一项内容,以便在全站调用,应该怎么做呢?
Read More →

在 dedecms的系统参数中添加设置项

12/16
11:00
学习

windows server 2003中MySQL服务消失的解决办法

早上登上服务器发现服务器异常重启了,当时也没在意,不料过一会儿登陆网站后台发现登陆不进去,也没有任何错误提示。凭经验感觉是数据库连接出了问题,到管理工具的“服务”里看了看,MySQL这个服务竟然消失不见了,真是神奇。谷歌了一下,解决办法就是重新安装MySQL服务。

首先用命令行定位到mysql文件夹中的bin目录,然后输入以下命令:

mysqld.exe -install //mysql5.1及以上版本版本
mysqld-nt.exe -install //mysql5.0

当出现提示“Service successfully installed. ”之后再去服务里面刷新,就可以看到MySQL服务了。开启服务之后问题就解决了。

附图:

使用cmd安装mysql服务

windows server 2003中MySQL服务消失的解决办法