简单的Coder

Code is my life, that's it.

重新设置Mysql的root密码

昨天帮朋友安装部署Mysql的时候,用mysqladmin给root用户设置了一个16位的随机密码,还没来得及记下来就被突然插进来的事儿打断了,等我回来的时候已经找不到这个密码了。像这样的事情在我身上已经发生过了2次,每次Google『Mysql忘记root密码』都没有找到可行的方案(可能是因为Mysql版本和网上这些提到的不一样导致重置失败),所以这次我要记下来一个自己确认可行的方案以供今后参考。

我的环境版本

  • CentOS release 6.3 (Final)
  • mysql Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1

问题描述

1
mysqladmin -u root -p randompassword

之后,忘记了randompassword,无法登陆mysql,需要找回root密码。

解决方案

  1. 修改mysqld的配置文件`/etc/my.cnf’,在每个section里追加一条设置:「skip-grant-tables 」,比如:
1
2
3
4
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
  1. 重启mysqld
  2. 登陆mysql,修改root密码。
1
2
3
4
> mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=password ('new-password') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
  1. /etc/my.cnf更改回来。
  2. 重启mysqld

注意: 「skip-grant-tables」模式是忽略权限认证的意思,所以在上述步骤1开始前先保证外人无法连接你的mysqld

Alfred Workflow: 什么值得买

作为一个命令行控,一向能用命令的我都会用命令。记得5,6年前Firefox有一个扩展叫做Ubiquity,相当于浏览器上的一个Shell,用户可以通过Web技术开发命令行工具,比如Gmail, Map, 点评等,不知后来此项目为什么夭折了。

什么是Alfred的workflow?如果你是Mac用户,那么你可以看看官方介绍
今天有点时间为什么值得买写了一个Alfred的workflow: alfred-smzdm-workflow,方便随时查看smzdm最新发布的优惠信息。

下载:smzdm.alfredworkflow
源码:Github
截图:

Mac英文系统下iTunes导入中文歌曲乱码的解决方法

为了命令行的方便,我的Mac一直用的都是英文的系统。今天我往iTunes里导入中文歌曲的时候发现歌曲名,专辑名,作者名全是乱码,网上搜到的解决方案没有几个靠谱的。于是,还是自己用Python写了个脚本来搞定吧。

我的MP3文件的ID3信息编码都是GBK的,把它转成UTF8就OK了。读写ID3信息的库我用的是Mutagen,接口简单,示例文档小巧。我在转编码的时候遇到一个难点,就是怎么把下面unicode中的编码decode?

1
s = u"COMM=='chi'=www.lizhizhuangbi.com\nTALB=\xb1\xbb\xbd\xfb\xbc\xc9\xb5\xc4\xd3\xce\xcf\xb7\nTDRC=2004\nTIT2=\xbf\xa8\xb7\xf2\xbf\xa8\nTPE1=\xc0\xee\xd6\xbe\nTPE2=\xc0\xee\xd6\xbe"

看上去原信息是GBK编码,可是怎么decode呢?Mutagen返回的直接就是unicode,没法decode 。最后只能尝试直接读取字符流,然后按照GBK来decode才成功。下面的decode_gbk_from_unicode(s)就是实现逻辑。