原文文档:https://blog.csdn.net/A15517340610/article/details/105623103/
在看本文之前一定要看原文文档,要不然很多步骤不太清楚。
本人根据文档,经过自己的安装添加了一些步骤,希望本人踩过的坑可以帮助到你们~
话不多说,直接开整~
安装环境:
- Python (2.7.14)
此版本使用的是2.7版本的Python (2.7.14),我是自己安装python版本,centos自带的python好像缺少模块(例如:setuptools、pip等) - datafaker (github下载的zip包datafaker-master.zip)下载地址https://github.com/gangly/datafaker
前提说明
本人刚开始使用的pip模式的安装,发现一直少东西,然后就源码整了。但是关于pip和setuptools给你们一些看过的文档参考:
安装流程
- 安装python
参考文档:https://www.cnblogs.com/xiaowenshu/p/10239834.html - 安装datafaker
- 下载源码包,将datafaker-master.zip解压
- unzip datafaker-master.zip
- 进入到 datafaker-master文件夹中
- cd /software/datafaker-master
- 安装
- python setup.py install
-
安装 MySQL-python-1.2.5.zip
我安装的是MySQL-python-1.2.5,
安装文档:https://blog.csdn.net/weixin_29290259/article/details/113294040
- 步骤:
- unzip MySQL-python-1.2.5.zip
- cd MySQL-python-1.2.5/
- python setup.py build
- 在第三步遇到了一个问题,在setup.py安装脚本中,找不到指定的mysql_config.path的位置。解决办法如下:
- 将下载的MySQL-python-1.2.5的文件解压,然后打开编辑器编辑setup_posix,其中有一行mysql_config.path = “mysql_config”,改为mysql_config.path = “/usr/local/Cellar/mysql-connector-c/6.1.11/bin/mysql_config” 这里注意了,/usr/local/Cellar/mysql-connector-c/6.1.11/bin/mysql_config是我的mysql的安装地址。也就是说安装之前需要先安装mysql,只需要去官网下载就行了。(只适用python2,python3 请用whl安装【https://pypi.org/project/mysqlclient/#files】)
- 此处又遇到个问题,因为我是下载的mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar,这种文件方式的安装 安装文档:https://blog.csdn.net/qq_23123177/article/details/82759057
这种rpm的方式安装没有mysql_config文件,经过百度,解决办法:https://blog.csdn.net/weixin_36522099/article/details/107965842
此处操作后就可以有mysql_config文件了,将文件的位置配置在mysql_config这个文件中,就可以继续执行了 - python setup.py install
到此MySQL-python-1.2.5安装完毕!
- 执行datafaker --version查看版本
-
此处的datafaker –-version 我在bin目录下执行未成功,然后我是将bin目录下的datafaker添加了执行权限 chmod 777 datafaker,在执行datafaker –-version是成功了的(不知道对不对,个人见解)
-
在mysql中创建学生表
create table stu ( id int unsigned auto_increment primary key COMMENT '自增id', name varchar(20) not null comment '学生名字', school varchar(20) not null comment '学校名字', nickname varchar(20) not null comment '学生小名', age int not null comment '学生年龄', class_num int not null comment '班级人数', score decimal(4,2) not null comment '成绩', phone bigint not null comment '电话号码', email varchar(64) comment '家庭网络邮箱', ip varchar(32) comment 'IP地址', address text comment '家庭地址' ) engine=InnoDB default charset=utf8;
-
编写元数据meta.txt
- 编写元数据meta.txt,这是个学生表描述。 其中meta.txt文件内容为:
id||int||自增id[:inc(id,1)]
name||varchar(20)||学生名字
school||varchar(20)||学校名字[:enum(file://names.txt)]
nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)]
age||int||学生年龄[:age]
class_num||int||班级人数[:int(10, 100)]
score||decimal(4,2)||成绩[:decimal(4,2,1)]
phone||bigint||电话号码[:phone_number]
email||varchar(64)||家庭网络邮箱[:email]
ip||varchar(32)||IP地址[:ipv4]
address||text||家庭地址[:address]
- 编写元数据meta.txt,这是个学生表描述。 其中meta.txt文件内容为:
-
执行命令生成数据
-
在bin目录下执行
datafaker rdb mysql+mysqldb://root:root@localhost:3600/test?charset=utf8 stu 10 --outprint – meta meta.txt --outspliter ,
命令时,发现找不到meta.txt的位置,此处可以指定meta.txt位置zai bin目录下执行,也可以添加软链接,在meta.txt所在的目录下执行(我采用的是这种方式),命令:
ln -s /software/datafaker-master/bin/datafaker /usr/bin/datafaker
然后就可以在任意位置执行了
执行之后发现一个报错Can’t connect to MySQL server on ‘...’(10060)
导致此处错误的原因有很多,具体参考文档:
https://www.cnblogs.com/mmzs/p/9201558.html我此处是因为防火墙没有关闭
接着又出现了个问题:Access denied for user ‘root’@‘localhost’ (using password: YES)
此处我修改了mysql的配置my.cnf文件,直接跳过了密码验证
[root@localhost ~]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf
[root@localhost ~]#vim /etc/my.cnf
[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
保存并退出 :wq
重启Mysql服务
[root@localhost ~]# service mysql restart
之后就可以执行插入数据库成功了
-
-
结尾
因为写作匆忙,很多地方都是不确定,有什么错误的地方希望大神指教。后续有时间在回来修改!感谢观看。