MYSQL-ERROR-1862

遇到错误:
ERROR 1862 (HY000): Your password has expired. To log in you must
change it using a client that supports expired passwords.

原因是:
MySQL 5.6 introduces password-expiration capability, to enable database administrators to expire account passwords and require users to reset their password.

所以只需重新修改下密码即可,修改方式如下:
以root权限登录mysql:(这里我的账户是root,密码也是root)
mysql -uroot -proot
然后更改密码:
SET PASSWORD = PASSWORD('root');

OK,可以正常使用了。

archlinux使用i3wm安装

安装i3窗口管理器
pacman -S i3
安装 lightdm 显示管理器,
pacman -S lightdm-gtk3-greeter
然后
systemctl enable lightdm
systemctl start lightdm
登陆进i3之后会自动加载配置向导,基本上一路next即可。

安装网络管理器

1
2
3
# pacman -S netork-manager-applet
# systemctl enable NetworkManager.service
# systemctl start NetworkManager.service

列个软件包列表,应该都是你需要的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
firefox, flashplugin: 浏览器和flash插件
xfce4-terminal: 我推荐的终端模拟器
tmux: 你懂的
nautilus或pcmanfm或nemo: 文件管理器
rofi: 启动器
compton: 开透明什么的需要
pnmixer: 调音量
gthumb: 看图
gnome-screenshot, deepin-screenshot: 截图
lxappearence: 设置主题、外观
numix-theme, numix-circle-icon-theme-git: 我喜欢的主题和图标,装完用lxappearence设置生效
nitrogen: 设置壁纸
conky: 系统状态监视
xfce4-power-manager: 电源管理
mate-notification-daemon: 桌面通知

还有好多日常软件日后慢慢告诉你…

拷贝配置文件

把旧系统中,/home/yooo/里的以下文件拷到现在的$HOME对应的位置里:

1
2
3
4
5
6
7
.bashrc: Shell配置
.xprofile: 进入X时的环境文件
.i3/*: i3的配置文件
.vimrc, .vim/: vim配置文件
.tmux.conf: tmux配置文件
.fonts/: 一些字体
.config/fontconfig/: 字体配置

其他的,例如壁纸之类,看着拷回来就是了…

输入法

安装fcitx

1
# pacman -S fcitx-im fcitx-sunpinyin fcitx-cloudpinyin fcitx-configtool

然后,确保自己的~/.xprofile里有以下三行:

1
2
3
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

你的~/.i3/autostart.sh会再启动i3时自动运行fcitx,右键那个图标,把sunpinyin给enable了。

多媒体

播放器和解码器:
# pacman -S gstreamer ffmpeg smplayer
音频
# pacman -S alsa-utils pulseaudio-alsa
把自己加到用户组里

1
2
# gpasswd -a yooo audio
# gpasswd -a yooo video

一些字体

你现在的字体应该还比较难看,装上这些包:

# pacman -S wqy-microhei ttf-dejavu ttf-droid cantarell-fonts adobe-source-han-sans-cn-fonts
你应该还需要写带中文的文档

1
2
# pacman -S texlive-most
# yaourt -S acroread-fonts-systemwide

未完待续

关于NoSQL

NoSQL

为什么需要NoSQL

  • 高并发读写
  • 海量数据的高效率存储和访问
  • 高可扩展性和高可用性

NoSQL分类

  • 键值(key-value)
  • 列存储数据库
  • 文档型数据库
  • 图形数据库

特点

  • 易扩展
  • 灵活的数据模型
  • 大量数据,高性能
  • 高可用

MacNginx默认

Mac

NGNIX 默认

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /usr/local/etc/nginx/servers/.

To have launchd start nginx now and restart at login:
brew services start nginx
Or, if you don’t want/need a background service you can just run:
nginx
==> Summary

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Struts2基于注解的Action配置

使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了。

要使用注解方式,我们必须添加一个额外包:struts2-convention-plugin-2.x.x.jar。

虽说是零配置的,但struts.xml还是少不了的,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
<!-- 请求参数的编码方式-->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开-->
<constant name="struts.action.extension" value="action,do,htm"/>
<!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.devMode" value="false"/>
<!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring" />
-->
<!-- 是否开启动态方法调用-->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
</struts>

action类的注解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.tjcyjd.web.action;  

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ExceptionMapping;
import org.apache.struts2.convention.annotation.ExceptionMappings;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;

/**
* Struts2基于注解的Action配置
*
*/

@ParentPackage("struts-default")
@Namespace("/annotation_test")
@Results( { @Result(name = "success", location = "/main.jsp"),
@Result(name = "error", location = "/error.jsp") })
@ExceptionMappings( { @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") })
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 2730268055700929183L;
private String loginName;
private String password;

@Action("login") //或者写成 @Action(value = "login")
public String login() throws Exception {
if ("yjd".equals(loginName) && "yjd".equals(password)) {
return SUCCESS;
} else {
return ERROR;
}
}

@Action(value = "add", results = { @Result(name = "success", location = "/index.jsp") })
public String add() throws Exception {
return SUCCESS;
}

public String getLoginName() {
return loginName;
}

public void setLoginName(String loginName) {
this.loginName = loginName;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password= password;
}

}

这样就完成了一个基于注解的action配置。

总结常用的注解如下:

1
2
3
4
5
6
7
8
9
10
11
Namespace:指定命名空间。
ParentPackage:指定父包。
Result:提供了Action结果的映射。(一个结果的映射)
Results:“Result”注解列表
ResultPath:指定结果页面的基路径。
Action:指定Action的访问URL。
Actions:“Action”注解列表。
ExceptionMapping:指定异常映射。(映射一个声明异常)
ExceptionMappings:一级声明异常的数组。
InterceptorRef:拦截器引用。
InterceptorRefs:拦截器引用组。

Vultr VPS锐速优化

  • Vultr服务器测试了几个,最后决定用日本的,距离大陆近,好像是最近新开的的,直连。
  • 关于锐速,想说的是,不知道为什么,电脑连网速还可以,但是手机用ss连网速超慢,可能是我联通卡的原因,刚开始用的洛杉矶的机房,换了几个都是美国的,手机上用还是不理想,最后ping了一下各个机房,发现日本的速度最快,然后就换了日本机房的服务器,又google原因,因为vultr 是KVM系统的VPS,所以发现了锐速,装了之后网速一路飙升,不排除是日本机房的原因。
  • 安装
    • wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
  • 卸载锐速
    • chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f

我的conky配置文件

  • github地址:https://github.com/yuan1/MyOwnConky
  • 编辑conky配置文件gedit ~/.conkyrc,讲conkyrc文件中的内容复制到里面,可以修改network下的enp1s0为你的链接,比如我用WiFi就修改为wlan0
  • 新建.conky目录mkdir ~/.conky
  • 将conky目录下的conky-startup.sh复制到.conky下
  • 将autostart目录下的conky.desktop复制到~/.config/autostart目录下
  • 重启即自动启动

1684769870

Linux下git使用

  • 在github上创建项目

  • 使用git clone https://github.com/xxxxxxx/xxxxx.git克隆到本地

  • 编辑项目

  • git add .(将改动添加到暂存区)

  • git commit -m "提交说明"

  • git push origin master 将本地更改推送到远程master分支。

  • 这样你就完成了向远程仓库的推送

  • 如果在github的remote上已经有了文件,会出现错误。此时应当先pull一下,即:git pull origin master然后再进行:git push origin master

git