win7 mysql dump数据的各种问题

核心问题:应该安装mysql5.5版本,不要安装5.7版本。
http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.5/ 下载msi文件安装方便些。

昨天一个批量插入的问题就是要用5.5的lib、dll才能解决。

结果今天遇到dump部分表数据到文件时没有权限,需要修改
secure_file_priv参数,5.7下怎么改都是没用的。换成5.5就可以修改成功。

所有的坑,只是因为安装了5.7版本的mysql。

my.ini中[mysqld]下加secure_file_priv = ‘’ 可以设置无限制导出。
重启mysql服务器就可以了。
net stop mysql && net start mysql 装5.7时默认服务器名mysql
net stop mysql5 && net start mysql5 装mysql 5.5时改了服务器名字。
5.5安装后有my.ini文件,5.7安装后没有,自己加的ini文件。

查secure_file_priv的方法:
win7下运行cmd,cd到5.5的bin目录下,运行
mysql -u root -p,输入密码登录
show variables like ‘%secure%’
就可以显示secure_file_priv的值,NULL标识禁止输出,空白的就是无限制输出,如果是指定路径,那就是只有那个路径是可以输出的。

cmd下运行以下dump并不需要设置secure_file_priv

mysqldump.exe -t moi_server -u root -p******** --tables base > E:\book_read\cpp\db_view\db_data\mysql_dump_base.sql

mysql命令行内运行sql查询语句的方式导出部分字段需要设置secure_file_priv

SELECT ID,C FROM base INTO OUTFILE 'E:/book_read/cpp/db_view/db_data/mysql_dump_base_C.sql'

sql语句形式的目录分隔符为/
mysqldump的目录分隔符两种都可以

mysqldump导出的数据类似如下:

-- MySQL dump 10.13  Distrib 5.7.28, for Win64 (x86_64)
--
-- Host: localhost    Database: moi_server
-- ------------------------------------------------------
-- Server version	5.7.28

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Dumping data for table `base`
--

LOCK TABLES `base` WRITE;
/*!40000 ALTER TABLE `base` DISABLE KEYS */;
INSERT INTO `base` VALUES (1,'2018-05-16 15:53:03',0.00000,-145.15600,155.00300,0.00000,0.00000,0.00000,0.00000,165.08300,59.77200,27.05700,0.00000,-626.80100,121.66600,0.00000,0.00000,-742.54000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,2018,5,16,15,53,3,2141100,'2018-05-16 17:46:59','Sensors.20180516155303.txt','584c35e97b904a959b03db6ef0fb6cb3',1,0),(2,'2018-05-16 15:53:03',0.00000,-144.46600,154.84500,0.00000,0.00000,0.00000,0.00000,164.61500,59.42800,27.29100,0.00000,-627.38200,121.43000,0.00000,0.00000,-742.65900,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,2018,5,16,15,53,3,2241100,'2018-05-16 17:46:59','Sensors.20180516155303.txt','584c35e97b904a959b03db6ef0fb6cb3',1,0),......

sql语句dump出的数据类似如下:

1	155.00300
2	154.84500
3	155.43400
......

ID与C列浮点数之间的间隔符是0x09(水平定位符号 \t),换行是0x0A。很明显,第二种导出的方式,数据量更小,更方便提取数据。分隔符和回车符可以另外定义。

猜你喜欢

转载自blog.csdn.net/weixin_43172531/article/details/106157678