<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[神仙_乾子的上海筛沙生活]]></title> 
<link>http://www.6xuan.com/index.php</link> 
<description><![CDATA[记录乾子(tinkoko)在上海的生活点滴]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[神仙_乾子的上海筛沙生活]]></copyright>
<item>
<link>http://www.6xuan.com/read.php?299</link>
<title><![CDATA[mysql5.1.32.tar.gz气死我了气死我了]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Wed, 01 Apr 2009 10:18:24 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?299</guid> 
<description>
<![CDATA[ 
	客户要求mysql-5.1.32是gbk的版本<br/><br/>我从mysql.com下载了二进制源码，不用编译自己安装就好了。后来查看到是latin1的语言~<br/><br/>网上搜索了半天，一篇有用的文章也没有，都是在freebsd下如何重新安装mysql-5.1.32，让他支持gbk<br/><br/>不得已。又搜索了下找到了mysql5.1.32的源码包，还是手动编译自己心里放心~<br/><br/>从这里下载http://dev.mysql.com/downloads/mysql/5.1.html&nbsp;&nbsp;mysql5.1.32.tar.gz<br/><br/>至于如何支持gbk,还是默认的--with-charset=gbk --with-xcharset=all<br/><br/><br/>=================================<br/><br/>最主要是安装好后出现问题，启动时候出错，查看error<br/><br/>/usr/local/mysql5/libexec/mysqld: Table 'mysql.plugin' doesn't exist<br/>090224 23:30:42 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.<br/>090224 23:30:42 [ERROR] /usr/local/mysql5/libexec/mysqld: unknown option '--skip-federated'<br/>090224 23:30:42 [ERROR] Aborting<br/><br/>090224 23:30:42 [Note] /usr/local/mysql5/libexec/mysqld: Shutdown complete<br/><br/><br/>===================<br/><br/>解决方法<br/><br/>my.cnf里注释掉--skip-federated新版本不需要这个参数了。如果需要这个引擎的在编译的时候要加上<br/>--with-plugins=federated,在my.cnf里用federated参数就行了。<br/>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?285</link>
<title><![CDATA[Mysql下的备份时候数据编码转换]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Fri, 27 Feb 2009 09:44:30 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?285</guid> 
<description>
<![CDATA[ 
	mysql数据转换编码<br/>[root@piglet home]# mysqldump -u root -p --default-character-set=latin1 --set-charset=utf8 --skip-opt aiyomama_cn > /home/sites/savemoney.sql<br/>Enter password:<br/><br/>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?270</link>
<title><![CDATA[更改mysql密码的另一种方法 ]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Mon, 02 Feb 2009 08:34:09 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?270</guid> 
<description>
<![CDATA[ 
	<p>很多情况下 我们在更改 mysql密码时候都喜欢用<br /><br /><br />mysqladmin -u root -p password 新密码<br /><br />正常情况下这样子是没有问题的</p><p>但是有时候会 出现userpassword YES OR NO的提示 <br />意思就是拒绝了root用户登录</p><p>这个时候我们可以做的就是输入<br /># killall mysqld <br /># mysqld_safe --skip-grant-tables &amp; <br />这样子跳过输入密码步骤</p><p>然后登陆进去可以进行一切操作，比如修改密码<br />mysql&gt; update mysql.user set password=password('1234') where user = 'root'; <br /></p><br/><br/>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?259</link>
<title><![CDATA[Centos4.4/5.0/5.1下安装Oracle10g--转刘学文blog]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Thu, 20 Nov 2008 03:28:43 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?259</guid> 
<description>
<![CDATA[ 
	<h1><span>环境设置</span></h1><h2><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>安装</span><span>CENTOS 5.1</span></h2><span style="font-family: 宋体"><span>　</span><span>　这个就不用说了，但有一点要注意：为</span></span><span>SWAP</span><span><span style="font-family: 宋体">分配的空间要超过</span></span><span>1G</span><span><span style="font-family: 宋体">，要不然后面装</span></span><span>Oralce</span><span style="font-family: 宋体"><span>会因为空间不足而无法安装。</span><span><p></p></span></span> <h2><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>查询所需安装包是否完整</span></h2><p><span style="font-size: small"><span>以</span><span><span style="font-family: Times New Roman">root</span></span><span>用户在终端中执行以下命令：</span></span></p><span>rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel<p></p></span><span><span style="font-family: 宋体">如果没有安装这些包的话，可以在</span></span><span>CentOS</span><span><span style="font-family: 宋体">安装光盘的</span></span><span>CentOS</span><span><span style="font-family: 宋体">目录下找到相应的</span></span><span>rmp</span><span><span style="font-family: 宋体">文件来安装，如果你的服务器可以联网的话，也可以通过</span></span><span>yum</span><span><span style="font-family: 宋体">的方式下载安装，我就是用</span></span><span>yum</span><span style="font-family: 宋体"><span>安装的，在终端中执行以下命令：</span><span><p></p></span></span><span><span style="font-size: small"><span style="font-family: Times New Roman">yum install compat-gcc-32 compat-gcc-32-c++ compat-gcc-32-g77 compat-libf2c-32 compat-libstdc++-296 compat-libstdc++-33 compat-db compat-readline43<p></p></span></span></span><span><p><span style="font-size: small; font-family: Times New Roman">&nbsp;</span></p></span> <p><span><span style="font-size: small">按命令提示的下载安装，所需的时间取决于你的网速，我用了大约一个小时的时间。</span></span></p><span><p><span style="font-size: small; font-family: Times New Roman">&nbsp;</span></p></span><span><span style="font-family: 宋体">可能安装完了以后用上述命令查看还是会出现某些包没有安装的信息，这个不用理会，据说是</span></span><span>rpm</span><span><span style="font-family: 宋体">的</span></span><span>BUG</span><span style="font-family: 宋体"><span>。</span><span><p></p></span></span><span>package compat-gcc-c++ is not installed<p></p></span><span>package compat-libstdc++ is not installed<p></p></span><span>package compat-libstdc++-devel is not installed<p></p></span> <h2><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>OS</span><span>参数要求</span></h2><span><span style="font-family: 宋体">编辑</span></span><span> <span>/etc/sysctl.conf <span>&nbsp;</span>(</span></span><span><span style="font-family: 宋体">用</span></span><span>vi</span><span><span style="font-family: 宋体">或文本编辑器都可以</span></span><span>), </span><span style="font-family: 宋体"><span>在行末添加以下内容</span><span><p></p></span></span><span>#use for oracle<p></p></span><span>kernel.shmall = 2097152<p></p></span><span>kernel.shmmax = 2147483648<p></p></span><span>kernel.shmmni = 4096<p></p></span><span>kernel.sem = 250 32000 100 128<p></p></span><span>fs.file-max = 65536<p></p></span><span>net.ipv4.ip_local_port_range = 1024 65000<p></p></span><span>net.core.rmem_default=262144<p></p></span><span>net.core.rmem_max=262144<p></p></span><span>net.core.wmem_default=262144<p></p></span><span>net.core.wmem_max=262144<p></p></span><span><br /></span><span><span style="font-family: 宋体">再运行</span></span><span>sysctl -p</span><span style="font-family: 宋体"><span>应用以上参数</span><span><p></p></span></span><span><br /></span> <h2><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>编辑</span><span> /etc/security/limits.conf </span><span>行末添加以下内容</span></h2><span>#use for oracle<p></p></span><span>* soft nproc 2047<p></p></span><span>* hard nproc 16384<p></p></span><span>* soft nofile 1024<p></p></span><span>* hard nofile 65536<p></p></span> <h2><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>编辑</span><span> /etc/pam.d/login </span><span>行末添加以下内容</span></h2><span><span style="font-family: 宋体">　</span></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp; </span><span>session required pam_limits.so</span><p></p></span> <h2><span><span>6.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>编辑</span> <span>/etc/selinux/config </span><span>确保以下内容</span></h2><span><span style="font-family: 宋体">　　</span></span><span>SELINUX=disabled<p></p></span><span><span style="font-family: 宋体">　　关闭</span></span><span>SELIINUX<p></p></span> <h2><span><span>7.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>编辑</span><span> /etc/profile</span><span>，在最后加入：</span></h2><span>if [ $USER = &quot;oracle&quot; ]; then<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if [ $SHELL = &quot;/bin/ksh&quot; ]; then<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ulimit -p 16384<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ulimit -n 65536<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>else<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ulimit -u 16384 -n 65536<p></p></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>fi<p></p></span><span>fi<p></p></span> <h2><span><span>8.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>将</span><span>oracle</span><span>安装文件复制到</span><span> /tmp/database</span><span>目录下。</span></h2><h2><span><span>9.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>因为默认</span><span>centos5.1</span><span>不支持</span><span>10.2,0.1,</span><span>修改安装文件</span></h2><span style="font-family: 宋体"><span>　　</span><span>编辑</span></span><span> <span>/10201_database_linux32/database/install/oraparam.ini<p></p></span></span><span>### #[Certified Versions]<p></p></span><span>Linux=redhat-3,SuSE-9,redhat-4,centos-5,UnitedLinux-1.0,asianux-1,asianux-2<p></p></span><span><p></p></span><span style="font-family: 宋体"><span>　　</span><span>再添加</span><span><p></p></span></span><span><span style="font-family: 宋体">　　</span></span><span> <span>[Linux-centos-5.1-optional]<p></p></span></span><span>TEMP_SPACE=80<p></p></span><span>SWAP_SPACE=150<p></p></span><span>MIN_DISPLAY_COLORS=256<p></p></span> <h2><span><span>10.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>修改目录权限</span></h2><span><br /></span><span><span style="font-family: 宋体">　　</span></span><span>#chmod -R 777 /tmp/database<p></p></span> <h1><span>　</span><span><span style="font-family: Times New Roman">Oracle</span></span><span>安装</span></h1><h2><span><span>1.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>创建和配置用户</span></h2><span>#/usr/sbin/groupadd oinstall<p></p></span><span>#/usr/sbin/groupadd dba<p></p></span><span>#/usr/sbin/useradd -m -g oinstall -G dba oracle<p></p></span><span>#id oracle<p></p></span><span style="font-family: 宋体"><span>　　</span><span>为</span></span><span>Oracle</span><span style="font-family: 宋体"><span>用户设置密码：</span><span><p></p></span></span><span><span style="font-family: 宋体">　　</span></span><span>#passwd oracle</span><span><p></p></span> <h2><span><span>2.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>创建安装目录</span></h2><span># mkdir -p /u01/app/oracle<p></p></span><span># chown -R oracle:oinstall /u01/app/oracle<p></p></span><span># chmod -R 775 /u01/app/oracle<p></p></span> <h2><span><span>3.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>修改</span><span> Oracle </span><span>用户</span><span> .bash_profile</span></h2><span><span style="font-family: 宋体">　　</span></span><span># su - oracle<p></p></span><span>$ vi ./.bash_profile</span><span><p></p></span><span><span style="font-family: 宋体">　</span></span><span> <span>&nbsp;</span></span><span style="font-family: 宋体"><span>添加</span><span><p></p></span></span><span><span style="font-family: 宋体">　　</span></span><span> <span>export ORACLE_BASE=/u01/app/oracle<p></p></span></span><span>export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1<p></p></span><span>export ORACLE_SID=orcl<p></p></span><span>export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin<p></p></span><span>export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib<p></p></span> <h2><span><span>4.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>开始安装</span></h2><span><span style="font-family: 宋体">注销然后以</span></span><span>oracle</span><span><span style="font-family: 宋体">用户登录（如果你不重新登录而直接在终端中通过</span></span><span> <span>&ldquo;su &ndash; oracle&rdquo; </span></span><span><span style="font-family: 宋体">切换到</span></span><span>Oracle</span><span><span style="font-family: 宋体">用户安装的话，可能会出现</span></span><span>display</span><span style="font-family: 宋体"><span>设置错误的提示而无法安装）</span><span><p></p></span></span><span style="font-family: 宋体"><span>打开一个终端，执行以下命令开始安装</span><span><p></p></span></span><span><span style="font-family: 宋体">　　</span></span><span># cd /tmp /databases<p></p></span><span># export LANG=en_US<p></p></span><span># ./runInstaller<p></p></span><span><span style="font-family: 宋体">如果你的安装过程中还出现错误的话，应该是还有一些包没打上，这时你不必终止安装过程，而是打开另一个终端，以</span></span><span>root</span><span><span style="font-family: 宋体">用户身份再去查检安装最前面所说的那些包，如果这些包都装好了，再回到</span></span><span>oracle</span><span><span style="font-family: 宋体">安装程序，在出错提示框点击</span></span><span> <span>&ldquo;Retry&rdquo; </span></span><span style="font-family: 宋体"><span>即可继续安装，直到成功。</span><span><p></p></span></span><span><span style="font-family: 宋体">安装完后</span></span><span>orcl</span><span><span style="font-family: 宋体">数据库也已经启动。你可以在其它机器上配置</span></span><span>netmanager</span><span><span style="font-family: 宋体">测试一下是否能连接，如果其它机器没有装</span></span><span>oracle</span><span><span style="font-family: 宋体">客户端，也可以通过</span></span><span>telnet</span><span><span style="font-family: 宋体">命令测试一下</span></span><span>1521</span><span><span style="font-family: 宋体">端口是否可以连接</span></span><span>(</span><span><span style="font-family: 宋体">假如你安装了</span></span><span>oracle</span><span><span style="font-family: 宋体">的服务器的地址是</span></span><span>192.168.1.1)</span><span style="font-family: 宋体"><span>：</span><span><p></p></span></span><span>telnet 192.168.1.1 1521<p></p></span><span><span style="font-family: 宋体">如果进入黑屏，则基本上说明</span></span><span>1521</span><span><span style="font-family: 宋体">端口是通的，也就是说你的</span></span><span>orale</span><span style="font-family: 宋体"><span>可以正常使用了。</span><span><p></p></span></span><span><span style="font-family: 宋体">如果不能连接，很可能是防火墙的问题。在服务器菜单中打开</span></span><span> </span><span><span style="font-family: 宋体">&ldquo;系统</span></span><span>/</span><span><span style="font-family: 宋体">管理</span></span><span>/</span><span><span style="font-family: 宋体">安全级别和防火墙&rdquo;，然后添加</span></span><span>1521</span><span style="font-family: 宋体"><span>端口。</span><span><p></p></span></span><span><br /></span> <h2><span><span>5.<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>解决</span><span>dbstart</span><span>启动问题</span></h2><span><span style="font-family: 宋体">安装完后重新启动系统，以</span></span><span>root</span><span><span style="font-family: 宋体">用户登录，打开一个终端，在终端中以</span></span><span>oracle</span><span><span style="font-family: 宋体">用户运行命令启动</span></span><span>oracle</span><span style="font-family: 宋体"><span>数据库</span><span><p></p></span></span><span># su - oracle<p></p></span><span># dbstart<p></p></span><span style="font-family: 宋体"><span>　　</span><span>提示打开</span></span><span> /ade/vikrkuma_new/oracle/bin/tnslsnr </span><span style="font-family: 宋体"><span>失败</span><span><p></p></span></span><span style="font-family: 宋体"><span>　　</span><span>编辑</span></span><span> /u01/app/oracle/product/10.2.0.1/bin/dbstart<p></p></span><span style="font-family: 宋体"><span>　</span><span>　查找：</span><span><p></p></span></span><span><span style="font-family: 宋体">　</span></span><span><span>&nbsp; </span><span># Set this to bring up Oracle Net Listener<p></p></span></span><span>ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle<p></p></span><span style="font-family: 宋体"><span>　　</span><span>应该是在</span></span><span>78</span><span style="font-family: 宋体"><span>行，将其改为：</span><span><p></p></span></span><span># Set this to bring up Oracle Net Listener<p></p></span><span>ORACLE_HOME_LISTNER=$ORACLE_HOME<p></p></span> <p><span><span><span style="font-size: small; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span></p><p><span style="font-size: small"><span><span><span style="font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span>但是重新运行</span><span><span style="font-family: Times New Roman">dbstart</span></span><span>时，没有提示出错，但立刻就执行完了，用</span><span><span style="font-family: Times New Roman">lsnrctl status</span></span><span>命令查看发现数据库实例还是没有启动。在分析</span><span><span style="font-family: Times New Roman">dbstart</span></span><span>脚本后发现还要读取</span><span><span style="font-family: Times New Roman"> /etc/oratable</span></span><span>配置文件，于是打开这个文件，将最后一行的最后一个字符由</span><span style="font-family: Times New Roman"> </span><span><span style="font-family: Times New Roman">&ldquo;N&rdquo; </span></span><span>改为</span><span style="font-family: Times New Roman"> <span>&ldquo;Y&rdquo;</span></span><span>，如下：</span></span></p><span><span style="font-family: Times New Roman"><span style="font-size: small"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>orcl: </span></span></span></span><span><span style="font-size: small">/u01/app/oracle/product/10.2.0.1:Y<p></p></span></span><span><p></p></span><span style="font-size: small"><span>保存退出，然后再执行</span><span>dbstart</span><span>，启动成功。</span><span><p></p></span></span><span><p><span style="font-size: small">&nbsp;</span></p></span> <h2><span>配置自动启动</span><span>oracle</span><span>的脚本</span></h2><span style="font-size: small"><span>编辑</span><span><span style="font-family: Times New Roman">etc/rc.d/rc.local<p></p></span></span></span><span><span style="font-size: small"><span style="font-family: Times New Roman">echo &quot;Starting ORACLE 10g:&quot;<p></p></span></span></span><span style="font-size: small"><span><span style="font-family: Times New Roman">su - oracle -c &quot;/</span></span><span>/u01/app/oracle/product/10.2.0.1</span><span><span style="font-family: Times New Roman">/bin/lsnrctl start&quot;<p></p></span></span></span><span style="font-size: small"><span><span style="font-family: Times New Roman">su - oracle -c &quot;</span></span><span>/u01/app/oracle/product/10.2.0.1</span><span><span style="font-family: Times New Roman">/bin/dbstart&quot;<p></p></span></span></span><span><p><span style="font-size: small; font-family: Times New Roman">&nbsp;</span></p></span> <p><span style="font-size: small"><span>保存退出，下次重启</span><span><span style="font-family: Times New Roman">centos</span></span><span>的时候，</span><span><span style="font-family: Times New Roman">oracle</span></span><span>数据库也会自动启动。</span></span></p>&nbsp;
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?233</link>
<title><![CDATA[Cant connect to local MySQL server through socket /tmp/tmp/mysql.sock (2)]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Tue, 05 Aug 2008 02:59:58 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?233</guid> 
<description>
<![CDATA[ 
	关于一个mysql错误<br /><br /><br /><u><span style="color: #0000ff">Can't connect to local MySQL </span><strong style="color: black; background-color: #ffff66">server</strong><span style="color: #0000ff"> </span><strong style="color: black; background-color: #a0ffff">through</strong><span style="color: #0000ff"> </span><strong style="color: black; background-color: #99ff99">socket</strong><span style="color: #0000ff"> '/</span><strong style="color: black; background-color: #ff9999">tmp</strong><span style="color: #0000ff">/</span><strong style="color: black; background-color: #ff9999">tmp</strong><span style="color: #0000ff">/</span><strong style="color: black; background-color: #ff66ff">mysql.sock</strong></u><span style="color: #0000ff"><u>' (2)<br /><br /><br />如果出现这个<br /><br /><br /><br />1。启动Mysql说找不到/tmp/mysql/sock<br /><br />那么查看/tmp下是否有这个！在查看/var/lib/mysql和/var/run/mysql是否有！<br /><br />在看下/etc/my.cnf里面的路径<br /><br />如果 /var/lib/mysql可以找到<br />那么ln -s /vae/lib/mysql/mysql/sock /tmp/mysql.sock<br /><br /><br />2。如果没有<br /><br />那么mysql_install_db<br />看是否可以自动声称<br /><br /><br />如果还没有<br /><br />3。那么运行<br /></u></span><span style="color: #000000">/usr/local/mysql/share/mysql/mysql.<strong style="color: black; background-color: #ffff66">server</strong> start<br /><br />就可以有了吧<br />在启动Mysql</span>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?185</link>
<title><![CDATA[Mysql 大量 unauthenticated user ]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Tue, 15 Apr 2008 16:55:17 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?185</guid> 
<description>
<![CDATA[ 
	<div>Mysql 大量 unauthenticated user</div><div>Friday, June 03, 2005, 12:29 - Apache &amp; PHP &amp; Mysql</div>近日在資料庫方面，發現異常的連線狀況 <br />該狀況在 mysql 下指令 Show Processlist; 可以看到問題 <br />該問題如下； <br /><br />: 3436942 : unauthenticated user : 192.168.0.52:49607 : : Connect : : login : <br />: 3436943 : unauthenticated user : 192.168.0.52:49608 : : Connect : : login : <br /><br />會有非常多的 unauthenticated user 嘗試做登入使用 mysql 的情況 <br />當這情況在無限制的發生時，就會照成系統的停頓 <br /><br />在經過多方測試，以及詢問官方原廠的回應下 <br />發現這屬於官方一個系統上的特殊設定，亦可稱呼他為 mysql 的 bug <br />不管連結的的方式是經過 hosts 或是 IP 的模式，他都會對 DNS 做反查 <br />mysqld 會嘗試去反查 IP -&gt; dns ，由於反查解析過慢，無法應付快速多量的查詢 <br />反查是上層 ISP 所掌控，並不是我們可以解決及要求的 <br /><br />在知道問題的癥結點後，要解決這個問題就有相對應的方法 <br />其方法分為兩個步驟，第一是開啟 Mysqld 的時候加入特定的參數啟動 <br />第二就是修改 mysql 的連線設定等，如下所示 <br /><blockquote>啟動參數； with --skip-name-resolve =&gt;這樣就可以關閉反查動作 <br /><br />更改 my.cnf；加強以下設定 <br />[mysqld] <br />datadir=/services/mysql/ <br />socket=/tmp/mysql.sock <br />port=3306 <br />set-variable = key_buffer_size=64M <br />set-variable = max_connections=1024 <br />set-variable = interactive_timeout=30 <br />set-variable = wait_timeout=30 <br />set-variable = join_buffer_size=10M <br />set-variable = long_query_time=20 <br />set-variable = table_cache=256 <br />set-variable = sort_buffer=4M <br />set-variable = record_buffer=1M <br />set-variable = back_log=500 <br /><br />[mysqld.server] <br />user=mysql <br />basedir=/usr/local</blockquote><br />經過以上的設定及重新啟動過後，直到現在還沒有看到一個 unauthenticated user 的情況發生 <br />近日還是會持續的觀察 Mysql 的運作情況，如有問題將會持續的稟報及解決<br />
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?161</link>
<title><![CDATA[oracle在RHEL4和其他环境的安装(官方文档)]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Mon, 17 Mar 2008 09:58:14 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?161</guid> 
<description>
<![CDATA[ 
	<a href="http://www.oracle-base.com/articles/10g/Articles10g.php#DB10gInstallations">http://www.oracle-base.com/articles/10g/Articles10g.php#DB10gInstallations</a><br /><br /><br /><a href="http://www.oracle-base.com/articles/10g/Articles10g.php#DB10gInstallations">http://www.oracle-base.com/articles/10g/Articles10g.php#DB10gInstallations</a><br /><br /><br /><br /><h1>Oracle Database 10g (10.1.0.2) Installation On Red Hat Enterprise Linux 4 (RHEL4)</h1>In this article I'll describe the installation of Oracle Database 10g (10.1.0.2) on Red Hat Enterprise Linux 4 (RHEL4). The article is based on a server installation with a minimum of 2G swap, secure Linux disabled and the following package groups installed:<br /><ul><li>X Window System </li><li>GNOME Desktop Environment </li><li>Editors </li><li>Graphical Internet </li><li>Text-based Internet </li><li>Server Configuration Tools </li><li>Development Tools </li><li>Administration Tools </li><li>System Tools </li></ul>Alternative installations may require more packages to be loaded, in addition to the ones listed below.<br /><ul><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#DownloadSoftware"><span style="color: #666699">Download Software</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#UnpackFiles"><span style="color: #666699">Unpack Files</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#HostsFile"><span style="color: #666699">Hosts File</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#SetKernelParameters"><span style="color: #666699">Set Kernel Parameters</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#Setup"><span style="color: #666699">Setup</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#Installation"><span style="color: #666699">Installation</span></a> </li><li><a href="http://www.oracle-base.com/articles/10g/OracleDB10gInstallationOnRedHatAS4.php#PostInstallation"><span style="color: #666699">Post Installation</span></a> </li></ul><a id="DownloadSoftware"></a><h2>Download Software</h2>Download the following software:<br /><ul><li><a href="http://otn.oracle.com/software/products/database/oracle10g/index.html"><span style="color: #666699">Oracle Database 10g (10.1.0.2) Software</span></a> </li></ul><a id="UnpackFiles"></a><h2>Unpack Files</h2>First unzip the files:<br /><blockquote><pre>gunzip ship.db.cpio.gz</pre></blockquote>Next unpack the contents of the files:<br /><blockquote><pre>cpio -idmv &lt; ship.db.cpio</pre></blockquote>You should now have a single directory (Disk1) containing installation files.<br /><a id="HostsFile"></a><h2>Hosts File</h2>The /etc/hosts file must contain a fully qualified name for the server:<br /><blockquote><pre>&lt;IP-address&gt; &nbsp;&lt;fully-qualified-machine-name&gt; &nbsp;&lt;machine-name&gt;</pre></blockquote><a id="SetKernelParameters"></a><h2>Set Kernel Parameters</h2>Add the following lines to the /etc/sysctl.conf file:<br /><blockquote><pre>kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000</pre></blockquote>Run the following command to change the current kernel parameters:<br /><blockquote><pre>/sbin/sysctl -p</pre></blockquote>Add the following lines to the /etc/security/limits.conf file:<br /><blockquote><pre>* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; soft &nbsp; &nbsp;nproc &nbsp; 2047 * &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hard &nbsp; &nbsp;nproc &nbsp; 16384 * &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; soft &nbsp; &nbsp;nofile &nbsp;1024 * &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hard &nbsp; &nbsp;nofile &nbsp;65536</pre></blockquote>Add the following line to the /etc/pam.d/login file, if it does not already exist:<br /><blockquote><pre>session &nbsp; &nbsp;required &nbsp; &nbsp; /lib/security/pam_limits.so</pre></blockquote>Note by Kent Anderson: In the event that pam_limits.so cannot set privilidged limit settings see <a href="http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115442"><span style="color: #666699">Bug 115442</span></a>.<br /><br />Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows:<br /><blockquote><pre>SELINUX=disabled</pre></blockquote>Alternatively, this alteration can be done using the GUI tool (Applications &gt; System Settings &gt; Security Level). Click on the SELinux tab and disable the feature.<br /><a id="Setup"></a><h2>Setup</h2>Install the following packages:<br /><blockquote><pre># From RedHat AS4 Disk 2 cd /media/cdrom/RedHat/RPMS rpm -Uvh setarch-1* rpm -Uvh compat-libstdc++-33-3* &nbsp;# From RedHat AS4 Disk 3 cd /media/cdrom/RedHat/RPMS rpm -Uvh openmotif-2* rpm -Uvh compat-db-4* &nbsp;# From RedHat AS4 Disk 4 cd /media/cdrom/RedHat/RPMS rpm -Uvh compat-gcc-32-3* rpm -Uvh compat-gcc-32-c++-3*</pre></blockquote>Create the new groups and users:<br /><blockquote><pre>groupadd oinstall groupadd dba groupadd oper &nbsp;useradd -g oinstall -G dba oracle passwd oracle</pre></blockquote>Create the directories in which the Oracle software will be installed:<br /><blockquote><pre>mkdir -p /u01/app/oracle/product/10.1.0/db_1 chown -R oracle.oinstall /u01</pre></blockquote>Login as root and issue the following command:<br /><blockquote><pre>xhost +&lt;machine-name&gt;</pre></blockquote>Edit the /etc/redhat-release file replacing the current release information (Red Hat Enterprise Linux AS release 4 (Nahant)) with the following:<br /><blockquote><pre>redhat-3</pre></blockquote>Login as the oracle user and add the following lines at the end of the .bash_profile file:<br /><blockquote><pre># Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR &nbsp;ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1; export ORACLE_HOME ORACLE_SID=TSH1; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH &nbsp;LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH #LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL &nbsp;if [ $USER = &quot;oracle&quot; ]; then &nbsp; if [ $SHELL = &quot;/bin/ksh&quot; ]; then &nbsp; &nbsp; ulimit -p 16384 &nbsp; &nbsp; ulimit -n 65536 &nbsp; else &nbsp; &nbsp; ulimit -u 16384 -n 65536 &nbsp; fi fi</pre></blockquote><a id="Installation"></a><h2>Installation</h2>Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable:<br /><blockquote><pre>DISPLAY=&lt;machine-name&gt;:0.0; export DISPLAY</pre></blockquote>Start the Oracle Universal Installer (OUI) by issuing the following command in the Disk1 directory:<br /><blockquote><pre>./runInstaller</pre></blockquote>During the installation enter the appropriate ORACLE_HOME and name then continue with a &quot;software only&quot; installation.<br /><a id="PostInstallation"></a><h2>Post Installation</h2>Create a new instance using the DBCA. If you get the &quot;ORA-27125: unable to create shared memory segment&quot; error when using the DBCA issue the following commands as the oracle user then try again:<br /><blockquote><pre>cd $ORACLE_HOME/bin &nbsp;mv oracle oracle.bin &nbsp;cat &gt;oracle &lt;&lt;&quot;EOF&quot; #!/bin/bash &nbsp; export DISABLE_HUGETLBFS=1 exec $ORACLE_HOME/bin/oracle.bin $@ EOF &nbsp; chmod +x oracle</pre></blockquote>I didn't encounter the previous issue myself, so hopefully you won't either.<br /><br />Edit the /etc/redhat-release file restoring the original release information:<br /><blockquote><pre>Red Hat Enterprise Linux AS release 4 (Nahant)</pre></blockquote>Finally edit the /etc/oratab file setting the restart flag for each instance to 'Y':<br /><blockquote><pre>TSH1:/u01/app/oracle/product/10.1.0/db_1:Y</pre></blockquote>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?143</link>
<title><![CDATA[MySQL数据导入导出方法与工具介绍]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Mon, 03 Mar 2008 08:41:00 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?143</guid> 
<description>
<![CDATA[ 
	<p><strong>翻译声明</strong>：本文内容来自Sams Teach Yourself MySQL in 21 Days一书的部分内容，by Mark Maslakowski </p><p></p><p>英文原文版权属原作者所有，中文的部分翻译有略有增删;原书讲的过于清楚的地方有删，讲的不清楚的地方有增；如果有翻译的不妥或者不正确的地方，请指正。</p><p>翻译者：David Euler,SCU. <a href="mailto:de_euler-david@www.yahoo.com.cn">de_euler-david@www.yahoo.com.cn</a> 时间：2004/04/24于川大</p><p><strong>1）.mysqlimport的语法介绍</strong></p><p>mysqlimport位于mysql/bin目录中，是mysql的一个载入（或者说导入）数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可供选择。这个工具把一个文本文件（text file）导入到你指定的数据库和表中。比方说我们要从文件Customers.txt中把数据导入到数据库Meet_A_Geek中的表Custermers中：</p><p>mysqlimport Meet_A_Geek Customers.txt</p><p>注意：这里Customers.txt是我们要导入数据的文本文件，而Meet_A_Geek是我们要操作的数据库，数据库中的表名是Customers，这里文本文件的数据格式必须与Customers表中的记录格式一致，否则mysqlimport命令将会出错。</p><p>其中表的名字是导入文件的第一个句号（.）前面文件字符串，另外一个例子：</p><p>mysqlimport Meet_A_Geek Cus.to.mers.txt</p><p>那么我们将把文件中的内容导入到数据库Meet_A_Geek 中的Cus表中。上面的例子中，都只用到两个参数，并没有用到更多的选项，下面介绍mysqlimport的选项</p><p><br /><strong>2）.mysqlimport的常用选项介绍:</strong></p><p>选项 功能</p><p>-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息</p><p>-f or --force 不管是否遇到错误，mysqlimport将强制继续插入数据</p><p>-i or --ignore mysqlimport跳过或者忽略那些有相同唯一</p><p>关键字的行， 导入文件中的数据将被忽略。</p><p>-l or -lock-tables 数据被插入之前锁住表，这样就防止了，</p><p>你在更新数据库时，用户的查询和更新受到影响。</p><p>-r or -replace 这个选项与－i选项的作用相反；此选项将替代</p><p>表中有相同唯一关键字的记录。</p><p>--fields-enclosed- by= char</p><p>指定文本文件中数据的记录时以什么括起的， 很多情况下</p><p>数据以双引号括起。 默认的情况下数据是没有被字符括起的。</p><p>--fields-terminated- by=char</p><p>指定各个数据的值之间的分隔符，在句号分隔的文件中，</p><p>分隔符是句号。您可以用此选项指定数据之间的分隔符。</p><p>默认的分隔符是跳格符（Tab）</p><p>--lines-terminated- by=str</p><p>此选项指定文本文件中行与行之间数据的分隔字符串</p><p>或者字符。 默认的情况下mysqlimport以newline为行分隔符。</p><p>您可以选择用一个字符串来替代一个单个的字符：</p><p>一个新行或者一个回车。</p><p>mysqlimport命令常用的选项还有-v 显示版本（version）， -p 提示输入密码（password）等。</p><p><strong>3）.例子：导入一个以逗号为分隔符的文件</strong></p><p>文件中行的记录格式是这样的：</p><p>&quot;1&quot;, &quot;ORD89876&quot;, &quot;1 Dozen Roses&quot;, &quot;19991226&quot;</p><p>我们的任务是要把这个文件里面的数据导入到数据库Meet_A_Geek中的表格Orders中，</p><p>我们使用这个命令:</p><p>bin/mysqlimport &ndash;prl &ndash;fields-enclosed-by=&quot; &ndash;fields-terminated-by=, Meet_A_Geek Orders.txt</p><p>这个命令可能看起来很不爽，不过当你熟悉了之后，这是非常简单的。第一部分，bin/mysqlimport ,告诉操作系统你要运行的命令是mysql/bin目录下的mysqlimport，选项p是要求输入密码，这样就要求你在改动数据库之前输入密码，操作起来会更安全。 我们用了r选项是因为我们想要把表中的唯一关键字与文件记录中有重复唯一关键字的记录替换成文件中的数据。我们表单中的数据不是最新的，需要用文件中的数据去更新，因而就用r这个选项，替代数据库中已经有的记录。l选项的作用是在我们插入数据的时候锁住表，这样就阻止了用户在我们更新表的时候对表进行查询或者更改的操作。</p><p>批处理是一种非交互式运行mysql程序的方法，如同您在mysql中使用的命令一样，你仍然将使用这些命令。</p><p>为了实现批处理，您重定向一个文件到mysql程序中，首先我们需要一个文本文件，这个文本文件包含有与我们在mysql中输入的命令相同的文本。</p><p>比如我们要插入一些数据，使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法名字，并不一定要以后缀sql结尾</p><p>USE Meet_A_Geek;</p><p>INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, &quot;Block&quot;);</p><p>INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, &quot;Newton&quot;);</p><p>INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, &quot;Simmons&quot;);</p><p>注意上面的这些句子的语法都必须是正确的，并且每个句子以分号结束。上面的USE命令选择数据库，INSERT命令插入数据。</p><p>下面我们要把上面的文件导入到数据库中，导入之前要确认数据库已经在运行，即是mysqld进程（或者说服务，Windows NT下面称为&rdquo;服务&ldquo;，unix下面为&rdquo;进程&ldquo;）已经在运行。</p><p>然后运行下面的命令：</p><p>bin/mysql &ndash;p &lt; /home/mark/New_Data.sql</p><p>接着按提示输入密码，如果上面的文件中的语句没有错误，那么这些数据就被导入到了数据库中。</p><p>命令行中使用LOAD DATA INFILE 从文件中导入数据到数据库：</p><p>现在您可能会问自己，&quot;究竟为什么我要输入所有的这些SQL语句到文件中，然后通过程序运行它们呢？&rdquo;</p><p>这样看起来好像需要大量的工作。很好，你这样想很可能就对了。但是假如你有从所有这些命令中产生的log记录呢？现在这样就很棒，嗯，大多数数据库都会自动产生数据库中的事件记录的log。而大部分log都包含有用过的原始的SQL命令。因此，如果您不能从您现在的数据库中导出数据到新的mysql数据库中使用，那么您可以使用log和mysql的批处理特性，来快速且方便地导入您地数据。当然，这样就省去了打字的麻烦。</p><p>LOAD DATA INFILE </p><p>这是我们要介绍的最后一个导入数据到MySQL数据库中的方法。这个命令与mysqlimport非常相似，但这个方法可以在mysql命令行中使用。也就是说您可以在所有使用API的程序中使用这个命令。使用这种方法，您就可以在应用程序中导入您想要导入的数据。</p><p>使用这个命令之前，mysqld进程（服务）必须已经在运行。</p><p>启动mysql命令行：</p><p>bin/mysql &ndash;p</p><p>按提示输入密码，成功进入mysql命令行之后，输入下面的命令：</p><p>USE Meet_A_Geek;</p><p>LOAD DATA INFILE &quot;/home/mark/data.sql&quot; INTO TABLE Orders;</p><p>简单的讲，这样将会把文件data.sql中的内容导入到表Orders中，如mysqlimport工具一样，这个命令也有一些可以选择的参数。比如您需要把自己的电脑上的数据导入到远程的数据库服务器中，您可以使用下面的命令：</p><p>LOAD DATA LOCAL INFILE &quot;C:&#92;MyDocs&#92;SQL.txt&quot; INTO TABLE Orders;</p><p>上面的LOCAL参数表示文件是本地的文件，服务器是您所登陆的服务器。这样就省去了使用ftp来上传文件到服务器，MySQL替你完成了。您也可以设置插入语句的优先级，如果您要把它标记为低优先级（LOW_PRIORITY），那么MySQL将会等到没有其他人读这个表的时候，才把插入数据。可以使用如下的命令：</p><p>LOAD DATA LOW_PRIORITY INFILE &quot;/home/mark/data.sql&quot; INTO TABLE Orders;</p><p>您也可以指定是否在插入数据的时候，取代或者忽略文件与数据表中重复的键值。替代重复的键值的语法：</p><p>LOAD DATA LOW_PRIORITY INFILE &quot;/home/mark/data.sql&quot; REPLACE INTO TABLE Orders;</p><p>上面的句子看起来有点笨拙，但却把关键字放在了让您的剖析器可以理解的地方。</p><p>下面的一对选项描述了文件的记录格式，这些选项也是在mysqlimport工具中可以用的。他们在这里看起来有点不同。首先，要用到FIELDS关键字，如果用到这个关键字，MySQL剖析器希望看到至少有下面的一个选项：</p><p>TERMINATED BY character</p><p>ENCLOSED BY character</p><p>ESCAPED BY character</p><p>这些关键字与它们的参数跟mysqlimport中的用法是一样的. The</p><p>TERMINATED BY 描述字段的分隔符，默认情况下是tab字符（&#92;t）</p><p>ENCLOSED BY描述的是字段的括起字符。比方以引号括起每一个字段。</p><p>ESCAPED BY 描述的转义字符。默认的是反些杠（backslash：&#92; ）.</p><p>下面仍然使用前面的mysqlimport命令的例子，用LOAD DATA INFILE语句把同样的文件导入到数据库中:</p><p>LOAD DATA INFILE &quot;/home/mark/Orders.txt&quot; REPLACE INTO TABLE Orders FIELDS TERMINATED BY , ENCLOSED BY &quot;;</p><p>LOAD DATA INFILE语句中有一个mysqlimport工具中没有特点：LOAD DATA INFILE 可以按指定的列把文件导入到数据库中。</p><p>当我们要把数据的一部分内容导入的时候，这个特点就很重要。比方说，我们要从Access数据库升级到MySQL数据库的时候，需要加入一些栏目（列/字段/field）到MySQL数据库中，以适应一些额外的需要。</p><p>这个时候，我们的Access数据库中的数据仍然是可用的，但是因为这些数据的栏目(field)与MySQL中的不再匹配，因此而无法再使用mysqlimport工具。尽管如此，我们仍然可以使用LOAD DATA INFILE，下面的例子显示了如何向指定的栏目(field)中导入数据：</p><p>LOAD DATA INFILE &quot;/home/Order.txt&quot; INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);</p><p>如您所见，我们可以指定需要的栏目（fields）。这些指定的字段依然是以括号括起，由逗号分隔的，如果您遗漏了其中任何一个，MySQL将会提醒您。</p><p>Importing Data from Microsoft Access （从Access中导入数据，略）</p><p>您可以看到MySQL有很多可以导入数据的方法，然而这些只是数据传输中的一半。另外的一般是从MySQL数据库中导出数据。有许多的原因我们需要导出数据。一个重要的原因是用于备份数据库。数据的造价常常是昂贵的，需要谨慎处理它们。经常地备份可以帮助防止宝贵数据地丢失；另外一个原因是，也许您希望导出数据来共享。 在这个信息技术不断成长的世界中，共享数据变得越来越常见。</p><p>比方说Macmillan USA维护护着一个将要出版的书籍的大型数据库。这个数据库在许多书店之间共享，这样他们就知道哪些书将会很快出版。医院越来越走向采用无纸病历记录，这样这些病历可以随时跟着你。世界变得越来越小，信息也被共享得越来越多。有很多中导出数据得方法，它们都跟导入数据很相似。因为，毕竟，这些都只是一种透视得方式。从数据库导出的数据就是从另一端导入的数据。这里我们并不讨论其他的数据库各种各样的导出数据的方法，您将学会如何用MySQL来实现数据导出。</p><p>使用mysqldump：(mysqldump命令位于mysql/bin/目录中)</p><p>mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式（Schema，后面有解释）并且将其转换成DDL语法（CREATE语句，即数据库定义语句），取得所有的数据，并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。</p><p>因此，如果您像装载整个数据库Meet_A_Geek的内容到一个文件中，可以使用下面的命令：</p><p>bin/mysqldump &ndash;p Meet_A_Geek &gt; MeetAGeek_Dump_File.txt</p><p>这个语句也允许您指定一个表进行dump(备份/导出/装载?)。如果您只是希望把数据库Meet_A_Geek中的表Orders中的整个内容导出到一个文件，可以使用下面的命令：</p><p>bin/mysqldump &ndash;p Meet_A_Geek Orders &gt;MeetAGeek_Orders.txt</p><p>这个非常的灵活，您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的，可以使用类似于下面的命令：</p><p>bin/mysqldump &ndash;p &ndash;where=&quot;Order_ID &gt; 2000&quot; Meet_A_Geek Orders &gt; Special_Dump.txt</p><p>mysqldump工具有大量的选项，部分选项如下表：</p><p>选项/Option 作用/Action Performed</p><p>--add-drop-table </p><p>这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句，这样可以保证导回MySQL数据库的时候不会出错，因为每次导回的时候，都会首先检查表是否存在，存在就删除</p><p>--add-locks </p><p>这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作</p><p>-c or - complete_insert</p><p>这个选项使得mysqldump命令给每一个产生INSERT语句加上（field)的名字。当把数据导出导另外一个数据库时这个选项很有用。 </p><p>--delayed-insert 在INSERT命令中加入DELAY选项</p><p>-For -flush-logs 使用这个选项，在执行导出之前将会刷新MySQL服务器的log.</p><p>-for -force 使用这个选项，即使有错误发生，仍然继续导出</p><p>--full 这个选项把附加信息也加到CREATE TABLE的语句中</p><p>-l or -lock-tables 使用这个选项，导出表的时候服务器将会给表加锁。</p><p>-t or -no-create- info </p><p>这个选项使的mysqldump命令不创建CREATE TABLE语句，这个选项在您只需要数据而不需要DDL（数据库定义语句）时很方便。</p><p>-d or -no-data 这个选项使的mysqldump命令不创建INSERT语句。</p><p>在您只需要DDL语句时，可以使用这个选项。</p><p>--opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。</p><p>-q or -quick 这个选项使得MySQL不会把整个导出的内容读入内存再执行导出，而是在读到的时候就写入导文件中。</p><p>-T path or -tab = path 这个选项将会创建两个文件，一个文件包含DDL语句或者表创建语句，另一个文件包含数据。DDL文件被命名为table_name.sql,数据文件被命名为table_name.txt.路径名是存放这两个文件的目录。目录必须已经存在，并且命令的使用者有对文件的特权。</p><p>-w &quot;WHERE Clause&quot; or -where = &quot;Where clause &quot;</p><p>如前面所讲的，您可以使用这一选项来过筛选将要放到导出文件的数据。</p><p>假定您需要为一个表单中要用到的帐号建立一个文件，经理要看今年（2004年）所有的订单（Orders），它们并不对DDL感兴趣，并且需要文件有逗号分隔，因为这样就很容易导入到Excel中。 为了完成这个人物，您可以使用下面的句子：bin/mysqldump &ndash;p &ndash;where &quot;Order_Date &gt;=2000-01-01&quot;</p><p>&ndash;tab = /home/mark &ndash;no-create-info &ndash;fields-terminated-by=, Meet_A_Geek Orders</p><p>这将会得到您想要的结果。</p><p>schema：模式</p><p>The set of statements, expressed in data definition language, that completely describe the structure of a data base.</p><p>一组以数据定义语言来表达的语句集,该语句集完整地描述了数据库的结构。</p><p>SELECT INTO OUTFILE ：</p><p>如果您觉得mysqldump工具不够酷，就使用SELECT INTO OUTFILE吧, MySQL同样提供一个跟LOAD DATA INFILE命令有相反作用的命令，这就是SELECT INTO OUTFILE 命令，这两个命令有很多的相似之处。首先，它们有所有的选项几乎相同。现在您需要完成前面用mysqldump完成的功能，可以依照下面的步骤进行操作：</p><p>1. 确保mysqld进程（服务）已经在运行</p><p>2. cd /usr/local/mysql</p><p>3. bin/mysqladmin ping ；// 如果这个句子通不过，可以用这个：mysqladmin -u root -p ping mysqladmin ping用于检测mysqld的状态，is alive说明正在运行，出错则可能需要用户名和密码。</p><p>4. 启动MySQL 监听程序.</p><p>5. bin/mysql &ndash;p Meet_A_Geek；// 进入mysql命令行，并且打开数据库Meet_A_Geek,需要输入密码</p><p>6. 在命令行中，输入一下命令:</p><p>SELECT * INTO OUTFILE /home/mark/Orders.txt</p><p>FIELDS</p><p>TERMINATED BY = ,</p><p>FROM Orders</p><p>WHERE Order_Date &gt;= 2000-01-01</p><p>在你按了Return（回车）之后，文件就创建了。这个句子就像一个规则的SELECT语句，只是把想屏幕的输出重定向到了文件中。这意味这您可以使用JOIN来实现多表的高级查询。这个特点也可以被用作一个报表产生器。</p><p>比方说，您可以组合这一章中讨论的方法来产生一个非常有趣的查询，试试这个：</p><p>在mysql目录建立一个名为Report_G.rpt 的文本文件，加入下面的行：</p><p>USE Meet_A_Geek;</p><p>INSERT INTO Customers (Customer_ID, Last_Name, First_Name)</p><p>VALUES (NULL, &quot;Kinnard&quot;, &quot;Vicky&quot;);</p><p>INSERT INTO Customers (Customer_ID, Last_Name, First_Name)</p><p>VALUES (NULL, &quot;Kinnard&quot;, &quot;Steven&quot;);</p><p>INSERT INTO Customers (Customer_ID, Last_Name, First_Name)</p><p>VALUES (NULL, &quot;Brown&quot;, &quot;Sam&quot;);</p><p>SELECT Last_Name INTO OUTFILE /home/mark/Report.rpt</p><p>FROM Customers WHERE Customer_ID &gt; 1;</p><p>然后确认 mysql进程在运行，并且您在mysql目录中， 输入下面的命令：bin/mysql &lt; Report_G.rpt检查您命名作为输出的文件，这个文件将会包含所有您在Customers表中输入的顾客的姓。 如您所见，您可以使用今天学到的导入/导出（import/export）的方法来帮助得到报表。</p>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?46</link>
<title><![CDATA[SQL2000中的分发服务器+订阅服务器的异地设置....]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Mon, 10 Dec 2007 10:09:19 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?46</guid> 
<description>
<![CDATA[ 
	<p>一台韩国的服务器&nbsp;&nbsp; 218.51.255.49&nbsp;&nbsp; 主机名aiyonet-hosting<br /><br />一台上海的服务器&nbsp; 210.51.33.23&nbsp;&nbsp; 主机名aiyonet-bak<br /><br />上海的mssql需要复制韩国的mssql。。。。。。。。。<br /><br />sql2000的数据需要进行及时同步<br /><br /><br />下面来分部设置！~~原来自己试验比较简单，没想到今天弄了一下午！郁闷！不过最后还是终于好了<br /><br />我们把韩国的server设置为发布，分发服务器，上海的设置为订阅服务器。<br />首先得准备工作：<br /><br />1。察看两台server主机名是不是和sql2000中的一样<br /><br />cmd--hostname<br /><br />查询分析器---select @@servername<br /><br />不一样的话修改回来。<br /><br />2。分别设置他们的验证模式都为混合认证，分别设置sa密码123456<br /><br />3。在每台服务器都设置一个账户aiyo，隶属于administrator组，密码都为123456（我这都是测试用的）<br /><br />4。在两台服务器中----服务----sqlserveragent---右键---登陆--次账户---aiyo输入密码--重新启动sql agent<br /><br />5。在两台服务器上的--程序---sql2000---客户端网络实用工具----别名---添加对方服务器的主机名---参数选择填写ip地址---确定<br /><br />6。互相把对方sql事例注册过来---这里一定要是主机名---不然后面会有错。<br /><br />7。在分发服务器218.51.255.49&nbsp;&nbsp;&nbsp;上面共享一个文件夹abc，为了装快照用，并且给他的权限。<br /><br />下面开始设置了<br /><br />&nbsp;&nbsp;&nbsp; a.在发布服务器--工具---向导---配置发布服务器----过程省略---快照文件夹选择<a href="file://aiyonet-hosting/abc">&#92;&#92;aiyonet-hosting&#92;abc</a>&nbsp; ----完成<br /><br />&nbsp;&nbsp; b.然后复制--发布内容--新建发布---选择你要发布的数据库--然后选择允许匿名订阅<br />&nbsp;&nbsp; c.然后再订约服务器上--订阅---新建请求订阅---选择订阅内容--快照位置选择&#92;&#92; 218.51.255.49&#92;abc---轮询（时间自己设置）---完成<br /><br />&nbsp; d.在发布服务器上--发布内容--右键--启用代理程序<br /><br />然后再分发服务器可以看到订阅服务器订阅的内容。<br /><br />写的很大概~~下班了~~~~比较着急~~~~~~~~~~~~~~~~~&nbsp;<br /><br /></p>
]]>
</description>
</item><item>
<link>http://www.6xuan.com/read.php?45</link>
<title><![CDATA[如何修改SQL Server 2000身份验证模式和系统管理员Sa的登录密码]]></title> 
<author>tinkoko &lt;admin@yourname.com&gt;</author>
<category><![CDATA[数据库相关经验]]></category>
<pubDate>Mon, 10 Dec 2007 01:52:35 +0000</pubDate> 
<guid>http://www.6xuan.com/read.php?45</guid> 
<description>
<![CDATA[ 
	<span class="tpc_title">如何修改<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>身份验证模式和系统管理员<strong style="color: black; background-color: #ff9999">Sa</strong>的登录<strong style="color: black; background-color: #ff66ff">密码</strong></span><br /><!----><br /><span class="tpc_content"><strong>１、如何修改<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>身份验证模式？</strong><br />　　分析：由于千方百剂软件，在数据库安全方面采用了最安全的方式&ldquo;混合模式&rdquo;，它主要应用于网络主要是Novell网络或者对等网，使用SPX/IP协议和<strong style="color: black; background-color: #ffff66">SQL</strong> Server验证模式。<br /><br />　　优点如下：<br />　　创建了Windows NT/<strong style="color: black; background-color: #a0ffff">2000</strong>之上的另外一个安全层次。<br />　　支持更大范围的用户，例如非Windows NT客户、Novell网络等。<br />　　一个应用程序可以使用单个的<strong style="color: black; background-color: #ffff66">SQL</strong> Server登录和口令。<br /><br />　　下面以操作系统Windows <strong style="color: black; background-color: #a0ffff">2000</strong>上的<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>为例，对误将身份验证模式选择为&ldquo;windows身份验证模式&rdquo;的数据库进行修改，操作步骤为：<br />　　1． 打开企业管理器，依次展开服务器组，用右键单击软件使用的服务器。<br />　　2． 在弹出的快捷菜单，执行&ldquo;属性&rdquo;命令，出现&ldquo;<strong style="color: black; background-color: #ffff66">SQL</strong> Server属性&rdquo;对话框。如图3所示。单击&ldquo;安全性&rdquo;标签，在&ldquo;安全性&rdquo;选项框中，将&ldquo;仅Windows&rdquo;改为&ldquo;<strong style="color: black; background-color: #ffff66">SQL</strong> Server和Windows&rdquo;身份验证。<br />　　3． 设置完成后，单击&ldquo;确定&rdquo;按钮，系统提示重新启动服务器。<br />　　4． 单击&ldquo;是&rdquo;按钮，完成对身份验证模式的修改。<br />　　说明：在 Windows XP操作系统与Windows <strong style="color: black; background-color: #a0ffff">2000</strong>操作系统下修改<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>身份验证模式相同，但在Windows 98操作系统下，却不能通过以上方法对身份验证模式进行修改。因为在Windows 98操作系统下，安装<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>时，系统只支持&ldquo;混合模式&rdquo;身份验证模式。<br /><br /><strong>２、如何修改<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>系统管理员<strong style="color: black; background-color: #ff9999">Sa</strong>的登录<strong style="color: black; background-color: #ff66ff">密码</strong>？</strong><br /><br />　　分析：<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>系统管理员<strong style="color: black; background-color: #ff9999">Sa</strong>的登录<strong style="color: black; background-color: #ff66ff">密码</strong>，一般在安装<strong style="color: black; background-color: #ffff66">SQL</strong> Server <strong style="color: black; background-color: #a0ffff">2000</strong>时就已经设置。在数据库管理系统中，用检查口令等手段来检查用户身份，合法的用户才能进入数据库系统。千方百剂系列需要通过验证<strong style="color: black; background-color: #ff9999">Sa</strong>登录<strong style="color: black; background-color: #ff66ff">密码</strong>才能创建、删除账套，这样<strong style="color: black; background-color: #ff9999">Sa</strong>的登录<strong style="color: black; background-color: #ff66ff">密码</strong>在此就显得尤为重要。<br /><br />　　操作步骤如下：<br />　　1． 打开企业管理器，依次展开服务器组，然后展开服务器。<br />　　2． 打开&ldquo;安全性&rdquo;文件夹，单击&ldquo;登录&rdquo;，然后用右键单击&ldquo;<strong style="color: black; background-color: #ff9999">Sa</strong>&rdquo;，执行&ldquo;属性&rdquo;命令。<br />　　3． 弹出&ldquo;<strong style="color: black; background-color: #ffff66">SQL</strong> Server登录属性&rdquo;对话框，如图4所示。在&ldquo;<strong style="color: black; background-color: #ffff66">SQL</strong> Server身份验证&rdquo;<strong style="color: black; background-color: #ff66ff">密码</strong>栏，输入最新<strong style="color: black; background-color: #ff66ff">密码</strong>。<br />　　4． 单击&ldquo;确定&rdquo;按钮，弹出&ldquo;确认<strong style="color: black; background-color: #ff66ff">密码</strong>&rdquo;对话框，再输一遍登录<strong style="color: black; background-color: #ff66ff">密码</strong>。<br />　　5． 单击&ldquo;确定&rdquo;按钮，完成对<strong style="color: black; background-color: #ff9999">Sa</strong>登录<strong style="color: black; background-color: #ff66ff">密码</strong>的修改。</span>
]]>
</description>
</item>
</channel>
</rss>