mysql客户端登陆提示”client option ‘secure_auth’ enabled”错误

使用mysql workbench登陆mysql服务器时提示授权算法错误。

查阅资料发现,mysql密码使用有两个阶段,第一阶段是登陆时使用hash value进行验证,第二阶段用password()函数生成密码。
换句话说,第一阶段用加密字符串登陆,第二阶段需要更改密码(create user/grant/set password)时使用password()函数来生成。

而第一阶段的验证hash value有两种,一种是pre-4.1版本,另一种是4.1版本的,前者是16字节的字符串,后者是41字节的字符串。
user表的password的长度也调整到了41字节。新版本的hash value总是以*开头。

为了兼容,加入了old_password()函数和old_passwords变量,old_passwords为1时,old_password()函数和password()是一样的,
old_passwords为0时,old_password()返回16字节的hash,password()返回41字节的hash。

为了使DBA可以控制采用哪种验证方式,加入了secure_auth变量,mysql 5.6.5之前的版本默认为0,之后的默认为1。
同时加入了–secure-auth选项。

相关的命令:

mysql> SET @@session.old_passwords = 0;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@session.old_passwords, @@global.old_passwords;
+-------------------------+------------------------+
| @@session.old_passwords | @@global.old_passwords |
+-------------------------+------------------------+
|                       0 |                      1 |
+-------------------------+------------------------+
1 row in set (0.00 sec)

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpass';
Query OK, 0 rows affected (0.03 sec)

mysql> SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass');
Query OK, 0 rows affected (0.00 sec)

参考资料:
6.1.2.4. Password Hashing in MySQL

来源:http://www.csdn123.com/html/itweb/20130824/79559_79556_79552.htm

MySQL 5.1.x升级到MySQL 5.5.x

1、安装MySQL 5.5.x的yum源:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

rpm –import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy

wget -P /etc/yum.repos.d/ http://repo.webtatic.com/yum/webtatic.repo

2、安装MySQL客户端的支持包:
yum install libmysqlclient15 –enablerepo=webtatic

3、卸载MySQL老版本的软件包:
yum remove mysql mysql-*
此方法会删除依赖,如果不想可以使用以下方法
rpm -e  mysql-devel-* –nodeps
rpm -e mysql-libs-* –nodeps
rpm -e mysql-server-* –nodeps
rpm -e mysql-* –nodeps

4、安装MySQL 5.5的客户端和服务端:
yum install mysql55 mysql55-server –enablerepo=webtatic

error:mysql55w-libs conflicts with mysql-libs
rpm -e –nodeps mysql-libs-5.1.*

5、启动MySQL系统服务,更新数据库:

/etc/init.d/mysqld restart
mysql_upgrade

axis2自动生成客户端代码

java -cp lib\axis.jar;lib\commons-logging-1.0.4.jar;lib\commons-discovery-0.2.jar;lib\jaxrpc.jar;lib\saaj.jar;lib\wsdl4j-1.5.1.jar org.apache.axis.wsdl.WSDL2Java -v -W -o src -p com.hzbenhe.wuliu.common.lbs.lt http://124.160.192.198/CULocationServer/services/LocationService?wsdl

JavaFx疑难杂症汇总

1.webview有些地方中文乱码

原因为不支持宋体,吧css中的宋体给为微软雅黑就好

2.xp下页面被放大,鼠标漂移问题

导致该问题主要是由于启用了3D硬件加速,通过设置系统参数-Dprism.order=j2d解决,注意需要在main中也加入

3.xp下会导致蓝屏问题

在win7下打包的exe在xp下运行会发生这种情况,可以在xp下打包,这样支持xp和win7平台

第一章、可扩展性入门

本章节介绍可扩展性,强调垂直和横向扩展之间的主要差异。

可扩展性是指如何给一个应用分配资源,并且有效地管理这些资源从而减少资源竞争。当系统资源不能满足应用所需,将会严重影响到用户体验(UX)。实现扩展的两个主要方法是:横向和纵向扩展。纵向扩展比较简单,同时也有更多的限制。横向扩展相对复杂,但是比起纵向它能提供更好的实现,更加符合云实现。

本章节我们假设需要扩展一个分布式的web应用,这种情况也是现实中最常发生的。

可扩展性定义

