Guo Qiang

一些疑难问题

Frequently Asked Questions
image
当遇到困难时,一定要勇敢的去面对

我们总是被各种各样的问题困扰,有时为了解决这一个问题,可能需要话费几小时甚至几天的时间,有的问题确实复杂,而有的问题真得好简单,只是我们当时没有找对方向。

个性化 shell 提示符

适用 bash shell:


export PS1="\[\e[0;31;1m\]\h\[\e[0;35;1m\]@\[\e[m\]\[\e[36;1m\]\u\[\e[0;33;1m\][\[\e[m\]\[\e[0;32;1m\]\w\[\e[m\]\[\e[0;33;1m\]]\[\e[m\]\\$ "


适用 csh shell:


set prompt = "%{\e[0;31;1m%}%B%m%{\e[m%}%{\e[0;35;1m%}@%{\e[m%}%{\e[0;36;1m%}%n%{\e[m%}%{\e[0;33;1m%}[%{\e[m%}%{\e[0;32;1m%}%~%{\e[m%}%{\e[0;33;1m%}]%{\e[m%}# "


FreeBSD 如何挂载 windows 分区

FreeBSD 是可以挂载 windows 分区的,但需要安装 ntfs-3g


pkg install fusefs-ntfs


然后,在 /etc/rc.conf 和 /boot/loader.conf 中各添加一行配置:


# 编辑文件 /etc/rc.conf,添加如下行
fusefs_enable="YES"

#编辑文件 /boot/loader.conf,添加如下行
fuse_load="YES"


这些都准备好后,重启系统后就可以正常挂载了:


ntfs-3g /dev/ntfs/PRIVATE /mnt


VIM 中复制粘贴缩进错乱问题

当把一段代码复制粘贴进 vim 中,就会出现代码缩进错乱的现象,原本优美的代码,瞬间变得令人厌恶,其实解决这个问题只需要在 vim 中打入一行简单的命令,让 vim 进入 paste 模式,命令如下:


:set paste


sales 查询页面出现问题

我在把 sales 移到另一台 CentOS 服务器中后,php 生成的页面出现了问题,“合计”一栏并没有计算出结果,我在排查 php 代码时发现计算合计的那行 mysql 代码上运行时会发生错误:

1140 - In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'sales.sales.name'; this is incompatible with sql_mode=only_full_group_by。

经查,mysql 的 sql_mode 是 only_full_group_by 的时候,若不使用 group by 并且 select 后面出现聚集函数的话,所有被 select 的都应该是聚集函数,否则就会报错,解决这个问题方法如下:


# 编辑 /etc/my.cnf,加入如下参数,并重启 mysql 服务
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"


MYSQL 自增字段的修复问题

在 MYSQL 中,某个字段设置为自动增加,会随着记录数的增加而自动增加,但是如果删除记录后,会导致这个字段的数字出现不连续的情况,这是需要重新设置一下自增起始数字。


alter table 表名 AUTO_INCREMENT=起始数字;


Dell vostro 3470 重新安装 Windows10

  • 不能使用 ghost 恢复 Windows10 系统,只能使用系统安装盘(U盘)进行安装;
  • 八代 cpu 安装 win10 系统要用 uefi 模式引导,而且硬盘分区表模式用 GPT(GUID) 格式,并且必须要有 ESP 和 MSR 分区;
  • 如果硬盘分区不是 GUID 格式,需要将删除所有分区,然后将硬盘分区转换为 GUID 格式,使用 PE 的快速分区,并勾选 ESP 和 MSR 分区,最后使用系统安装 u盘进行安装。

Wordpress 迁移更新域名或者IP

WordPress 整体迁移后,必须在新主机中输入如下 sql 语句,将老域名 (IP) 更新为新域名 (IP)


UPDATE wp_options SET option_value = replace( option_value, 'http://www.old.com', 'http://www.new.com' ) WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace( post_content, 'http://www.old.com', 'http://www.new.com' ) ;
UPDATE wp_posts SET guid = replace( guid, 'http://www.old.com', 'http://www.new.com' ) ;


FreeBSD 出现无法删除用户的故障

刚 adduser 新建了一个用户,发现不能 ssh 登陆进来,也不知怎么搞的,于是决定删除这个用户重新再建。但问题就出现了,不论我怎么删都提示我此用户不存在,但是此用户确实存在在 /etc/passwd 文件中啊,经过多方查询最终有了解决方案。问题可能出在 pwd_mkdb 更新 spwd.db 或者 pwd.db 的时候出错造成的,同样的问题也会出现在用户相关的操作上,主要是由于系统升级所致,但只要执行如下命令即可得到解决:


pwd_mkdb -p -d /etc /etc/master.passwd


关于 phpinfo() 不显示的问题

在 php.ini 文件中有一个 short_open_tag 参数,将其从 Off 改为 On 即可。


; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = On