??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩精品一二三,亚洲第一影院,视频三区在线观看http://www.aygfsteel.com/Alpha/category/9664.html多少春秋风雨?多少崎岖不变?/description>zh-cnSat, 23 Dec 2017 14:51:37 GMTSat, 23 Dec 2017 14:51:37 GMT60linux下mysql的root密码忘记解决?/title><link>http://www.aygfsteel.com/Alpha/archive/2013/04/19/398078.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 19 Apr 2013 03:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2013/04/19/398078.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/398078.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2013/04/19/398078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/398078.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/398078.html</trackback:ping><description><![CDATA[<div>1Q首先确认服务器Z安全的状态,也就是没有h能够L地连接MySQL数据库?<br />因ؓ在重新设|MySQL的root密码的期_MySQL数据库完全出于没有密码保护的 <br />状态下Q其他的用户也可以Q意地d和修改MySQL的信息。可以采用将MySQL?<br />外的端口闭Qƈ且停止Apache以及所有的用户q程的方法实现服务器的准安全 <br />状态。最安全的状态是到服务器的Console上面操作Qƈ且拔掉网Uѝ?<br />2Q修改MySQL的登录设|: <br /># vi /etc/my.cnf <br />在[mysqld]的段中加上一句:skip-grant-tables <br />例如Q?<br />[mysqld] <br />datadir=/var/lib/mysql <br />socket=/var/lib/mysql/mysql.sock <br />skip-grant-tables <br />保存q且退出vi?<br />3Q重新启动mysqld <br /># /etc/init.d/mysqld restart <br />Stopping MySQL: [ OK ] <br />Starting MySQL: [ OK ] <br />4Q登录ƈ修改MySQL的root密码 <br /># /usr/bin/mysql <br />Welcome to the MySQL monitor. Commands end with ; or \g. <br />Your MySQL connection id is 3 to server version: 3.23.56 <br />Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br />mysql> USE mysql ; <br />Reading table information for completion of table and column names <br />You can turn off this feature to get a quicker startup with -A <br />Database changed <br />mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ; <br />Query OK, 0 rows affected (0.00 sec) <br />Rows matched: 2 Changed: 0 Warnings: 0 <br />mysql> flush privileges ; <br />Query OK, 0 rows affected (0.01 sec) <br />mysql> quit <br />Bye <br />5Q将MySQL的登录设|修改回?<br /># vi /etc/my.cnf <br />刚才在[mysqld]的段中加上的skip-grant-tables删除 <br />保存q且退出vi?<br />6Q重新启动mysqld <br /># /etc/init.d/mysqld restart <br />Stopping MySQL: [ OK ] <br />Starting MySQL: [ OK ]</div><img src ="http://www.aygfsteel.com/Alpha/aggbug/398078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2013-04-19 11:39 <a href="http://www.aygfsteel.com/Alpha/archive/2013/04/19/398078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>yum搭徏lnmp环境QCentOS6)http://www.aygfsteel.com/Alpha/archive/2012/09/12/387583.htmlAlphaAlphaWed, 12 Sep 2012 10:39:00 GMThttp://www.aygfsteel.com/Alpha/archive/2012/09/12/387583.htmlhttp://www.aygfsteel.com/Alpha/comments/387583.htmlhttp://www.aygfsteel.com/Alpha/archive/2012/09/12/387583.html#Feedback1http://www.aygfsteel.com/Alpha/comments/commentRss/387583.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/387583.html

1.关闭防火?br />[root@CentOS ~]# chkconfig iptables off

2.关闭selinux
vi /etc/sysconfig/selinux
//SELINUX=enforcing修改为disabled然后重启生效

3、配|CentOS 6.0 W三方yum源(CentOS默认的标准源里没有nginx软g包)
[root@CentOS ~]# yum install wget
//下蝲wget工具
[root@CentOS ~]# wget http://www.atomicorp.com/installers/atomic
//下蝲atomic yum?br />[root@CentOS ~]# sh ./atomic
//安装提示输入时输yes
[root@CentOS ~]# yum check-update
//更新yum软g?/p>

4.安装开发包和库文g
[root@CentOS ~]# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng
libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel
gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2
libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel

5.卸蝲已安装的apache、mysql、php
[root@CentOS ~]# yum remove httpd
[root@CentOS ~]# yum remove mysql
[root@CentOS ~]# yum remove php

6.安装nginx
[root@CentOS ~]# yum install nginx
[root@CentOS ~]# service nginx start
[root@CentOS ~]# chkconfig --levels 235 nginx on
//???U别开机启?/p>

7.安装mysql
[root@CentOS ~]# yum install mysql mysql-server mysql-devel
[root@CentOS ~]# service mysqld start
[root@CentOS ~]# chkconfig --levels 235 mysqld on
[root@CentOS ~]# mysqladmin -u root password "123456"
//为root用户讄密码
[root@CentOS ~]# service mysqld restart
//重启mysql

8.安装php
[root@CentOS ~]# yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap
php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap
php-tidy php-common php-devel php-fpm
//安装php和所需lg使PHP支持MySQL、FastCGI模式
[root@CentOS ~]# service php-fpm start
[root@CentOS ~]# chkconfig --levels 235 php-fpm on

9.配置nginx支持php
[root@CentOS ~]# mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
//配|文件改为备份文?br />[root@CentOS ~]# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
//׃原配|文件要自己d因此可以使用默认的配|文件作为配|文?br />//修改nginx配置文gQ添加fastcgi支持
[root@CentOS ~]# vi /etc/nginx/nginx.conf
index index.php index.html index.htm;
//加入index.php
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
//以上代码注释去掉,q修Ҏnginx默认路径

10.配置php
//~辑文gphp.iniQ在文g末尾dcgi.fix_pathinfo = 1
[root@CentOS ~]# vi /etc/php.ini

11.重启nginx php-fpm
[root@CentOS ~]# service nginx restart
[root@CentOS ~]# service php-fpm restart

12.建立info.php文g
[root@CentOS ~]# vi /usr/share/nginx/html/info.php
<?php
phpinfo();
?>

13.试nginx是否解析php
输入Q?92.168.1.105/info.php
昄php界面说明解析成功



Alpha 2012-09-12 18:39 发表评论
]]>
Crontab自动执行脚本Kill掉MySQL的僵死进E?/title><link>http://www.aygfsteel.com/Alpha/archive/2012/01/19/368749.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 19 Jan 2012 06:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2012/01/19/368749.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/368749.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2012/01/19/368749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/368749.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/368749.html</trackback:ping><description><![CDATA[<div> MySQL + PHP的模式在大ƈ发压力下l常会导致MySQL中存在大量僵死进E,D服务挂死。ؓ了自动干掉这些进E,弄了个脚本,攑֜服务器后台通过crontab自动执行。发现这样做了以后,的确很好的缓解了q个问题。把q个脚本发出来和大家Share?br /><br />Ҏ自己的实际需要,做了一些修改:<br /><br />SHELL脚本:mysqld_kill_sleep.sh<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">!/bin/sh</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">mysql_pwd</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">root的密?/span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysqladmin_exec</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/usr/local/bin/mysqladmin</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_exec</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/usr/local/bin/mysql</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/tmp</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_timeout_log</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_timeout.log</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_kill_timeout_sh</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_kill_timeout.sh</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_kill_timeout.log</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #800080; ">$mysqladmin_exec</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">uroot </span><span style="color: #000000; ">-</span><span style="color: #000000; ">p</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_pwd</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "> processlist </span><span style="color: #000000; ">|</span><span style="color: #000000; "> awk </span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">{ print $12 , $2 ,$4}</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; "> </span><span style="color: #000000; ">|</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">grep</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">v </span><span style="color: #0000FF; ">Time</span><span style="color: #000000; "> </span><span style="color: #000000; ">|</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">grep</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">v </span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">|</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; "> </span><span style="color: #000000; ">|</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">sort</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">rn </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #800080; ">$mysql_timeout_log</span><span style="color: #000000; "><br />awk </span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">{if($1>30 && $3!="root") print "</span><span style="color: #000000; font-weight: bold; ">'""</span><span style="color: #800080; ">$mysql_exec</span><span style="color: #000000; font-weight: bold; ">""'</span><span style="color: #000000; font-weight: bold; "> -e " "/"" "kill",$2 "/"" " -uroot " "-p""/"""</span><span style="color: #000000; font-weight: bold; ">'""</span><span style="color: #800080; ">$mysql_pwd</span><span style="color: #000000; font-weight: bold; ">""'</span><span style="color: #000000; font-weight: bold; ">""/"" ";" }</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; "> </span><span style="color: #800080; ">$mysql_timeout_log</span><span style="color: #000000; "> </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #800080; ">$mysql_kill_timeout_sh</span><span style="color: #000000; "><br />echo </span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">check start <img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />.</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">>></span><span style="color: #000000; "> </span><span style="color: #800080; ">$mysql_kill_timeout_log</span><span style="color: #000000; "><br />echo `date` </span><span style="color: #000000; ">>></span><span style="color: #000000; "> </span><span style="color: #800080; ">$mysql_kill_timeout_log</span><span style="color: #000000; "><br />cat </span><span style="color: #800080; ">$mysql_kill_timeout_sh</span></div><br /><br />  把这个写到mysqld_kill_sleep.sh。然后chmod 0 mysqld_kill_sleep.sh,chmod u+rx mysqld_kill_sleep.shQ然后用root账户到cron里面q行卛_Q时间自p整。执行之后显C:<br />www# ./mysqld_kill_sleep.sh<br />/usr/local/bin/mysql -e "kill 27549" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27750" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27840" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27867" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27899" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27901" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27758" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27875" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27697" -uroot -p"mysql root的密?;<br />"kill 27888" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27861" -uroot -p"mysql root的密?;<br /><br />  如果认没有问题了,把最后的cat修改为sh卛_。本人改写了下上面的脚本Q?br />#!/bin/bash<br />mysql_pwd="密码"<br />mysql_exec="/usr/local/mysql/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />"$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" >> $mysql_kill_timeout_log<br /><br />for line in `$mysql_kill_timeout_log  | awk '{print $1}'`<br />do<br />echo "$mysql_exec -uroot -p$mysql_pwd -e /"kill $line/"" >> $mysql_kill_timeout_sh<br />done<br /><br />cat $mysql_kill_timeout_sh<br /><br />  很多时候!一不小心就锁表Q这里讲解决锁表l极ҎQ?br /><br />案例一<br />mysql>showprocesslist;<br /><br />  参看sql语句Q一般少的话<br />mysql>killthread_id;<br /><br />  可以解决了Qkill掉第一个锁表的q程Q?依然没有改善Q既然不改善Q咱们就惛_法将所有锁表的q程kill掉吧Q简单的脚本如下Q?br />#!/bin/bash<br />mysql-uroot-e"show processlist"|grep-i"Locked">>locked_log.txt<br /><br />forlinein`cat locked_log.txt | awk '{print$1}'`<br />do<br />echo"kill$line;">>kill_thread_id.sql<br />done<br /><br />现在kill_thread_id.sql的内容像q个样子<br />kill66402982;<br />kill66402983;<br />kill66402986;<br />kill66402991;<br />.....<br /><br />好了Q我们在mysql的shell中执行,可以把所有锁表的q程杀M?br />mysql>sourcekill_thread_id.sql<br /><br />当然了,也可以一行搞定?br />foridin`mysqladmin processlist | grep -i locked | awk '{print$1}'`<br />do<br />mysqladminkill${id}<br />done<br /><br />案例?br /><br />  如果大批量的操作能够通过一pd的select语句产生Q那么理Zp对这些结果批量处理。但是mysqlq没用提供evalq样的对l果集进行分析操作的功能。所以只能现selectl果保存C时文件中Q然后再执行临时文g中的指o。具体过E如下:<br />mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root';<br />+------------------------+<br />| concat('KILL ',id,';')<br />+------------------------+<br />| KILL 3101;            <br />| KILL 2946;            <br />+------------------------+<br />2 rows IN SET (0.00 sec)<br /><br />mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/a.txt';<br />Query OK, 2 rows affected (0.00 sec)<br /><br />mysql> source /tmp/a.txt;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />案例?br /><br />  MySQL + PHP的模式在大ƈ发压力下l常会导致MySQL中存在大量僵死进E,D服务挂死。ؓ了自动干掉这些进E,弄了个脚本,攑֜服务器后台通过crontab自动执行。发现这样做了以后,的确很好的缓解了q个问题。把q个脚本发出来和大家Share。根据自q实际需要,做了一些修改:<br /><br />SHELL脚本:mysqld_kill_sleep.sh<br />#!/bin/sh<br />mysql_pwd="root的密?<br />mysqladmin_exec="/usr/local/bin/mysqladmin"<br />mysql_exec="/usr/local/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{ print $12 , $2 ,$4}' | grep -v Time | grep -v '|' | sort -rn > $mysql_timeout_log<br />awk '{if($1>30 && $3!="root") print "'""$mysql_exec""' -e " "\"" "kill",$2 "\"" " -uroot " "-p""\"""'""$mysql_pwd""'""\"" ";" }' $mysql_timeout_log > $mysql_kill_timeout_sh<br />echo "check start ...." >> $mysql_kill_timeout_log<br />echo `date` >> $mysql_kill_timeout_log<br />cat $mysql_kill_timeout_sh<br /><br />  把这个写到mysqld_kill_sleep.sh。然后chmod 0 mysqld_kill_sleep.sh,chmod u+rx mysqld_kill_sleep.shQ然后用root账户到cron里面q行卛_Q时间自p整。执行之后显C:<br />www# ./mysqld_kill_sleep.sh<br />/usr/local/bin/mysql -e "kill 27549" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27750" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27840" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27867" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27899" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27901" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27758" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27875" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27697" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27888" -uroot -p"mysql root的密?;<br />/usr/local/bin/mysql -e "kill 27861" -uroot -p"mysql root的密?;<br /><br />  如果认没有问题了,把最后的cat修改为sh卛_。本人改写了下上面的脚本Q?br />#!/bin/bash<br />mysql_pwd="密码"<br />mysql_exec="/usr/local/mysql/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" >> $mysql_kill_timeout_log<br />chmod 777 $mysql_kill_timeout_log<br />for line in `$mysql_kill_timeout_log  | awk '{print $1}'`<br />do<br />echo "$mysql_exec -uroot -p$mysql_pwd -e \"kill $line\"" >> $mysql_kill_timeout_sh<br />done<br />chmod 777 $mysql_kill_timeout_sh<br />cat $mysql_kill_timeout_sh<br /><br />  是不是很方便呢!processlist命o的输出结果显CZ有哪些线E在q行Q可以帮助识别出有问题的查询语句Q两U方式用这个命令?br />1、进入mysql/bin目录下输入mysqladmin processlist;<br />2、启动mysqlQ输入show processlist;<br /><br />  如果有SUPER权限Q则可以看到全部的线E,否则Q只能看到自己发LU程Q这是指Q当前对应的MySQL帐户q行的线E)。得到数据Ş式如下(只截取了三条Q:<br />mysql> show processlist;<br /><br />+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------<br /><br />| Id | User | Host | db | Command | Time| State | Info<br /><br />+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------<br /><br />|207|root |192.168.0.20:51718 |mytest | Sleep | 5 | | NULL<br /><br />|208|root |192.168.0.20:51719 |mytest | Sleep | 5 | | NULL<br /><br />|220|root |192.168.0.20:51731 |mytest |Query | 84 | Locked |<br /><br />select bookname,culture,value,type from book where id=001<br /><br />  先简单说一下各列的含义和用途,W一列,idQ不用说了吧Q一个标识,你要kill一个语句的时候很有用。user列,昄单前用户Q如果不是rootQ这个命令就只显CZ权限范围内的sql语句。host列,昄q个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来q踪出问题语句的用户。db列,昄q个q程目前q接的是哪个数据库。command列,昄当前q接的执行的命oQ一般就是休眠(sleepQ,查询QqueryQ,q接QconnectQ。time列,此这个状态持l的旉Q单位是U。state列,昄使用当前q接的sql语句的状态,很重要的列,后箋会有所有的状态的描述Q请注意Qstate只是语句执行中的某一个状态,一个sql语句Q已查询ZQ可能需要经qcopying to tmp tableQSorting resultQSending data{状态才可以完成Qinfo列,昄q个sql语句Q因为长度有限,所以长的sql语句显CZ全,但是一个判断问题语句的重要依据?br /><br />  q个命o中最关键的就是state列,mysql列出的状态主要有以下几种Q?br />Checking table<br /><br />  正在查数据表Q这是自动的Q?br />Closing tables<br /><br />  正在表中修改的数据h到磁盘中Q同时正在关闭已l用完的表。这是一个很快的操作Q如果不是这L话,应该确认磁盘空间是否已l满了或者磁盘是否正处于重负中?br />Connect Out<br /><br />  复制从服务器正在q接L务器?br />Copying to tmp table on disk<br /><br />  ׃临时l果集大于tmp_table_sizeQ正在将临时表从内存存储转ؓ盘存储以此节省内存?br />Creating tmp table<br /><br />  正在创徏临时表以存放部分查询l果?br />deleting from main table<br /><br />  服务器正在执行多表删除中的第一部分Q刚删除W一个表?br />deleting from reference tables<br /><br />  服务器正在执行多表删除中的第二部分,正在删除其他表的记录?br />Flushing tables<br /><br />  正在执行FLUSH TABLESQ等待其他线E关闭数据表?br />Killed<br /><br />  发送了一个killhl某U程Q那么这个线E将会检查kill标志位,同时会放弃下一个killh。MySQL会在每次的主循环中检查kill标志位,不过有些情况下该U程可能会过一段才能L。如果该U程E被其他U程锁住了,那么killh会在锁释放时马上生效?br />Locked<br /><br />  被其他查询锁住了?br />Sending data<br /><br />  正在处理Select查询的记录,同时正在把结果发送给客户端?br />Sorting for group<br /><br />  正在为GROUP BY做排序?br />Sorting for order<br /><br />  正在为ORDER BY做排序?br />Opening tables<br /><br />  q个q程应该会很快,除非受到其他因素的干扰。例如,在执Alter TABLE或LOCK TABLE语句行完以前Q数据表无法被其他线E打开。正试打开一个表?br />Removing duplicates<br /><br />  正在执行一个Select DISTINCT方式的查询,但是MySQL无法在前一个阶D优化掉那些重复的记录。因此,MySQL需要再ơ去掉重复的记录Q然后再把结果发送给客户端?br />Reopen table<br /><br />  获得了对一个表的锁Q但是必d表结构修改之后才能获得这个锁。已l释NQ关闭数据表Q正试重新打开数据表?br />Repair by sorting<br /><br />  修复指o正在排序以创建烦引?br />Repair with keycache<br /><br />  修复指o正在利用索引~存一个一个地创徏新烦引。它会比Repair by sorting慢些?br />Searching rows for update<br /><br />  正在讲符合条件的记录扑և来以备更新。它必须在Update要修改相关的记录之前完成了?br />Sleeping<br /><br />  正在{待客户端发送新h.<br />System lock<br /><br />  正在{待取得一个外部的pȝ锁。如果当前没有运行多个mysqld服务器同时请求同一个表Q那么可以通过增加--skip-external-locking参数来禁止外部系l锁?br />Upgrading lock<br /><br />  Insert DELAYED正在试取得一个锁表以插入新记录?br />Updating<br /><br />  正在搜烦匚w的记录,q且修改它们?br />User Lock<br /><br />  正在{待GET_LOCK()?br />Waiting for tables<br /><br />  该线E得到通知Q数据表l构已经被修改了Q需要重新打开数据表以取得新的l构。然后,Z能的重新打开数据表,必须{到所有其他线E关闭这个表。以下几U情况下会生这个通知Q?br />FLUSH TABLES tbl_name, Alter TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE?br /><br />waiting for handler insert<br /><br />  Insert DELAYED已经处理完了所有待处理的插入操作,正在{待新的h。大部分状态对应很快的操作Q只要有一个线E保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下?br /><br />  q有其他的状态没在上面中列出来,不过它们大部分只是在查看服务器是否有存在错误是才用得着?/div><img src ="http://www.aygfsteel.com/Alpha/aggbug/368749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2012-01-19 14:20 <a href="http://www.aygfsteel.com/Alpha/archive/2012/01/19/368749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysqld用户、删除用戗授权、修改密码等http://www.aygfsteel.com/Alpha/archive/2011/12/27/367352.htmlAlphaAlphaTue, 27 Dec 2011 09:30:00 GMThttp://www.aygfsteel.com/Alpha/archive/2011/12/27/367352.htmlhttp://www.aygfsteel.com/Alpha/comments/367352.htmlhttp://www.aygfsteel.com/Alpha/archive/2011/12/27/367352.html#Feedback0http://www.aygfsteel.com/Alpha/comments/commentRss/367352.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/367352.html
MySql中添加用?新徏数据?用户授权,删除用户,修改密码
1.新徏用户?/strong>
//dMYSQL
@>mysql -u root -p
@>密码
//创徏用户
mysql> mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub
ject) values("localhost","pppadmin",password("passwd"),'','','');
q样创Z一个名为:phplamp 密码为:1234 的用戗?
然后d一下?
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>d成功
2.为用h权?/strong>
//dMYSQLQ有ROOT权限Q。我里我以ROOTw䆾d.
@>mysql -u root -p
@>密码
//首先为用户创Z个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限?
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//hpȝ权限?
mysql>flush privileges;
mysql>其它操作
/*
如果x定部分权限给一用户Q可以这h?
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//hpȝ权限表?
mysql>flush privileges;
*/
3.删除用户?/strong>
@>mysql -u root -p
@>密码
mysql>Delete FROM user Where User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
4.修改指定用户密码?/strong>
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密?) where User="phplamp" and Host="localhost";
mysql>flush privileges;
5.列出所有数据库
mysql>show database;
6.切换数据?/strong>
mysql>use '数据库名';
7.列出所有表
mysql>show tables;
8.昄数据表结?/strong>
mysql>describe 表名;
9.删除数据库和数据?
mysql>drop database 数据库名;
mysql>drop table 数据表名;