一个应用的 可扩展性衡量此应用同时可以支撑的用户数,当应用不能有效的处理新请求时候就是扩展性的极限。当一个关键的硬件资源耗尽时候,扩展性到达极限,虽然可以通过添加新的硬件来扩展。新加的硬件需要包括CPU,内存,硬盘还有网络等。一个应用运行在多个节点上,都需要硬件资源,比如逻辑运行在内存节点,数据存储在硬盘中,当然还有其它的节点,内存和硬盘是主要的。一个节点可能是物理服务器(通常是虚拟机)的一部分,一整台服务器,更或则是服务器群中的一台。当我们不去关系底层资源时候我们通常他们为节点,通常我们也不去关系底层资源。

应用可以通过新增硬件资源来实现扩展,只要应用能很好的利用这些资源。因此,通过新增资源的方法我们引出了两种扩展方法的定义。

  • 纵向扩展是通过向现有节点中增加资源,以提高整个应用程序的能力。
  • 横向扩展是通过增加节点来提高整个应用程序的能力

这两种扩展的方法既不是互相排斥的,也不全有或全无的。任何应用程序都能够垂直向上扩展,水平向外扩展,要么两种方式都采用,要么都不采用。举个例子,应用的部分采用水平向外扩展,而可能另一部分采用垂直向上扩展。

横向纵向扩展方法适用于任何资源,包括逻辑计算和数据存储。一当任何一种方法实现了扩展,扩展不需要修改任何应用逻辑。然而,从纵向到横向扩展通常需要做比较多的修改。

 垂直向上扩展

垂直向上扩展也被简单的称为纵向扩展或向上扩展。其主要思想是通过硬件上的改进以提高单个节点的容量,比如添加内存,添加CPU的核数,或则其它方法。

早之前,这种扩展方法因其广泛的使用行而称为最通用的扩展方法,风险小,简单,并且相对改动程序算法逻辑,单纯的添加硬件成本会小很多。向上扩展适用于独立应用程序(如桌面视频编辑,高端视频游戏和移动应用程序)和基于服务器的应用程序(如Web应用程序,分布式多人游戏,并连接到后端服务的移动应用程序,例如作为地图和导航)。

不能保证我们需要的高性能硬件的存在,或则硬件是否能支撑我们的要求。并且即使我们拥有了这样的硬件,也不能保证我们的应用程序能够很好的去利用发挥这些高性能的硬件。因为硬件的改变是复杂的,同时也面临当机的风险。

水平向外扩展

水平向外扩展也被简单的称为横向扩展或向外扩展,通过增加整个节点提高整体应用能力。每增加一个节点通常会增加同等容量,如相同的内存量和相同的CPU。水平扩展把垂直扩展中面临的问题从最大限度地发挥各个节点的能力重心转移到合并许多节点能力。比起垂直扩展,水平扩展更加复杂,并且对应用程序的架构也有影响。纵向扩展往往是硬件和基础设施为重点,“把问题扔给硬件”,而横向扩展是开发和架构为重点。对于复杂的业务,可以下发到不同部门来实现。

设计成横向扩展的应用,通常给不同节点分配特定的功能,例如,你可能有web服务器和分发服务器。当我们通过添加节点来提高整体性能时候,我们通过添加特定功能的节点,比如web服务器或分发服务器。我们不只是“添加节点”,因为节点配置是特定于所支持的功能。

当所有支持特定功能的节点配置相同,相同的硬件资源,相同的操作系统,相同功能的专用软件,我们说这些节点是均衡。

不是应用的所有节点都是均衡的,这里只是指特定功能的节点。当我们web服务器均衡了,分发服务器均衡了,我们不要求说web服务器和分发服务器的配置要一样。

均衡的横向扩展是一个很重要的简化。如果所有节点都均衡,那么基本的负载均衡会工作得很好,容量规划也比较容易,也比较容易写的自动扩展的规则。如果节点配置不同,有效地分配请求将变得更加复杂,因为需要更多的上下文。

在一个特定功能的节点上(例如web服务),节点自主操作,彼此独立。一个节点不需要和其它同样功能的接口通信,就可以完成它的工作。节点的资源会被有效的控制。

自主性是重要的,这样每个节点可以很好的保持自己的效率而不用关心其它节点在做什么。

水平扩展受新加节点性能限制,最好的方式是新增节点的容量根据需要递增。

描述可扩展性

 

压力测试

#### Linux下查看tomcat连接数
netstat -na | grep ESTAB | grep 8080 | wc -l

