2013年工作中遇到的20个问题:281-300

 281.MySQL的JDBC的URL配置有个参数zeroDateTimeBehavior。

jdbc:mysql://ip:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
"zeroDateTimeBehavior=convertToNull"这个参数,我以前都不带的,今天比较好奇,就网上搜了下。

http://zhaohe162.blog.163.com/blog/static/3821679720110261248540/

282.遇到难题时,更换思路。
A服务器上有MySQL,最大数据库连接是100
B服务器上有Tomcat和应用。

项目部署在B服务器,由于13个项目,数据库连接池最高保持50个连接,
导致11个项目的数据库连接之和,可能大于100。

最开始,老是想着调整A服务器上的MySQL的max_connections=600,
由于今天SSH突然连接不上A服务器,令人很着急。

最后想到,咱们可以暂时把B服务器上的项目的数据源的最大连接调小一点,
<property name="maxConnectionsPerPartition" value="5"/>
<property name="minConnectionsPerPartition" value="2"/>
这样,至少解决了现在遇到的问题。等A服务器可以连接了,再重新修改max_connections配置。

283.MySQL的各种命令。
explain sql;
show processlist;
除了DDL、DML,DCL,MySQL还有一些其它的命令,也需要学习。

284.MySQL重置密码。
use mysql;
update user set password="123456";
MySQL的mysql数据库user表存储的是 加密后的密文。

重置密码步骤
A. mysqld --skip-grant-tables
B. update user set password=password("123456") where user="root"; (别忘了最后的分号)
C.刷新权限(必须的步骤)>flush privileges;

285.Linux访问墙。
问题症状:MySQL数据库所在的主机可以登录mysql,其他主机都无法远程连接到mysql。
原因:Linux防火墙。

出现原因:Linux系统重启了一次。默认应该会打开防火墙。

286.Linux系统解决问题的好方法。
   看日志和历史命令。
  
   /var/log/ 集中存放了Linux各种日志信息。
   ~/.bash_history记录了所有的历史命令。
 

287.MySQL数据库文件损坏。
Caused by: java.sql.SQLException: Incorrect information in file: './lingyan/ConfigAlert.frm'
SQL Error: 1033, SQLState: HY000
 
出现这个问题的原因:很可能是由于强行删除MySQL进程导致的,最近确实经常这么干。
 
 最终的解决方法:
 关闭MySQL killall mysqld
 重启 mysqld_safe
 
 正常关闭MySQL的做法:
 mysqladmin -u root shutdown -p

mysqladmin -uroot -ply123456 variables  
 
 至少,也应该先关闭Web服务器,再强行关闭MySQL,尽可能减少错误情况的发生。
 
 根据最近遇到的问题来看:急需重新复习Linux各种命令,深入学习MySQL。
 
 mysql -uroot -ply123456
288.Tomcat配置内存。
切记:Linux和Windows下的配置是不同的。
Linux系统

在/usr/local/tomcat/bin 目录下的catalina.sh添加:

JAVA_OPTS='-Xms512m -Xmx1024m'
要加“m”说明是MB,否则就是KB了,在启动tomcat时会 报内存不足。

-Xms:初始值
-Xmx:最大值
-Xmn:最小值

Windows系统
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m


289.MySQL配置文件被忽略。
World-writable config file '/etc/my.cnf' is ignored
To fix this problem, use the following command to change file’s permissions
要修改该问题,使用以下命令更改该文件的权限。

chmod 644 /etc/my.cnf
http://hi.baidu.com/perfect_song/item/32c25c0434dea110ebfe38bb

令人郁闷的是,咱们的数据库配置“/etc/my.cnf”不正确。
因此,还是没有使用“/etc/my.cnf”这个文件。
就让这个警告“World-writable config file '/etc/my.cnf' is ignored”存在吧!

290.配置文件的优先级。

 show variables like '%max_connections%';
 
 set GLOBAL max_connections=1500;
#mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!

 #不支持localhost
 mysqladmin -uroot -ply123456 shutdown
 
 #必须加上 -h选项
 mysqladmin -h i705.mzhen.cn -uroot -ply123456 shutdown
 
 
 用my.cnf,需要 mysqld_safe &
 #有时候mysql不支持 localhost
 mysql -uroot -p -h ..;
 
 Windows 的MySQL
 
 291.MySQL无法登录。
 mysql -uroot -p123456
 无法登录,提示"Can't connect to local MySQL server through socket '/tmp/mysql.sock'"
 
 而 mysql -h 192.168.1.1 -uroot -p123456
 可以登录。
 
 解决方案:给个链接。
 
 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
 参考资料:http://www.blogjava.net/asenyifei/articles/82575.html
 
 292.坑爹的MySQL配置。
 Linux /etc/my.cnf有下面这项配置。
 因为第一次打开这个文件的时候,就有这项配置,我就觉得这个配置是合理的。
 不但如此,我们启动MySQL的方式是 "mysqld_safe &",所以我理解成下面这个配置是
 专门为这个命令配置的。
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
datadir=/usr/local/mysql/var
socket=/usr/local/mysql/mysql.sock
max_connections=1000

 实际上,上面这个配置根本是不合理的,不知道是哪个家伙添加的。
 更多详细配置,可以参考Windows下MySQL的配置参数。
 
 my.ini
 my-huge.ini
 my-large.ini
 
 293.设置MySQL的最大连接数。
 网友有如下经验,使用下面这个命令
 set GLOBAL max_connections=1500;
 
 让人迷惑的是,提示“查询OK,0行受到影响”
 mysql>  set GLOBAL max_connections=1500;
Query OK, 0 rows affected (0.00 sec)

 我误认为没有设置成功,并且我通过“show status”这个命令也没有找到“max_connections”这个参数和值。
 
 实际查询确认方法
 show variables like '%max_connections%';
 
 294.聚餐时的点餐问题。
 团队建设TeamBuilding,海底捞聚餐,某同事负责点餐。
 其中,点了一些不常见的菜,最后还是没人吃的。
 
 一个有经验的同事饭后提醒:对于大家一起吃饭,点菜要点大部分人可以吃的,那些有人容易恶心或厌倦的菜
,就不要点。一是点了没人吃,二是你吃了,说不定别人恶心。

另外一点,菜量的问题,一般来说平均每人2盘菜。
多了容易吃不完。
 
 295.点餐不交票。
 隔壁一家快餐店,顾客点餐,服务员A把票交给客户,客户需要再把票交给服务员B。
 各个服务员都是专业分工,点餐-上饭是一条流水线。
 
 某顾客C忘记交票了,结果TA的砂锅迟迟不来。
 
 296.程序员的绩效考核。
 原来在项目部的时候,绩效考核有若干项,其中一项是“表达沟通”。
 才来的几个月,我一心干事,没有过多去“说话”。
 结果,这一项的考核总是比较低。
 我比较郁闷。
 
 启示:埋头苦干,很多时候,根本不行。抬头看路,看看周围的氛围,还是比较重要的。
 入乡随俗?
 
 反思:绩效考核中是否应该加入“表达沟通”一项呢?
 正面理由:促进团队建设。
 反面理由:
 绩效考核的目的是什么?如果说是为了促进整个团队的建设,每个人的表达沟通还是重要的。
 反之,如果是为了量化个人对团队和公司的贡献,“个人的表达沟通”就应该是可选项和加分项,
 而不是必选项和”扣分项”。
 
 297.打电话说事之前,先礼貌地询问“现在说话方便么?”。
 
 298.一个商机的出现,往往会出现很多的竞争者。
 土豪公司招兵买马的时候,猎头就闪亮登场了。
 此时,也是求职者鲤鱼跃龙门的机会。
 当然,机会都是留给有准备的人的。
 2013年10月31日
 
 299.某工商局和某汽车网站上的数据,都是结构化展示的。
 因此,可以顺利地抓取这些信息。
 JS文件,有的的网站会“混淆代码”,防止别人知道网站的源码和规律。
 
 300.前端执行请求,后端没有响应,卡死了。
 getDashboardData()中卡住了。
 前半部分代码,访问了数据库是可以的。
 后半部分代码,卡住了。
 
 一旦卡住,再登录,也会卡住。
 
 执行Hibernate查询语句的时候query.list(),就会卡住,没有响应。
 
 可能原因:
 1.多数据源切换。
 2.线程死锁。
 
  Log4j日志级别设置为debug。

相关阅读

工作问题 http://blog.csdn.net/FansUnion/article/category/1334371

原文地址:https://www.cnblogs.com/qitian1/p/6463471.html