备份 MySQL 数据库可以使用 mysqldump
命令:
// 导出单个数据库
mysqldump -u root -p database_name > back.sql
// 恢复
mysql -u root -p database_name < back.sql
也可以直接拷贝数据库文件,Linux 上的 MySQL 数据库文件位于 /var/lib/mysql
,每个数据库都有一个对应名称的文件夹。将其打包即可。
tar -zcvf back.tar.gz database_folder
备份 MySQL 数据库
MySQL 5.6 的内存占用偏高,安装后不改配置的话,总是占用400多MB的内存。就算你是一个小网站,只有1个数据库,也是如此。
如果不修改的话,一方面内存占用确实偏高,另一方面可能导致错误:“Windows 成功诊断出虚拟内存不足的情况”。
虽然只是一个可能而已,不过当时我确实怀疑是MySQL的问题。这台服务器物理内存4G,报错时内存占用并没有超出,即使按“已提交”的内存量来看也没超出4G,不知为何就报错。总之我还是去修改了下。
Read More →
解决MySQL 5.6 内存占用过高的问题
HeidiSQL(访问官网)是一款开源免费的轻量级数据库管理工具。今天我用它导出了数据,修改后又导入了回去,所以记录一下它导出导入SQL的步骤。
Read More →
HeidiSQL 导入导出 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中使用正则表达式
数据库的备份与恢复是个常见的问题,但是不同备份工具备份出来的.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;
如下:
记得输入分号,否则第二个命令会跑偏。
输入第三条之后就开始恢复了,等到执行完毕就ok了。
其实前两条命令,有些工具导出的sql文件里已经有了,有的没有(phpMyAdmin导出的就没有,这应该也是直接运行它备份的sql文件时无法恢复数据的原因)。所以有些工具备份的sql文件可能比较容易恢复,有的就要手动输入命令了。
使用MySQL命令行恢复phpMyAdmin导出的sql文件
如果你以前在操作系统上安装过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的问题
WordPress设置网站副标题需要到后台的设置项里设置,操作起来太繁琐,于是我用php做了个设置网站副标题的接口。这个没什么技术含量,主要是熟悉下php对mysql数据库的基本操作流程。
首先是到数据库里找到网站副标题的字段:
找到之后写出用于修改它的sql语句,如下:
UPDATE wp_options SET option_value = '大好き' WHERE option_name = 'blogdescription'
接下来做一个html文件和一个php文件,用html文件给php文件发送要设置的副标题,php接到请求后执行数据库操作。
功能做好之后,把html传到网站上,并保存成书签。以后想修改修改副标题只要打开这个书签,输入文字就可以了。
Read More →
用PHP做一个设置网站副标题的接口
由于我装的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
dedecms的系统设置里有许多参数(蓝色线条上面的是其他种类的设置),合起来有一百五十多条。不过我们最常用的还是第一栏的这些选项,这些选项也经常会在模板里调用。
如果我们要增加一项内容,以便在全站调用,应该怎么做呢?
Read More →
在 dedecms的系统参数中添加设置项
SQLyog是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具。本次分享的是SQLyog企业版,内附注册码,当软件提示注册时打开sn.txt输入注册信息即可。唯一的缺点就是版本比较旧=。=