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

JavaFx疑难杂症汇总

1.webview有些地方中文乱码

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

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

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

3.xp下会导致蓝屏问题

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

压力测试

#### 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

QQ音乐WEB版不完全分析

URL:http://y.qq.com/

Q1:为什么点击了导航的连接后在播放的音乐没有停止播放,一般情况下,页面刷新后整个展示都是刷新了的,所以音乐也会停止播放。

这个分析导航按钮后会发现玄机,看源码

<a href="/y/static/index.html?pgv_ref=qqmusic.y.topmenu" target="contentFrame" class=""><span>音乐馆</span></a>

看到 target=”contentFrame”没有,这个才是真正的显示首页内容的iframe容器,刷新的内容都在这里,最外面的body也就是播放中所在的元素其实是没有刷新的。
不过有个疑问,为什么浏览器地址栏变了,后面加了#xxx?

mysql主从备份

#####################mysql主从备份#####################
准备:
1.master server:192.168.1.124
2.slave server:192.168.1.127
3.mysql版本一致
步骤:
1.启动master,关闭slave
2.在master的/etv/my.cnf中加入
[mysqld]
server-id = 1
log-bin = mysql-bin
3.在slave的/etv/my.cnf中加入
[mysqld]
server-id = 10

#master
1.GRANT REPLICATION SLAVE ON *.* to ‘wuliu’@’192.168.1.127′ identified by ‘123456’;
2.Mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 107 | | |
+——————+———-+————–+——————+
记录File和Position

#slave
1.启动mysql
2.mysql> change master to
master_host=’192.168.1.124′,
master_user=’wuliu’,
master_password=’123456′,
master_log_file=’mysql-bin.000001′,
master_log_pos=107;
3.mysql>start slave;
4.show slave status\G
其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。

备注:
如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
(1)主数据库进行锁表操作,不让数据再进行写入动作
mysql> FLUSH TABLES WITH READ LOCK;

(2)查看主数据库状态
mysql> show master status;

(3)记录下 FILE 及 Position 的值。
将主服务器的数据文件(整个/opt/mysql/data目录)复制到从服务器,建议通过tar归档压缩后再传到从服务器解压。

(4)取消主数据库锁定
mysql> UNLOCK TABLES;