#### Linux查看进程内存、CPU
top -d 1 -p pid

统计代码行数

Android:

find . -name “*.java” -or -name “*.xml”|xargs cat|grep -v ^$|wc -l

iOS:

find . -name “*.m” -or -name “*.h” -or -name “*.xib” -or -name “*.c” |xargs grep -v “^$”|wc -l

Java:

find . -name “*.java” -or -name “*.jsp” -or -name “*.xml” -or -name “*.css” -or -name “*.js”|xargs cat|grep -v ^$|wc -l

WebApp:

find . -name “*.java” -or -name “*.jsp” -or -name “*.html” -or -name “*.css” -or -name “*.js”|xargs cat|grep -v ^$|wc -l

Linux更改MySQL目录

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
   #cd /home
   #mkdir data
2、把MySQL服务进程停掉
   #service mysqld stop
3、把/var/lib/mysql整个目录移到/home/data
   #mv /var/lib/mysql /home/data/
4、编辑MySQL的配置文件/etc/my.cnf
  #vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)
    # The MySQL server
    [mysqld]
    port   = 3306
    #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
    socket  = /home/data/mysql/mysql.sock   (加上此行)
5、修改MySQL启动脚本/etc/rc.d/init.d/mysql
  #vi /etc/rc.d/init.d/mysql
    #datadir=/var/lib/mysql    (注释此行)
    datadir=/home/data/mysql   (加上此行)

yuicompressor-maven

<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>yuicompressor-maven-plugin</artifactId>
				<version>1.3.0</version>
				<executions>
					<execution>
						<goals>
							<goal>compress</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<!-- 读取js,css文件采用UTF-8编码 -->
					<encoding>UTF-8</encoding>
					<!-- 不显示js可能的错误 -->
					<jswarn>false</jswarn>
					<!-- 若存在已压缩的文件,会先对比源文件是否有改动 有改动便压缩,无改动就不压缩 -->
					<force>false</force>
					<!-- 在指定的列号后插入新行 -->
					<linebreakpos>-1</linebreakpos>
					<!-- 压缩之前先执行聚合文件操作 -->
					<preProcessAggregates>true</preProcessAggregates>
					<!-- 压缩后保存文件后缀 -->
					<suffix>.min</suffix>
					<!-- 源目录,即需压缩的根目录 -->
					<sourceDirectory>${webapp.path}/js</sourceDirectory>
					<!-- 压缩js和css文件 -->
					<includes>
						<include>*.js</include>
					</includes>
					<!-- 以下目录和文件不会被压缩 -->
					<excludes>
						<exclude>*.min.js</exclude>
                        <exclude>**/*.css</exclude>
					</excludes>
					<!-- 压缩后输出文件目录 -->
					<outputDirectory>${webapp.path}/js/min</outputDirectory>
					<!-- 聚合文件 -->
					<aggregations>
						<aggregation>
							<!-- 合并每一个文件后插入一新行 -->
							<insertNewLine>true</insertNewLine>
							<!-- 需合并文件的根文件夹 -->
							<inputDir>${webapp.path}/js/min/</inputDir>
							<!-- 最终合并的输出文件 -->
							<output>${webapp.path}/js/min/all.js</output>
							<!-- 把以下js文件合并成一个js文件,是按顺序合并的 -->
							<includes>
								<include>*.min.js</include>
							</includes>
						</aggregation>
					</aggregations>
				</configuration>
			</plugin>

修改Postfix默认显示邮件大小5M限制

1. 修改/etc/php.ini
max_execution_time = 30 #改为60 (增加处理脚本的时间限制)
memory_limit = 8M #改为50M (这样才能发10M的附件)
post_max_size = 2M #改为50M
upload_max_filesize = 2M #改为50M

2. 修改/etc/postfix/main.cf, 添加如下语句:
message_size_limit = 69120000
postfix的默认值是10M, 但这指的是邮件正文和编码后附件的总和, 经过base64编码,附件的大小会增加35%左右, 因此这里设定可接受邮件的大小为69M
可以使用如下命令查看postfix的有关设定:
# /usr/sbin/postconf | grep size

3. 修改/var/www/extsuite/extmail/webmail.cf
SYS_MESSAGE_SIZE_LIMIT = 51200000

————————————————————-
这个我以前的一个文档,如果你用nginx跑extmail的话,nginx还要设置
例如 client_max_body_size 20m;

如果没有使用php可以忽略步骤1