Alpha 2011-12-27 17:30 发表评论
]]>
JPA实体标识的自动生?/title><link>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349454.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 03 May 2011 15:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349454.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/349454.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/349454.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/349454.html</trackback:ping><description><![CDATA[<p>数据的唯一性是所有应用程序非常基本的要求Q由开发者或者用hl护q种唯一性存在着较大的风险,因此Q由pȝ自动产生唯一标识是一U常见的做法。OpenJPA 中支持四U不同的实体标识自动生成{略Q?/p> <ul> <li>容器自动生成的实体标识; <li>使用数据库的自动增长字段生成实体标识Q? <li>Ҏ数据库序列号QSequenceQ技术生成实体标识; <li>使用数据库表的字D는成实体标识; </li> </ul> <p>q四U方式各有优~点Q开发者可以根据实际情况进行选择?/p> <p><a name="N10073"><span id="wmqeeuq" class="atitle">可选择的注?/span></a></p> <p>要让容器和数据库l合理实体标识的自动生成,Ҏ实际情况的不同,开发者可以选择 <code>javax.persistence.*</code>包下面的 <code>GeneratedValue</code>?code>SequenceGenerator</code>?code>TableGenerator</code>三个注释来描q实体的标识字段?/p> <p><a name="N1008B"><span id="wmqeeuq" class="smalltitle">@javax.persistence.GeneratedValue</span></a></p> <p>每一个需要自动生成实体标识的实体都需要ؓ它的实体标识字段提供 <code>GeneratedValue</code>注释和相应的参数QOpenJPA 框架会根据注释和参数来处理实体标识的自动生成?/p> <p>使用 <code>GeneratedValue</code>注释自动生成的实体标识可以是数值类型字D如 <code>byte</code>?code>short</code>?code>int</code>?code>long</code>{,或者它们对应的包装器类?<code>Byte</code>?code>Short</code>?code>Integer</code>?code>Long</code>{,也可以是字符串类型?/p> <p><code>GeneratedValue</code>注释可以支持两个属?<code>strategy</code>?<code>generator</code>?/p> <ul> <li><strong><code>strategy</code> </strong> <p><code>strategy</code>?<code>GenerationType</code>cd的枚丑ր|它的内容指?OpenJPA 容器自动生成实体标识的方式?code>strategy</code>属性可以是下列枚D|</p> <ul> <li><strong><code>GeneratorType.AUTO</code> </strong> <p>表示实体标识?OpenJPA 容器自动生成Q这也是 Strategy 属性的默认倹{?/p> <li><strong><code>GenerationType.IDENTITY</code> </strong> <p>OpenJPA 容器用数据库的自增长字段为新增加的实体对象赋唯一|作ؓ实体的标识。这U情况下需要数据库提供对自增长字段的支持,常用的数据库中,HSQL、SQL Server、MySQL、DB2、Derby {数据库都能够提供这U支持?/p> <li><strong><code>GenerationType.SEQUENCE</code> </strong> <p>表示使用数据库的序列号ؓ新增加的实体对象赋唯一|作ؓ实体的标识。这U情况下需要数据库提供对序列号的支持,常用的数据库中,Oracle、PostgreSQL {数据库都能够提供这U支持?/p> <li><strong><code>GenerationType.TABLE</code> </strong> <p>表示使用数据库中指定表的某个字段记录实体对象的标识,通过该字D늚增长为新增加的实体对象赋唯一|作ؓ实体的标识?/p> </li> </ul> <li><strong><code>String generator</code> </strong> <p><code>generator</code>属性中定义实体标识生成器的名称。如果实体的标识自动生成{略不是 <code>GenerationType.AUTO</code>或?<code>GenerationType.IDENTITY</code>Q就需要提供相应的 <code>SequenceGenerator</code>或?<code>TableGenerator</code>注释Q然后将 <code>generator</code>属性D|ؓ注释?<code>name</code>属性倹{?/p> </li> </ul> <p><a name="N10149"><span id="wmqeeuq" class="smalltitle">@javax.persistence.SequenceGenerator</span></a></p> <p>如果实体标识的自动生{略?<code>GenerationType.SEQUENCE</code>Q开发者需要ؓ实体标识字段提供 <code>SequenceGenerator</code>注释Q它的参数描qC使用序列L成实体标识的具体l节。该注释支持以下四个属性:</p> <br /> <a name="table1"><strong>?1. SequenceGenerator 注释属性说?/strong></a><br /> <table class="ibm-data-table" border="0" cellspacing="0" summary="" cellpadding="0" width="100%"> <tbody> <tr> <th width="20%">属?/th> <th width="80%">说明</th> </tr> <tr> <td><code>name</code> </td> <td>该属性是必须讄的属性,它表CZ <code>SequenceGenerator</code>注释?OpenJPA 容器中的唯一名称Q将会被 <code>GeneratedValue</code>注释?<code>generator</code>属性用。将实体标识的自动生成委托给数据库的序列L性时Q实体标识字D늚 <code>GeneratedValue</code>注释?<code>generator</code>属性的值必d某个 <code>SequenceGenerator</code>注释?<code>name</code>属性g持一致?/td> </tr> <tr> <td><code>sequenceName</code> </td> <td>实体标识所使用的数据库序列L名称。该属性是可选的Q如果我们没有ؓ该属性设||OpenJPA 框架自动创建名?<code>OPENJPA_SEQUENCE</code>的序列号。如果一?OpenJPA 容器中管理的多个实体都选择使用序列h制生成实体标识,而且实体cM都没有指定标识字D늚 <code>sequenceName</code>属性,那么q些实体会׃npȝ提供的默认名?<code>OPENJPA_SEQUENCE</code>的序列号。这可能引v实体cȝL不连l。我们可以用下面的这个简单例子说明这U情况:假设 OpenJPA 容器中存在两个实体类 Dog ?FishQ它们的实体标识字段都是数值型Qƈ且都选择使用序列L成实体标识,但是实体cMq没有提?<code>sequenceName</code>属性倹{当我们首先持久化一?Dog 对象Ӟ它的实体标识会?1Q紧接着我们持久化一?Fish 对象Q它的实体标识就?2Q依ơ类推?/td> </tr> <tr> <td><code>initialValue</code> </td> <td>该属性设|所使用序列L起始倹{?/td> </tr> <tr> <td><code>allocationSize</code> </td> <td>一些数据库的序列化机制允许预先分配序列P比如 OracleQ这U预先分配机制可以一ơ性生成多个序列号Q然后放?cache 中,数据库用戯取的序列h从序列号 cache 中获取的Q这样就避免了在每一ơ数据库用户获取序列L时候都要重新生成序列号?code>allocationSize</code>属性设|的是一ơ预先分配序列号的数目,默认情况?<code>allocationSize</code>属性的值是 50?/td> </tr> </tbody> </table> <p><a name="N101DE"><span id="wmqeeuq" class="smalltitle">@javax.persistence.TableGenerator</span></a></p> <p>如果实体标识的自动生{略?GenerationType.TABLEQ开发者需要ؓ实体标识字段提供 TableGenerator 注释Q它的参数描qC使用数据库表生成实体标识的具体细节。该注释支持下列属性:</p> <br /> <a name="table2"><strong>?2. TableGenerator 注释属性说?/strong></a><br /> <table class="ibm-data-table" border="0" cellspacing="0" summary="" cellpadding="0" width="100%"> <tbody> <tr> <th width="20%">属?/th> <th width="80%">说明</th> </tr> <tr> <td><code>name</code> </td> <td>该属性是必须讄的属性,它表CZ <code>TableGenerator</code>注释?OpenJPA 容器中的唯一名称Q将会被 <code>GeneratedValue</code>注释?<code>generator</code>属性所使用。将实体标识的自动生成委托给数据库表Ӟ实体标识字段?<code>GeneratedValue</code>注释?<code>generator</code>属性的值必d某个 <code>TableGenerator</code>注释?<code>name</code>属性g持一致?/td> </tr> <tr> <td><code>table</code> </td> <td>该属性设|的是生成序列号的表的名U。该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认的表?<code>OPENJPA_SEQUENCES_TABLE</code>?/td> </tr> <tr> <td><code>schema</code> </td> <td>该属性设|的是生成序列号的表?schema。该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会默认使用当前数据库用户对应的 schema?/td> </tr> <tr> <td><code>catalog</code> </td> <td>该属性设|的是生成序列号的表?catalog。该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认当前数据库用户对应的 catalog?/td> </tr> <tr> <td><code>pkColumnName</code> </td> <td>该属性设|的是生成序列号的表中的主键字段的名Uͼ该字D将保存代表每个实体对应的标识值对应的特征字符丌Ӏ该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认?<code>ID</code>?/td> </tr> <tr> <td><code>valueColumnName</code> </td> <td>该属性设|的是生成序列号的表中记录实体对应标识最大值的字段的名U。该属性ƈ不是必须讄的属性,如果开发者没有ؓ?属性设||OpenJPA 容器会使用默认?<code>SEQUENCE_VALUE</code>?/td> </tr> <tr> <td><code>pkColumnValue</code> </td> <td>该属性设|的是生成序列号的表中的主键字段的特征字W串?( 比如 customID )Q该字段保存代表每个实体对应的标识值对应的特征字符丌Ӏ该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认?<code>DEFAULT</code>。可以ؓ多个实体讄相同?<code>pkColumnValue</code>属性|q些实体标识的生成将通过同一列的值的递增来实现?/td> </tr> <tr> <td><code>initialValue</code> </td> <td>该属性设|的是生成序列号的表实体标识的初始倹{该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认?0 ?/td> </tr> <tr> <td><code>allocationSize</code> </td> <td>Z降低标识生成旉J操作数据库造成 的性能上的影响Q实体标识生成的时候会一ơ性的获取多个实体标识Q该属性设|的是一ơ性获取实体标识的数目。该属性ƈ不是必须讄的属性,如果开发者没有ؓ该属性设||OpenJPA 容器会使用默认?50 ?/td> </tr> </tbody> </table> <div id="wmqeeuq" class="ibm-alternate-rule"> <hr /> </div> <p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="#ibm-pcon">回页?/a></p> <p><a name="N102A6"><span id="wmqeeuq" class="atitle">实体标识自动生成</span></a></p> <p>在上面的节中,我们了解了和实体标识自动生成相关的注释,接下来我们将l合一个简单的例子讲述如何分别使用q些实体标识自动生成{略实现实体标识的自动生成?/p> <p>我们首先假设有一?<code>Animal</code>实体需要被持久化,它包?<code>ID</code>?<code>NAME</code>属性,其中 <code>ID</code>是它的主键字Dc?code>Animal</code>实体的标识需要自动生成,我们分析在q四U不用的情况下,如何使用 OpenJPA 提供的注释,l合具体数据库支持的Ҏ,如自增长字段、序列号{来实现实体标识的自动生成?/p> <p><a name="N102C5"><span id="wmqeeuq" class="smalltitle">容器自动生成</span></a></p> <p>OpenJPA 容器默认的实体标识自动生成策略是由容器管理实体标识的自动生成Q容器管理的实体标识可以支持数值型和字W型两种。当容器理的实体标识是数字型时QOpenJPA 容器自动创徏一个数据库?<code>OPENJPA_SEQUENCE_TABLE</code>Q用其中?<code>SEQUENCE_VALUE</code>字段来记录实体的实体标识的增ѝ?/p> <p>当容器管理的实体标识是字W串cdӞOpenJPA 支持使用 uuid-string ?uuid-hex 两种方式生成相应的实体标识。如果我们选择使用 uuid-string 方式生成实体标识ӞOpenJPA 框架会自动ؓ实体生成一?128 位的 UUIDQƈ且将q个 UUID 转化Z?16 位字W表C的字符丌Ӏ如果我们选择使用 uuid-hex 方式生成实体标识ӞOpenJPA 框架会自动ؓ实体生成一?128 位的 UUIDQƈ且将q个 UUID 转化Z?32 位字W表C的 16 q制的字W串?/p> <p><strong>数值标?/strong> </p> <p>容器理的实体标识可以是数值型的,OpenJPA 框架理的实体标识借助于数据库的表来实玎ͼ在运行时 OpenJPA 框架会自动在数据库中创徏?<code>OPENJPA_SEQUENCE_TABLE</code>。它有两个字D:<code>ID</code>?<code>SEQUENCE_VALUE</code>Q这两个字段都是数值类型,其中 <code>ID</code>是表的主键字D,它的内容是查询当前实体标识时所使用的关键词Q默认值是 0。?<code>SEQUENCE_VALUE</code>记录了当?OpenJPA 框架中当前实体标识的历史数据Q内Ҏ已经被获取实体标识的最大数值加 1?/p> <p>我们要用注释描q?<code>Animal</code>实体的标识由容器自动生成Q只需要ؓ它的标识字段提供 <code>GeneratedValue</code>注释Qƈ且把它的 <code>strategy</code>属性设|ؓ <code>GenerationType.AUTO</code>, <code>Animal</code>实体cȝ代码片断如下Q?/p> <br /> <a name="listing1"><strong>清单 1. 标识由容器自动生成的 Animal 实体c?/strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id <strong>9. @GeneratedValue(strategy=GenerationType.AUTO)</strong> 10. private long id; 11. private String name; 12. 13. … 14. 15. } </pre> </td> </tr> </tbody> </table> <br /> <p>保存 <code>Animal</code>实体的第一个实例时QOpenJPA 框架自动调用 SQL 语句 <code>SELECT SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID=0</code>Q从默认保存实体标识?<code>OPENJPA_SEQUENCE_TABLE</code>表中获取实体的标识,如果不存?<code>ID</code>?0 的记录,OpenJPA 框架自动实体的标识讄?1?/p> <p>容器理实体标识的情况下Qؓ了获得实体标识,应用E序不得不频繁地和数据库交互,q会影响应用E序的运行效率。OpenJPA 中用实体标识缓存机制解册个问题。默认情况下Q当应用E序W一ơ获取实体标识时QOpenJPA 框架从数据库中一ơ性获?50 个连l的实体标识~存hQ当下一ơ应用程序需要获取实体标识时QOpenJPA 首先检缓存中是否存在实体标识Q如果存在,OpenJPA 直接用缓存中的实体标识,如果不存在,OpenJPA 框架会从数据库中再ơ获?50 个连l的实体标识~存hQ如此类推。这L处理方式可以大大减少׃获取实体标识而生的数据库交互,提升应用E序的运行效率?/p> <p>当实体标识成功获取之后,OpenJPA 框架会把当前实体标识的最大?+1 后持久化到数据库中。由于实体标识缓存的原因Q当我们W一ơ获取实体标识后QOpenJPA 会将 <code>OPENJPA_SEQUENCE_TABLE</code>表的 <code>SEQUENCE_VALUE</code>的D|ؓ 51Q当 OpenJPA 多次从数据库中获取实体标识后Q?code>SEQUENCE_VALUE</code>的g?50 为单位递增Q变?101?51?01 …?/p> <p>OpenJPA ~存的实体标识不是永久存在的Q只能在同一?<code>EntityManagerFactory</code>理范围内v作用Q也是_当获取实体标识的 <code>EntityManagerFactory</code>对象被关闭后Q这些被获取的实体标识中没有用掉的那一部分标识׃׃Q这会造成实体标识的不q箋。由同一?<code>EntityManagerFactory</code>对象创徏?<code>EntityManager</code>上下文之间则能够׃n OpenJPA 框架获取的实体标识,q意味着Q我们可以用同一?<code>EntityManagerFactory</code>对象创徏多个 <code>EntityManager</code>对象Q用它来持久化实体,然后关闭它,在持久化q程中所需要的实体表示会使用同一个实体标识的~存区,因此不会引v实体标识的丢失?/p> <p>容器理的实体标识还有一个非帔R要的Ҏ:所有被容器理的实体标识都是共享的。不?OpenJPA 容器中存在多个不同的被容器理的实体标识,它们都会从同一个实体标识缓存中获取实体标识。我们可以用下面的例子说明这U情况:假设 OpenJPA 容器中存在两个实体类 <code>Dog</code>?<code>Fish</code>Q它们的实体标识字段都是数值型Qƈ且都?OpenJPA 理。当我们首先持久化一?<code>Dog</code>对象Ӟ它的实体标识会?1Q紧接着我们持久化一?<code>Fish</code>对象Q它的实体标识就?2Q依ơ类推?/p> <p><strong>uuid-string</strong> </p> <p>要?uuid-string 机制自动生成实体标识Q我们需要将实体主键字段?<code>GeneratedValue</code>注释?<code>strategy</code>属性设|ؓ <code>GenarationType.AUTO</code>Q然后将 <code>GeneratedValue</code>注释?<code>generator</code>属性设|ؓ <code>uuid-string</code>。以 Animal 实体cMؓ例,我们只需要将 Animal 实体修改为如下内容:</p> <br /> <a name="listing2"><strong>清单 2. 使用 uuid-string 机制自动生成实体标识</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id 9. <strong>@GeneratedValue(strategy=GenerationType.AUTO, generator = "uuid-string")</strong> 10. <strong>private String id;</strong> 11. private String name; 12. 13. … 14. 15. } </pre> </td> </tr> </tbody> </table> <br /> <p><strong>uuid-hex</strong> </p> <p>要?uuid-hex 机制自动生成实体标识Q我们必d实体主键字段?<code>GeneratedValue</code>注释?<code>strategy</code>属性设|ؓ <code>GenarationType.AUTO</code>Q然后将 <code>GeneratedValue</code>注释?<code>generator</code>属性设|ؓ <code>uuid-hex</code>。以 Animal 实体cMؓ例,我们只需要将 Animal 实体修改为如下内容:</p> <br /> <a name="listing3"><strong>清单 3. 使用 uuid-hex 机制自动生成实体标识</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id 9. <strong>@GeneratedValue(strategy=GenerationType.AUTO, generator = "uuid-hex")</strong> 10. <strong>private String id;</strong> 11. private String name; 12. 13. … 14. 15. } </pre> </td> </tr> </tbody> </table> <br /> <p><a name="N103CB"><span id="wmqeeuq" class="smalltitle">自增长字D?/span></a></p> <p>自增长字D| HSQL、SQL Server、MySQL、DB2、Derby {数据库提供的一U特性,用于为数据库的记录提供自动增长的~号Q应用程序的设计者通常期望实体标识的自动生成委托l数据库的这U特性,OpenJPA 框架中的实体标识能够满应用E序设计者的要求Q用数据库的自增长字段为实体自动生成标识?/p> <p>要将实体标识的自动生成委托给数据库的自增长字D늉性,需要数据库和实体定义的双方配合才能够达刎ͼ首先Q必d实体标识字段对应的数据库列修改ؓ自动增长列,另外q需要将实体cM实体标识字段?<code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.IDENTITY</code>?/p> <p>我们?Animal 实体?HSQL 数据库中的持久化来说明如何用自增长字段自动生成实体标识所需要采取的步骤Q?/p> <p>首先Q我们用下面的 SQL 语句创徏 Animal 表,把它?<code>ID</code>字段讄动增长类型:</p> <br /> <a name="listing4"><strong>清单 4. ?ID 字段讄动增长类型的 SQL 语句</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> CREATE TEXT TABLE ANIMAL ( ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY, NAME VARCHAR(255) NOT NULL ) </pre> </td> </tr> </tbody> </table> <br /> <p>在数据库部分表的主键字D设|ؓ自动增长字段后,在实?<code>Animal</code>的定义中Q我们需要将 <code>id</code>字段 <code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.IDENTITY</code>。Animal 实体cM改后的代码片D如下?/p> <br /> <a name="listing5"><strong>清单 5. 标识p增长字段生成?Animal 实体c?/strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id <strong>9. @GeneratedValue(strategy=GenerationType.IDENTITY)</strong> 10. private long id; 11. private String name; 12. 13. … 14. 15. } </pre> </td> </tr> </tbody> </table> <br /> <p><a name="N10418"><span id="wmqeeuq" class="smalltitle">序列PSequenceQ?/span></a></p> <p>序列h Oracle、PostgreSQL {数据库提供的一U特性,用于为数据库的记录提供自动增长的~号Q?Oracle、PostgreSQL {数据库应用E序的设计者通常期望实体标识的自动生成委托l数据库的这U特性,OpenJPA 框架中的实体标识能够满应用E序设计者的要求Q用数据库的序列号为实体自动生成标识?/p> <p>要将实体标识的自动生成委托给数据库的序列L性,需要数据库和实体定义的双方配合才能够达刎ͼ首先Q必d数据库中创徏合适的序列P另外q需要ؓ实体标识字段提供 <code>SequenceGenerator</code>注释Q设|它的参敎ͼ为实体类提供关于序列L信息Q同时将实体cM实体标识字段?<code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.SEQUENCE</code>Q将 <code>generator</code>属性的D|ؓ <code>SequenceGenerator</code>注释?<code>name</code>属性的倹{?/p> <p>我们?Animal 实体?Oracle 数据库中的持久化来说明如何用自增长字段自动生成实体标识所需要采取的步骤Q?/p> <p>首先Q在 Oracle 数据库中q行下面?SQL 语句创徏名ؓ <code>HelloWorldSequence</code>的序列号Q序列号支持 cacheQ大ؓ 50Q?/p> <br /> <a name="listing6"><strong>清单 6. 创徏序列L SQL 语句</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> CREATE SEQUENCE HELLOWORLDSEQUENCE START WITH 0 INCREMENT BY 1 MINVALUE 1 CACHE 50 NOCYCLE NOORDER </pre> </td> </tr> </tbody> </table> <br /> <p>然后Q在 Oracle 数据库中Q我们用下面的 SQL 语句创徏 <code>ANIMAL</code>表:</p> <br /> <a name="listing7"><strong>清单 7. 创徏 ANIMAL ?/strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> CREATE TABLE EOS52.ANIMAL ( ID CHAR(10), NAME VARCHAR2(100) NOT NULL, CONSTRAINT PK_ANIMAL PRIMARY KEY (ID ) ) </pre> </td> </tr> </tbody> </table> <br /> <p>在数据库部分创徏合适的序列号和相应的数据库表后Q在实体 <code>Animal</code>的定义中Q我们需要将 <code>id</code>字段 <code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.SEQUENCE</code>Q设|它?<code>generator</code>属性的gؓ <code>SeqGenerator</code>。我们还需要ؓ <code>id</code>字段提供另外一个相关的注释 <code>SequenceGenerator</code>Q设|它?<code>name</code>属性ؓ <code>SeqGenerator</code>Q设|它 <code>sequenceName</code>属性ؓ <code>HelloWorldSequence</code>。Animal 实体cM改后的代码片D如下?/p> <br /> <a name="listing8"><strong>清单 8. 标识由序列号生成?Animal 实体c?/strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id 9. <strong>@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SeqGenerator")</strong> 10. <strong>@SequenceGenerator(name = "SeqGenerator", sequenceName = " HelloWorldSequence")</strong> 11. private long id; 12. private String name; 13. 14. … 15. 16. } </pre> </td> </tr> </tbody> </table> <br /> <p><a name="N104A8"><span id="wmqeeuq" class="smalltitle">数据库表</span></a></p> <p>除了使用容器生成的实体标识,或者借助于数据库的自增长字段或者序列号{方式生成实体标识之外,我们q可以选择借助数据库表来自动生成实体标识。原理是我们提供一个独立的数据库表Q该表的主键?( 假设列名 <code>ID</code>) 记录实体~号的特征字W串 ( 假设存在一条记录的 <code>ID</code>?<code>customID</code>)Q另外一?( 假设列名?<code>SEQUENCE_VALUE</code>) 记录该特征字W串对应实体标识的最大倹{编写实体代码时Q我们指定实体标识由数据库表中指定的特征字符?( ?<code>customID</code>) 对应的列 <code>SEQUENCE_VALUE</code>处理Q当有新的实体被持久化时Q容器将获取?<code>customID</code>、列 <code>SEQUENCE_VALUE</code>对应的数?+1 后作为新实体的标识,同时该列的g自动 +1?/p> <p>要将实体标识的自动生成委托给数据库表Q需要数据库和实体定义的双方配合才能够达刎ͼ首先Q必d数据库中创徏合适的保存实体标识的表Q另外还需要ؓ实体标识字段提供 <code>TableGenerator</code>注释Q设|它的参敎ͼ为实体类提供关于数据库表、字D늚信息Q同时将实体cM实体标识字段?<code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.Table</code>Q将 <code>generator</code>属性的D|ؓ <code>SequenceGenerator</code>注释?<code>name</code>属性的倹{?/p> <p>我们?Animal 实体cL说明使用数据库表自动生成实体标识所需要采取的步骤Q我们假讑֭在这L场景QAnimal 实体的标识由应用E序中自定义的数据库?<code>MY_KEYS</code>自动生成Q?code>MY_KEYS</code>表中有两列,一列是 <code>KEYID</code>Q它保存实体标识的特征|一列是 <code>KEYVALUE</code>Q它保存实体当前的最大编P除此之外Q我们还军_使用 <code>ANIMALID</code>作ؓ Animal 实体标识的特征字W串?/p> <p>首先Q在数据库中使用下面?SQL 语句创徏名ؓ <code>MY_KEYS</code>的数据库表。在 OpenJPA 容器中,如果我们没有创徏 <code>MY_KEYS</code>表,OpenJPA 容器帮我们自动生成对应的表l构?/p> <br /> <a name="listing9"><strong>清单 9. 创徏数据库表 MY_KEYS</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> CREATE TABLE MY_KEYS ( KEYID VARCHAR(255) NOT NULL, KEYVALUE BIGINT, PRIMARY KEY (KEYID) ) </pre> </td> </tr> </tbody> </table> <br /> <p>在数据库部分创徏合适的数据库表后,在实?Animal 的定义中Q我们需要将 <code>id</code>字段 <code>GeneratedValue</code>注释?<code>stragety</code>属性的D|ؓ <code>GenerationType.TABLE</code>Q设|它?<code>generator</code>属性的gؓ <code>TableGenerator</code>。我们还需要ؓ <code>id</code>字段提供另外一个注?<code>TableGenerator</code>Q设|它?<code>name</code>属性ؓ <code>TableGenerator</code>Q设|它?<code>table</code>属性ؓ <code>MYKEYS</code>?code>pkColumnName</code>属性ؓ <code>KEYID</code>?code>valueColumnName</code>属性ؓ <code>KEYVALUE</code>?<code>ANIMALID</code>属性ؓ <code>ANIMALID</code>。Animal 实体cM改后的代码片D如下?/p> <br /> <a name="listing10"><strong>清单 10. 标识由数据库表生成的 Animal 实体c?/strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. import javax.persistence.Entity; 2. import javax.persistence.GeneratedValue; 3. import javax.persistence.GenerationType; 4. import javax.persistence.Id; 5. 6. @Entity 7. public class Animal { 8. @Id 9. <strong>@GeneratedValue(strategy = GenerationType.TABLE, generator = " TableGenerator ")</strong> 10. <strong>@TableGenerator(name = " TableGenerator", table = "MY_KEYS",</strong> <strong>pkColumnName = "KEYID", valueColumnName = "KEYVALUE", pkColumnValue = "ANIMALID")</strong> 11. <strong>private long id;</strong> 12. private String name; 13. 14. … 15. 16. } </pre> </td> </tr> </tbody> </table> <br /> <div id="wmqeeuq" class="ibm-alternate-rule"> <hr /> </div> <p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="#ibm-pcon">回页?/a></p> <p><a name="N1057A"><span id="wmqeeuq" class="atitle">调用代码</span></a></p> <p>上面的章节中我们学习了分别用四U方式来自动生成实体的标识,׃q四U情况下QAnimal 实体的标识都?OpenJPA 和数据库协作后自动生成,对于开发者而言Q这个过E是透明的,因此我们可以使用相同的方式来创徏q些实体Q创建新?Animal 实例的时候不再需要ؓ主键字段提供属性|只需要设|?Animal 实例的非标识字段 <code>name</code>的值即可。下面的代码演示?Animal 实例的持久化代码Q请注意代码中ƈ没有调用 Animal 实例?setId Ҏ?/p> <br /> <a name="listing11"><strong>清单 11. Animal 实例的持久化代码</strong></a><br /> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> 1. EntityManagerFactory factory = Persistence. 2. createEntityManagerFactory( 3. "jpa-unit", System.getProperties()); 4. EntityManager em = factory.createEntityManager(); 5. em.getTransaction().begin(); 6. 7. <strong>Animal animal = new Animal();</strong> 8. <strong>// 此处不需要调?animal ?setId Ҏ</strong> 9. <strong>animal.setName("ba guai!");</strong> 10. <strong>em.persist(animal);</strong> 11. 12. em.getTransaction().commit(); 13. em.close(); 14. em2.close(); 15. factory.close(); </pre> </td> </tr> </tbody> </table> <br /> <div id="wmqeeuq" class="ibm-alternate-rule"> <hr /> </div> <p class="ibm-ind-link ibm-back-to-top"><a class="ibm-anchor-up-link" href="#ibm-pcon">回页?/a></p> <p><a name="N1059B"><span id="wmqeeuq" class="atitle">ȝ</span></a></p> <p>本文介绍了开发者?OpenJPA 实现实体标识自动生成时可选择使用的注释,q且l合单的例子Q分别介l了 OpenJPA 中实现容器管理的实体标识自动生成、结合数据库自增长字Dc序列号、数据库表等Ҏ实现实体标识自动生成时注释的具体用法和操作步骤?/p> <!-- CMA ID: 263234 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file: dw-document-html-6.0.xsl --><br /> http://www.ibm.com/developerworks/cn/java/j-lo-openjpa5/<br /> <br /> <br /><img src ="http://www.aygfsteel.com/Alpha/aggbug/349454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2011-05-03 23:06 <a href="http://www.aygfsteel.com/Alpha/archive/2011/05/03/349454.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE11g 安装于基本配|说?/title><link>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349450.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 03 May 2011 14:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349450.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/349450.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/349450.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/349450.html</trackback:ping><description><![CDATA[<p><strong>1Q?/strong><strong>oracle中实例的创徏</strong>Qoracle中实例创建即SID的创建,通常在安装完oracle后,启动 配置和移植工具中的(数据库配|向|</p> <p> database configuration assistant Q按照向导去创徏SIDQ当日利用database configuration assistant q可?创徏数据库、配|数据选g、删除数据库、管理模ѝ配|自动存储管理?/p> <p><strong>2Q?/strong><strong>oracle中服务的创徏Q?/strong>在oracle实例创徏完后Q就可以创徏服务名了。注意:q接一个实例可以有多个服务名。启?配置和移植工具中的net managerQ网l配|)Q按照向导开始配|?|络服务?=》TCP/IP协议==》主机名Q服务端的IP地址Q?=》oracle8i或更高版?服务名(<strong>即SID实例名称</strong>Q?=》测?==》完成?/p> <p><strong>3Q?/strong><strong>框架中db.properties的配|:</strong></p> <p>datasource.driverClassName=oracle.jdbc.OracleDriver<br /> datasource.url=jdbc:oracle:thin:@//127.0.0.1:1521/<strong>ORCL  Q注意,q个orcl是指第二项 oracle中服务的创徏Q?/strong><br /> datasource.username=card<br /> datasource.password=1111</p> <p>c3p0.minPoolSize=1<br /> c3p0.maxPoolSize=30<br />  <br /> hibernate.dialect=org.hibernate.dialect.Oracle10gDialect<br /> hibernate.jdbc.batch_size=25<br /> hibernate.jdbc.fetch_size=50<br /> hibernate.show_sql=true</p><img src ="http://www.aygfsteel.com/Alpha/aggbug/349450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2011-05-03 22:19 <a href="http://www.aygfsteel.com/Alpha/archive/2011/05/03/349450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle关键?/title><link>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349451.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 03 May 2011 14:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349451.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/349451.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2011/05/03/349451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/349451.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/349451.html</trackback:ping><description><![CDATA[access   add   all   alter   and   any   as   asc   audit   between   by   char   check   cluster   column   comment   <br /> compress   connect   create   current   date   decimal   default   delete   desc   distinct   drop   else   exclusive   <br /> exists   file   float   for   from   grant   group   having   identified   immediate   in   increment   index   initial   <br /> insert   integer   intersect   into   is   level   like   lock   long   maxextents   minus   mlslabel   mode   modify   <br /> noaudit   nocompress   not   nowait   null   number   of   offline   on   online   option   or   order   pctfree   prior   <br /> privileges   public   raw   rename   resource   revoke   row   rowid   rownum   rows   select   session   set   <br /> share   size   smallint   start   successful   synonym   sysdate   table   then   to   trigger   uid   union   unique   <br /> update   user   validate   values   varchar   varchar2   view   whenever   where   with <br /><img src ="http://www.aygfsteel.com/Alpha/aggbug/349451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2011-05-03 22:19 <a href="http://www.aygfsteel.com/Alpha/archive/2011/05/03/349451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux和Mysql常用命ohttp://www.aygfsteel.com/Alpha/archive/2010/04/16/318526.htmlAlphaAlphaFri, 16 Apr 2010 07:17:00 GMThttp://www.aygfsteel.com/Alpha/archive/2010/04/16/318526.htmlhttp://www.aygfsteel.com/Alpha/comments/318526.htmlhttp://www.aygfsteel.com/Alpha/archive/2010/04/16/318526.html#Feedback0http://www.aygfsteel.com/Alpha/comments/commentRss/318526.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/318526.html  

.tar.bz2

解压Qtar jxvf FileName.tar.bz2 压羃Qtar jcvf FileName.tar.bz2 DirName

.gz
解压1Qgunzip FileName.gz   解压2Qgzip -d FileName.gz 压羃Qgzip FileName
.tar.gz
?.tgz
解压Qtar zxvf FileName.tar.gz 压羃Qtar zcvf FileName.tar.gz DirName

.rpm
解包Q?/span>rpm2cpio FileName.rpm | cpio -div
.deb
解包Q?/span>ar p FileName.deb data.tar.gz | tar zxf -

从远Escp到本圎ͼ

scp root@192.168.2.100:/opt/test/* /opt/test Q输?/span>q程机器密码后完?/span>

scp -P 3588  root@192.168.2.100:/opt/test/* /opt/test 走特D端口号


从本地scp到远E:

scp /opt/test/*  root@192.168.2.100:/opt/test Q输?/span>q程机器密码后完?/span>

使用方式 : chmod [-cfvR] [--help] [--version] mode file...

使用方式 :chown jessie:users file1.txt 

Mysql 初始化:chkconfig –add mysqld

正在使用的端口:netstat -ant

挂蝲USBQ?mount  /dev/sdc /mnt/usb

Rpm 安装Q?rpm –ivh filename

www服务配置Q?etc/httpd/conf/httpd.conf

|络试Qcurl -I http://www.job5156.com

改IP地址Qifconfig eth0 192.168.2.29 netmask 255.255.255.0

改网养Iroute add default gw 192.168.2.254   查看Qroute –n

改DNSQnano -w /etc/resolv.conf  


导出表结构:mysqldump -u root -p -d --add-drop-table dbName tableName > /opt/name.sql

导入表结构:mysql dbName < name.sql

修复Mysql表: mysqlrepair --auto-repair -F -r dbName  tableName

lmysql用户加̎h限: grant all on dbName.* to user@'%' identified by 'pwd'; FLUSH PRIVILEGES;

加字D:ALTER TABLE table_name ADD field_name field_type;

删字D:alter table t2 drop column c;

字段重命名:alter table t1 change a b integer;

表重命名Qalter table t1 rename t2;

加烦引:alter table tablename add index 索引?(字段?[Q字D名2 …]);

删烦引:alter table tablename drop index emp_name;



Alpha 2010-04-16 15:17 发表评论
]]>
从MySQL得到最大的性能http://www.aygfsteel.com/Alpha/archive/2009/09/22/296050.htmlAlphaAlphaTue, 22 Sep 2009 08:55:00 GMThttp://www.aygfsteel.com/Alpha/archive/2009/09/22/296050.htmlhttp://www.aygfsteel.com/Alpha/comments/296050.htmlhttp://www.aygfsteel.com/Alpha/archive/2009/09/22/296050.html#Feedback20http://www.aygfsteel.com/Alpha/comments/commentRss/296050.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/296050.html阅读全文

Alpha 2009-09-22 16:55 发表评论
]]>
MYSQL 字符集问?/title><link>http://www.aygfsteel.com/Alpha/archive/2009/04/11/264986.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 11 Apr 2009 02:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2009/04/11/264986.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/264986.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2009/04/11/264986.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/264986.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/264986.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="postcontent">前一D|_一直被mysql的字W集困扰Q今天就q方面的知识ȝ一?<br /> MySQL的字W集支持(Character Set Support)有两个方面:<br />      字符?Character set)和排序方?Collation)?br /> 对于字符集的支持l化到四个层? <br />      服务?server)Q数据库(database)Q数据表(table)和连?connection)?br /> <br /> <br /> 1.MySQL默认字符? <p>  MySQL对于字符集的指定可以l化C个数据库Q一张表Q一列,应该用什么字W集?/p> <p>但是Q传l的E序在创建数据库和数据表时ƈ没有使用那么复杂的配|,它们用的是默认的配置Q那么,默认的配|从何而来呢?</p>     (1)~译MySQL Ӟ指定了一个默认的字符集,q个字符集是 latin1Q?br />     (2)安装MySQL Ӟ可以在配|文?(my.ini) 中指定一个默认的的字W集Q如果没指定Q这个值承自~译时指定的Q?br />     (3)启动mysqld Ӟ可以在命令行参数中指定一个默认的的字W集Q如果没指定Q这个值承自配置文g中的配置,此时 <strong>character_set_server</strong> 被设定ؓq个默认的字W集Q?br />     (4)当创Z个新的数据库Ӟ除非明确指定Q这个数据库的字W集被缺省设定ؓ<strong>character_set_server</strong>Q?br />     (5)当选定了一个数据库Ӟ<strong>character_set_database</strong> 被设定ؓq个数据库默认的字符集;<br />     (6)在这个数据库里创Z张表Ӟ表默认的字符集被讑֮?<strong>character_set_database</strong>Q也是q个数据库默认的字符集;<br />     (7)当在表内讄一栏时Q除非明指定,否则此栏~省的字W集是表默认的字符集;<br /> <p>单的ȝ一下,如果什么地斚w不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储Q不q我们如果安?MySQLQ一般都会选择多语a支持Q也是_安装E序会自动在配置文g中把 <strong>default_character_set</strong> 讄?UTF-8Q这保证了缺省情况下Q所有的数据库的所有表的所有栏位的都用 UTF-8 存储?/p> <br /> 2.查看默认字符?默认情况下,mysql的字W集是latin1(ISO_8859_1)<br /> 通常Q查看系l的字符集和排序方式的设定可以通过下面的两条命令:<br />      mysql> SHOW VARIABLES LIKE 'character%';<br /> +--------------------------+---------------------------------+<br /> | Variable_name            | Value                           |<br /> +--------------------------+---------------------------------+<br /> | character_set_client     | latin1                          |<br /> | character_set_connection | latin1                          |<br /> | character_set_database   | latin1                          |<br /> | character_set_filesystem | binary                          |<br /> | character_set_results    | latin1                          |<br /> | character_set_server     | latin1                          |<br /> | character_set_system     | utf8                            |<br /> | character_sets_dir       | D:"mysql-5.0.37"share"charsets" |<br /> +--------------------------+---------------------------------+<br /> <br />   mysql> SHOW VARIABLES LIKE 'collation_%';<br /> +----------------------+-----------------+<br /> | Variable_name        | Value           |<br /> +----------------------+-----------------+<br /> | collation_connection | utf8_general_ci |<br /> | collation_database   | utf8_general_ci |<br /> | collation_server     | utf8_general_ci |<br /> +----------------------+-----------------+<br /> <br /> 3.修改默认字符?br />   (1) 最单的修改ҎQ就是修改mysql的my.ini文g中的字符集键|<br /> ?   default-character-set = utf8<br />       character_set_server =  utf8<br />    修改完后Q重启mysql的服务,service mysql restart<br />    使用 mysql> SHOW VARIABLES LIKE 'character%';查看Q发现数据库~码均已Ҏutf8<br /> +--------------------------+---------------------------------+<br /> | Variable_name            | Value                           |<br /> +--------------------------+---------------------------------+<br /> | character_set_client     | utf8                            |<br /> | character_set_connection | utf8                            |<br /> | character_set_database   | utf8                            |<br /> | character_set_filesystem | binary                          |<br /> | character_set_results    | utf8                            |<br /> | character_set_server     | utf8                            |<br /> | character_set_system     | utf8                            |<br /> | character_sets_dir       | D:"mysql-5.0.37"share"charsets" |<br /> +--------------------------+---------------------------------+<br /> <br />    (2) q有一U修改字W集的方法,是使用mysql的命?br />      mysql> SET character_set_client = utf8 ;<br />      mysql> SET character_set_connection = utf8 ;<br />      mysql> SET character_set_database = utf8 ;<br />      mysql> SET character_set_results = utf8 ;<br />      mysql> SET character_set_server = utf8 ;<br /> <br />      mysql> SET collation_connection = utf8 ;<br />      mysql> SET collation_database = utf8 ;<br />      mysql> SET collation_server = utf8 ;<br /> <br /> <br /> 一般就设|了表的默认字符集ؓutf8q且通过UTF-8~码发送查询,你会发现存入数据库的仍然是ؕ码。问题就出在q个connectionq接层上。解x法是在发送查询前执行一下下面这句: <p>SET NAMES 'utf8';</p> 它相当于下面的三句指令:<br /> SET character_set_client = utf8;<br /> SET character_set_results = utf8;<br /> SET character_set_connection = utf8;<br /> <br /> ȝ: <br /> <span>因此Q用什么数据库版本Q不是3.xQ还?.0.xq是4.1.xQ其实对我们来说不重要,重要的有二: <br />   1) 正确的设定数据库~码.MySQL4.0以下版本的字W集L默认ISO8859-1QMySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8Q那么在创徏数据库的时候就要指定好UTF-8(创徏好以后也可以改,4.1以上版本q可以单独指定表的字W集) <br />   2) 正确的设定数据库connection~码.讄好数据库的编码后Q在q接数据库时候,应该指定connection的编码,比如使用jdbcq接Ӟ指定q接为utf8方式.<br /> <br /> <br /> <span style="font-size: 8pt"><span style="font-size: 10pt"><span style="font-family: Arial">参?"关中刀? ?nbsp; <Mysql~码问题>Q原文地址http://lixiang.cn/?q=node/98</span></span></span></span><br /> <span><br /> <br /> <br /> <br /> </span><br /> <br /> <br /> </div><img src ="http://www.aygfsteel.com/Alpha/aggbug/264986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2009-04-11 10:29 <a href="http://www.aygfsteel.com/Alpha/archive/2009/04/11/264986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL的mysqldump工具的基本用?/title><link>http://www.aygfsteel.com/Alpha/archive/2007/08/10/135694.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 10 Aug 2007 01:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2007/08/10/135694.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/135694.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2007/08/10/135694.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/135694.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/135694.html</trackback:ping><description><![CDATA[     摘要: 导出要用到MySQL的mysqldump工具Q基本用法是Q?nbsp; <a href='http://www.aygfsteel.com/Alpha/archive/2007/08/10/135694.html'>阅读全文</a><img src ="http://www.aygfsteel.com/Alpha/aggbug/135694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2007-08-10 09:21 <a href="http://www.aygfsteel.com/Alpha/archive/2007/08/10/135694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql alter 语句用法,d、修攏V删除字D늭http://www.aygfsteel.com/Alpha/archive/2007/07/23/131912.htmlAlphaAlphaMon, 23 Jul 2007 09:21:00 GMThttp://www.aygfsteel.com/Alpha/archive/2007/07/23/131912.htmlhttp://www.aygfsteel.com/Alpha/comments/131912.htmlhttp://www.aygfsteel.com/Alpha/archive/2007/07/23/131912.html#Feedback6http://www.aygfsteel.com/Alpha/comments/commentRss/131912.htmlhttp://www.aygfsteel.com/Alpha/services/trackbacks/131912.html  阅读全文

Alpha 2007-07-23 17:21 发表评论
]]>
MySQL 安装与?/title><link>http://www.aygfsteel.com/Alpha/archive/2007/03/30/107464.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 30 Mar 2007 05:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2007/03/30/107464.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/107464.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2007/03/30/107464.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/107464.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/107464.html</trackback:ping><description><![CDATA[     摘要: MySQL 资料库的是值得推广的一个品,它的E_性已l稳得大家的赞同Q只要你曄学习q?SQL LanguageQ结构化查询语言Q,怿要摸?MySQL 的用只消一两个时的时间。如果搭?PHP QPersonal HomePage ProgramQ和 Apache Web ServerQ更可很L建构一个与资料库结合的动?Web Site。如果再配合 phpMyAdmin q个 Web 化的 MySQL 理工具Q徏?MySQL 的资料库? MySQL 的管理将会更加方ѝ?nbsp; <a href='http://www.aygfsteel.com/Alpha/archive/2007/03/30/107464.html'>阅读全文</a><img src ="http://www.aygfsteel.com/Alpha/aggbug/107464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2007-03-30 13:45 <a href="http://www.aygfsteel.com/Alpha/archive/2007/03/30/107464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mysql日期和时间函数大?/title><link>http://www.aygfsteel.com/Alpha/archive/2006/04/07/39844.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 07 Apr 2006 06:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/Alpha/archive/2006/04/07/39844.html</guid><wfw:comment>http://www.aygfsteel.com/Alpha/comments/39844.html</wfw:comment><comments>http://www.aygfsteel.com/Alpha/archive/2006/04/07/39844.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Alpha/comments/commentRss/39844.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Alpha/services/trackbacks/39844.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://www.aygfsteel.com/Alpha/archive/2006/04/07/39844.html'>阅读全文</a><img src ="http://www.aygfsteel.com/Alpha/aggbug/39844.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Alpha/" target="_blank">Alpha</a> 2006-04-07 14:51 <a href="http://www.aygfsteel.com/Alpha/archive/2006/04/07/39844.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">̩˳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ů</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">г</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϸ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ؿ˹</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">μ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>