标签 MySQL 下的所有文章

LNMP定期自动备份MySQL数据库到阿里云OSS详细步骤

研究了一下项目运维中自动备份数据库到阿里云OSS的步骤,记录一下阿里云后台和服务器的一系列操作。

阿里云后台准备工作

进入阿里云对象存储OSS后台,先开一个Bucket,命名为“brain-backup-db”。因只是做备份数据库用,所以存储类型选最便宜的“归档存储”即可,其他选项用不着的就都不开。关于费用,本文最后一节会做介绍。
创建OSS Bucket
OSS Bucket列表

然后进入这个Bucket的概览页面,找到外网访问的Endpoint,记录下来。

如果你的ECS和OSS是在同一地区的,也可以根据实际网络情况,这里的Endpoint选第二或第三个,存储速度飞快。特别说明,一般购买阿里云ECS,默认网络是经典网络,也就是说同区域的ECS数据备份到OSS上,大部分情况下可以选绿框圈出的那个;跨区域或者用的是非阿里云ECS服务器的,则选红框圈出的。

查看详细 »

LNMP升级操作记录

近期阿里云的几台主机都到了续费时间,想着续费就顺便都升级一下硬件配置。升级了硬件配置就又免不了想把几台服务器的旧版环境也升级一下,又可以榨取一下性能,本篇就记录一下LNMP升级的操作。

首先我尝试LNMP官网的操作,把LNMP新版直接下载到本地,然后通过运行upgrade1.x-1.7.sh脚本升级。结果直接报错提示我缺少各种包。可能是漏了什么操作了,但是也实在没工夫去深入研究,所以改为尝试卸载旧版LNMP,重新安装新版。

卸载之前系统提示我一定要备份数据库,因为卸载LNMP会把MySQL连同数据都删掉。所以必须先把MySQL数据整个dump出来备份一下。

进入MySQL安装目录/usr/local/mysql/bin/,运行命令
mysqldump -uroot -p --all-databases > /home/backup2020.sql
这样就在home目录下生成了一个backup2020.sql备份文件,卸载LNMP不会把它删掉,可以放心操作后面的。 查看详细 »

Linux主机丢失MySQL的root账户密码,重置密码步骤

有一段时间未登录的测试机,发现MySQL的root密码找不回了,整理一下网上搜的办法重置密码,记录一下步骤。

SSH登录到服务器,找到MySQL配置文件/etc/my.cnf,在[mysqld]这一行下面添加一行:

skip-grant-tables

保存后,重启MySQL:

service mysqld restart

然后就可以用无密码方式登录MySQL了
在mysql命令符后,留意一下系统提示的MySQL版本号,执行语句

#MySQL5.7以下版本
UPDATE user SET Password = password ( 'abcd1234' ) WHERE User = 'root' and Host='localhost';

#MySQL5.7和更新版本
update user set authentication_string=password('abcd1234') where User='root' and Host='localhost';

#退出
quit;

密码abcd1234只是示例,尽量改复杂一些。

然后再打开my.cnf文件,去掉刚才加的那一行,保存后再次重启MySQL,即告完成。

检查LNMP上MySQL宕机并自动重启服务的脚本和使用方式

近期发现服务器上MySQL又经常宕机了,平均每周一次,应该和最近新挂上去的几个WordPress网站有关,毕竟一台配置不算豪华的主机上挂了10个WP网站,压力太大难免会内存不够造成宕机。每次宕机都需要自己重启MySQL也比较麻烦,如果是客户自己发现的,感觉更不好,所以网上找了个无人值守的脚本先用起来。 查看详细 »

一次解决LNMP主机反复宕机问题的记录

新购的一台阿里云主机,几乎每天都会发生MySQL自动停止服务。主机其他部分看来运行都正常,怀疑是哪里设置的不对,但我装完这台LNMP改的默认设置不多,之前也并没有碰到过类似的问题。既然是MySQL停止服务,那么就从MySQL这里找问题,搜索了一个多小时,发现MySQL宕机有很多可能性,一时无法确定。但解决此类问题的关键都是查看错误日志开始。

命令行进入本地MySQL,之后输入密码

mysql -hlocalhost -uroot -p

之后进入提示符mysql>

查看错误日志的位置

mysql> show variables like '%log_error%';

此时获取到了文件位置。查看日志后,发现大部分重复片段是这样的:

2017-07-26 04:34:03 7617 [Note] Plugin 'FEDERATED' is disabled.
2017-07-26 04:34:03 7617 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-07-26 04:34:03 7617 [Note] InnoDB: The InnoDB memory heap is disabled
2017-07-26 04:34:03 7617 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-07-26 04:34:03 7617 [Note] InnoDB: Memory barrier is not used
2017-07-26 04:34:03 7617 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-07-26 04:34:03 7617 [Note] InnoDB: Using CPU crc32 instructions
2017-07-26 04:34:03 7617 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2017-07-26 04:34:03 7617 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' init function returned error.
2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-07-26 04:34:03 7617 [ERROR] Unknown/unsupported storage engine: InnoDB
2017-07-26 04:34:03 7617 [ERROR] Aborting

查看详细 »

LNMP环境下MySQL日志蚕食磁盘空间的解决方法

安装了LNMP的云主机,如果不解决这个问题,每隔几个月就会因为磁盘空间不足而宕机。这个问题发现的比较慢,间隔也比较长,运营新手很容易忽视。

如果发现MySQL日志已经占据了大量磁盘空间,先登录主机,到/usr/local/mysql/var/目录下,找到mysql-bin.*** 后面跟一串数字的文件,直接删除即可恢复磁盘空间。
删除日志的命令操作:
/usr/local/mysql/bin/mysql -u root -p
输入密码登录后再执行:reset master;
看到以下显示即告完成:
LNMP环境下MySQL日志蚕食磁盘空间的解决方法

再输入:quit 退出mysql命令模式
查看详细 »

WordPress网站搬家、数据库升级心得

这两天忙着给公司的一批WordPress网站搬家,碰到了不少以前没遇到过的麻烦,总结一下解决问题的经验。WordPress网站搬家除了要把wp-content的文件转移之外,如果碰到数据库设置的变更,就比较麻烦了。在旧空间上,我们的WP是每个站独享一个数据库;在新的主机上由于权限的限制,好几个网站都必须共享一个数据库。解决思路是要在新的空间里给每个WP网站设置不同的prefix,思路很简单,但实际操作的时候还是碰到了不少问题。 查看详细 »

在PHPMyAdmin中修改MySQL的root密码

对于我这样的数据库菜鸟来说,登录主机在命令行操作MySQL还是有些不方便,所以我习惯在服务器上装一个PHPMyAdmin来操作数据库。为加强主机的安全性,新装的数据库都要修改MySQL的root密码,以前都是找服务商或网管搞定的,今天我打算自己试试看。百度了几篇文章,自己倒也弄成了。

首先,用root帐号登录PHPMyAdmin,找到名叫“mysql”数据库,点顶部菜单的SQL,进入命令行模式。
在PHPMyAdmin中修改MySQL的root密码 查看详细 »