将mysql中某个字段的值导出到本地文件的方法。
1. mysqldump
在命令行中mysqldump database_name -uroot -p [table_name] > file_name
-d只导出数据结构,不导出数据
-t只导出数据不导出数据结构
2. SELECT 字段 FROM 表名 INTO OUTFILE 文件名
进入MySQL,然后 SELECT ...... INTO OUTFILE 'file_name';
mysql> SELECT name from 2009tianjin INTO OUTFILE './lll.sql';ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statementmysql> SELECT @@global.secure_file_priv;
+---------------------------+| @@global.secure_file_priv |+---------------------------+| /var/lib/mysql-files/ |+---------------------------+1 row in set (0.00 sec)mysql> SELECT name from 2009tianjin INTO OUTFILE '/var/lib/mysql-files/lll.sql' ;Query OK, 89 rows affected (0.06 sec)
然后在/var/lib/mysql-files目录下的lll.sql就是你导出来的数据,在Ubuntu下,你还cd不到这个目录,错误是这样的:
zz@haha:~$ cd /var/lib/mysql-files/bash: cd: /var/lib/mysql-files/: 权限不够zz@haha:~$ sudo cd /var/lib/mysql-filessudo: cd:找不到命令
3. cd命令的使用和创建root账号
cd是shell自带的程序,而不是系统可执行程序命令,对于这种情况,可以使用sudo打开一个shell使用cd命令,或者使用su切换到root用户后再在shell中使用cd命令。
sudo 是一种程序,用于提升用户的权限,在Linux中输入sudo就是调用这个程序提升权限;shell是一个命令解析器,sudo cd是错误的,因为cd是shell内置的,不是系统里面的,sudo可以运行系统带的命令,但无法用系统中一个软件中的命令。
这是bug!!!!
所以你可以这么干,申请一个root账号:
z@haha:~$ sudo passwd root 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码 zz@haha:~$ su root 密码: root@haha:/home/zz# cd /var/lib/mysql-files root@haha:/var/lib/mysql-files# ls lll.sql root@haha:/var/lib/mysql-files# mv ./lll.sql /home/zz