<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/3423/</link>
<title><![CDATA[[实践OK]SELECT * INTO OUTFILE无法导出的步骤方法，以及如何实现将导出的文件是在客户端，而不是服务器呢？]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 23 Aug 2010 10:47:33 +0000</pubDate> 
<guid>http://jackxiang.com/post/3423/</guid> 
<description>
<![CDATA[ 
	如果是本地可以这样，新版本的会提示有安全问题，不让into outfile:<br/>mysql -e&nbsp;&nbsp;&quot;select linkurl from jackxiang_mysql.boblog_links&quot; &gt; /tmp/linkurl.txt<br/><br/>mysql&gt; select linkid,linkurl from boblog_links limit 12 into outfile &quot;/tmp/bo-blog-url.txt&quot;;<br/>ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement<br/><br/><br/>show variables like &#039;%secure%&#039;;<br/>+--------------------------+-------+<br/>&#124; Variable_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Value &#124;<br/>+--------------------------+-------+<br/>&#124; require_secure_transport &#124; OFF&nbsp;&nbsp; &#124;<br/>&#124; secure_auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; ON&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; secure_file_priv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; NULL&nbsp;&nbsp;&#124;<br/>+--------------------------+-------+<br/><br/>mysql&gt; set global secure_file_priv=&quot;/tmp&quot;;<br/>ERROR 1238 (HY000): Variable &#039;secure_file_priv&#039; is a read only variable<br/><br/>修改/etc/my.cnf里的变量：<br/>[mysqld]<br/>secure_file_priv = /data/backup/mysql<br/><br/>注意权限：<br/>mkdir -p /data/backup/mysql <br/>mysql&gt; select linkid,linkurl from boblog_links limit 12 into outfile &quot;/data/backup/mysql/bo-blog-url.txt&quot;;<br/>ERROR 1 (HY000): Can&#039;t create/write to file &#039;/data/backup/mysql/bo-blog-url.txt&#039; (Errcode: 13 - Permission denied)<br/>chown -R mysql:mysql /data/backup/mysql <br/><br/>重启Mysql：service mysqld restart<br/><br/>mysql&gt; show variables like &#039;%secure%&#039;;<br/>+--------------------------+---------------------+<br/>&#124; Variable_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+--------------------------+---------------------+<br/>&#124; require_secure_transport &#124; OFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124; secure_auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; ON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; secure_file_priv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124; /data/backup/mysql/ &#124;<br/>+--------------------------+---------------------+<br/>3 rows in set (0.00 sec)<br/>#到对应的数据库里面执行导出命令：<br/>mysql&gt; select linkid,linkurl from boblog_links limit 12 into outfile &quot;/data/backup/mysql/bo-blog-url.txt&quot;;<br/>Query OK, 12 rows affected (0.00 sec)<br/><br/><br/>今天有个网友问，在用mysqldump备份时候遇到1290的错误 <br/>下面是是我模拟他的报错信息 <br/>[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala <br/>Warning: Using a password on the command line interface can be insecure. <br/>mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing &#039;SELECT INTO OUTFILE&#039;<br/><br/>可以很清楚地从提示看到是因为mysql服务启用了–secure-file-priv，所以才无法执行。 <br/>那么–secure-file-priv又是什么东东，应该如何解决才能是它可以备份呢？ <br/>--secure-file-priv=name ： <br/>Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files within specified directory<br/><br/>可以看到secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。<br/><br/>当secure_file_priv的值为null ，表示限制mysqld 不允许导入&#124;导出<br/><br/>当secure_file_priv的值为/tmp/ ，表示限制mysqld 的导入&#124;导出只能发生在/tmp/目录下<br/><br/>当secure_file_priv的值没有具体值时，表示不对mysqld 的导入&#124;导出做限制<br/><br/>查看数据库当前该参数的值 <br/>root@localhost:mysql.sock 00:14:52 [(none)]&gt;show global variables like &#039;%secure%&#039;; <br/>+------------------+-------+ <br/>&#124; Variable_name &#124; Value &#124; <br/>+------------------+-------+ <br/>&#124; secure_auth &#124; ON &#124; <br/>&#124; secure_file_priv &#124; NULL &#124; <br/>+------------------+-------+ <br/>2 rows in set (0.00 sec)<br/><br/>清楚地看到secure_file_priv 的值是NULL，说明此时限制导入导出的 <br/>所以应该改变该参数 <br/>可是查看了mysql.cnf中居然没有对这个参数进行设定，就说明这个参数默认便是null <br/>所以再mysql.cnf中的[mysqld]加入secure_file_priv = <br/>再重启mysql服务 <br/>然后再查一下此时参数的值<br/><br/>root@localhost:mysql.sock 00:28:30 [(none)]&gt;show global variables like &#039;%secure%&#039;; <br/>+------------------+-------+ <br/>&#124; Variable_name &#124; Value &#124; <br/>+------------------+-------+ <br/>&#124; secure_auth &#124; ON &#124; <br/>&#124; secure_file_priv &#124; &#124; <br/>+------------------+-------+ <br/>2 rows in set (0.00 sec)<br/><br/>已经是我们要的结果 <br/>开始进行导出 <br/>[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala <br/>Warning: Using a password on the command line interface can be insecure. <br/>可以看到成功了<br/><br/>From:https://blog.csdn.net/qq_28921653/article/details/54174341<br/><br/><br/><br/>保存到本地，你可以这样干：<br/>mysql -e -h remote host.<br/><br/><br/>=====================<br/>show processlist 如何过滤的问题我终于知道如何解决了,From:https://mengkang.net/414.html<br/>想show processlist里面有没有过滤的功能,但是找了好久没找到.<br/><br/>之后又想到导出到文件<br/><br/>show processlist into outfile &#039;/tmp/sql.txt&#039;;<br/>ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;into outfile &#039;/tmp/sql.txt&#039;&#039; at line 1<br/>发现show processlist并不能支持into outfile.<br/><br/>今天看书看到了,原来是这样用的,使用 mysql 的-e参数.<br/><br/>执行一段MYSQL的命令然后退出。(就是不用进客户端 在shell命令行内直接执行sql)<br/>--execute=statement, -e statement<br/>Execute the statement and quit. <br/>(我设置了本地登录免密码了)<br/>mysql -uroot -e &#039;show processlist&#92;G&#039;;<br/>不是在 mysql 里面操作,而是在 shell 命令里面直接操作.比如查看正在执行的语句有哪些(不过有的语句显示的不完整),并做好归并排序:<br/><br/>mysql -uroot -e &#039;show processlist&#92;G&#039;&#124;grep &#039;Info&#039;&#124;grep -v &quot;NULL&quot;&#124;awk -F &quot;:&quot; &#039;&#123;print $2&#125;&#039;&#124;sort&#124;uniq -c&#124;sort -rn;
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3423/#blogcomment51636</link>
<title><![CDATA[[评论] [实践OK]SELECT * INTO OUTFILE无法导出的步骤方法，以及如何实现将导出的文件是在客户端，而不是服务器呢？]]></title> 
<author>gaston &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Mon, 23 Aug 2010 15:09:11 +0000</pubDate> 
<guid>http://jackxiang.com/post/3423/#blogcomment51636</guid> 
<description>
<![CDATA[ 
	赞
]]>
</description>
</item>
</channel>
</rss>