精华内容
下载资源
问答
  • 学习数据库时,难免需要一些数据进行实验,对于小数据量的数据...通过在网上搜集资料,我选择了几款可以自动生成大量随机数据库数据的工具。1、网页版:GeneratedataGeneratedata是一个免费、开放源码的脚本,主要由...

    学习数据库时,难免需要一些数据进行实验,对于小数据量的数据来说,我们自己想一些数据并插入到数据库即可,但是如果需要大量的数据时,手动输入将是一项繁琐的工作,我们也不一定能编那么多数据。基于以上,自动生成数据库数据成为了一项很重要的需求。

    通过在网上搜集资料,我选择了几款可以自动生成大量随机数据库数据的工具。

    1、网页版:Generatedata

    Generatedata是一个免费、开放源码的脚本,主要由javascript , PHP和MySQL构成,它可以让您可以迅速生成大量各种格式的客户数据,用于测试软件,把数据输入数据库等。

    1.1 预览

    generatedata 是一款在线工具,它是这样的:

    9c1102504af9c758066cdfa023a29275.png

    generatedata

    界面看着很清爽,各功能区域一目了然。如果觉得英语不好看明白,可以右上角切换成中文:

    6a3c5fbba9ebe7e2fa07c2bf9aa12374.png

    generatedata中文界面

    通过查看“新闻”栏,该项目代码在今年11月18日还进行了更新。

    1.2 功能介绍

    1.2.1 自定义数据集名称

    最上方一栏可以填入数据集名称,但该功能是注册用户才可以使用的功能。如何成为注册用户呢?如下图所示,捐赠20美元可以获得一个账号,可以在线保存数据,而且可以突破每次生成100条记录的限制。

    ddcd27c4251912dfeec44d3f713d13f9.png

    捐助

    当然,对于不经常使用的人来说,这不是必要的。

    1.2.2 选择城市

    因为生成的随机数据包含了姓名、国家、邮编等等,所以要选择一个国家,生成的数据会根据选择的国家进行调整:

    4dba0c24bb0654c94c130f3015aae4e5.png

    城市

    1.2.3 数据集

    数据类型有:人类相关数据(包含姓名、国家、手机号、邮箱等)、地理相关数据(包括街道地址、城市、邮编等)、信用卡数据、数值数据、数学数据以及其他。

    挑几个常用的说明一下:

    数据库中自增的 ID 可以在该网址生成,不仅可以定义起始值、步长还能定义正负数,甚至还可以将数字与字符串组合成一个字段:

    c80a39fea50399939b4bec8362d71d2b.png

    自增列

    人名也是经常用到的,可以对生成的姓名进行多种约束:男、女、姓、名等:

    0ff68868e2f3eaaa8913a69264d9a0c3.png

    姓名

    如果想生成班级同学的成绩数据,需要用到 数值范围 即生成指定数值之间的数据:

    dcf5528319c600b95e1b277e44ef8473.png

    数值范围

    还有很多数据类型,有需要的自行查看。如果字段不够了,可以在表格下方增加需要的行数。还有很好的一点是:可以用鼠标拖动各行进行排序。

    1.2.4 导出类型

    可供选择的导出格式有:CSV、Excel、HTML、JSON、LDIF、SQL、XML。 SQL 是我们关注的重点。

    可以定义表名称。

    选择数据库格式:MySQL、SQLite、Postgres、Oracle、SQL Server。

    可以生成创建表的语句、删除表的语句。

    选择批量插入的条数,即每一条 INSERT 语句插入数据的条数。

    选择是否添加 Primary Key 列。

    选择完了导出类型,还可以选择是在页面中显示还是以文件的形式下载。

    1.2.5 导出记录数量

    我们选择自动生成数据的意图之一是想要大量的数据,该网址虽然也提供了选择生成记录数量的功能(页面左下角),但是那是为注册用户提供的,而且最多是5000条,而作为普通用户,每次只能生成100条记录,这并不能满足我们的需求。

    如果我们点击左下角编辑框,会弹出警告:

    6a46a8c53ee7c35dc986151d1d217a87.png

    警告

    ============ 华丽的分割线 ================

    接下来要交给大家如何解除生成记录数据的限制(以 Chrome 为例)。

    首先按 "F12" 调出开发者工具,然后按图示步骤找出左下角编辑框在 HTML 中的位置:

    44aeb18ce55548337d5aed278031bc2f.png

    突破限制

    找到了100然后双击进入编辑状态,将该值改为 10000 ,然后可以看到页面左下角由 100 变为 10000 了:

    255e6498624117fa822f1e55a41cc7e4.png

    改成10000

    那么它会起作用吗?我们拭目以待,点击右下角 “生成” 按钮,由于我选择的是以文件方式生成,会生成一个名为“dataNov-21-2018.sql”的文件。我们打开它看一下:

    97752c0a11e1c0465ae70797f1a859f3.png

    10000条记录

    可以看到,一共生成了10000条记录,正是我们所需要的。记录数量竟然超过了官方规定的注册用户的最高限制。此处应该有掌声。

    =============== 华丽的结尾 ================

    1.2.6 导入 MySQL

    光生成数据库还不算完,最终导入到 MySQL 中才能为我们所用。前面已经介绍过 MySQL 的官方工具“MySQL Workbench”,打开它并连接数据库。

    点击"File"->"Open SQL Script",选择刚才下载的 dataNov-21-2018.sql 文件:

    382d864fc7050a991f6bfa319ce45928.png

    打开SQL文件

    由于该 SQL 脚本并没有指定使用哪个数据库,所以,在打开的 SQL 窗口前面要加上一句" USE \`mysql_learn\`; "(mysql_learn可以为其他你现存的任一数据库名称)。

    815b8243a5e1e12097f71231a9fbe46e.png

    执行

    展开全文
  • NULL 博文链接:https://rd-030.iteye.com/blog/2365688
  • 在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例。MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后...

    在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例。

    MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后才能提供给应用使用。

    这个过程可以通过shell脚本自动完成实例创建,启动,自动生成密码,修改root用户密码,删除无效用户。

    shell脚本有多种编写方法,我编写的shell脚本如下:

    #!/bin/bash

    # this scripts used to initial the mysql instance and modify password

    # created by zhaofx

    # MySQL software directory.

    readonly SYMLINK='/usr/local/mysql'

    echo "MySQL的软件安装目录为${SYMLINK}"

    # MySQL database port

    readonly MYSQL_PORT=3306

    echo "MySQL实例的端口为${MYSQL_PORT}"

    # MySQL database directory.

    readonly MYSQL_DATA_DIR="/data/mysql_${MYSQL_PORT}"

    echo "MySQL的实例数据文件目录为${MYSQL_DATA_DIR}"

    echo "准备创建MySQL实例"

    cd $SYMLINK

    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=${MYSQL_DATA_DIR}/data

    echo "开始启动数据库实例,修改root用户密码,删除无效用户"

    echo ""

    cp /etc/my.cnf /data/mysql_${MYSQL_PORT}/my.cnf

    echo "Startup MySQl Service:localhost_"${MYSQL_PORT}

    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_${MYSQL_PORT}/my.cnf &

    echo ""

    # MySQL root password

    # 随机生成八位密码,作为MySQL的密码

    for i in {1..10}

    do

    A=`head -c 500 /dev/urandom | tr -dc a-zA-Z | tr [a-z] [A-Z]|head -c 1`

    B=`head -c 500 /dev/urandom | tr -dc a-z0-9A-Z | head -c 6`

    C=`echo $RANDOM|cut -c 2`

    echo $A$B$C > /home/mysql/.password_mysql

    done

    readonly MYSQL_ROOT_PASS=$A$B$C

    echo "MySQL实例的root用户密码已经生成"

    su - mysql <

    /usr/local/mysql/bin/mysql -uroot -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "select user,host from mysql.user;"

    /usr/local/mysql/bin/mysqladmin -uroot -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock password "${MYSQL_ROOT_PASS}"

    EOF

    echo "MySQL的root用户密码已经修改"

    echo ""

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "delete from mysql.user where user='';delete from mysql.user where user='root' and host!='localhost'; FLUSH PRIVILEGES;"

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "delete from mysql.db where db='test' or db='test\\_%'; FLUSH PRIVILEGES;"

    echo "MySQL实例启动成功,初始用户环境修改完毕"

    echo ""

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e " show databases;"

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e " select user,host from mysql.user;"

    大家可以参考!

    展开全文
  • 在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例。MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后...

    在MySQL数据库部署的过程中,在安装了MySQL软件,并配置了my.cnf配置文件后,需要创建MySQL实例。

    MySQL 5.5实例创建完成了,默认会有登陆用户名和密码为空的用户,一般需要修改root用户密码,并删除无效用户,然后才能提供给应用使用。

    这个过程可以通过shell脚本自动完成实例创建,启动,自动生成密码,修改root用户密码,删除无效用户。

    shell脚本有多种编写方法,我编写的shell脚本如下:#!/bin/bash

    # this scripts used to initial the mysql instance and modify password

    # created by zhaofx

    # MySQL software directory.

    readonly SYMLINK='/usr/local/mysql'

    echo "MySQL的软件安装目录为${SYMLINK}"

    # MySQL database port

    readonly MYSQL_PORT=3306

    echo "MySQL实例的端口为${MYSQL_PORT}"

    # MySQL database directory.

    readonly MYSQL_DATA_DIR="/data/mysql_${MYSQL_PORT}"

    echo "MySQL的实例数据文件目录为${MYSQL_DATA_DIR}"

    echo "准备创建MySQL实例"

    cd $SYMLINK

    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=${MYSQL_DATA_DIR}/data

    echo "开始启动数据库实例,修改root用户密码,删除无效用户"

    echo ""

    cp /etc/my.cnf /data/mysql_${MYSQL_PORT}/my.cnf

    echo "Startup MySQl Service:localhost_"${MYSQL_PORT}

    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_${MYSQL_PORT}/my.cnf &

    echo ""

    # MySQL root password

    # 随机生成八位密码,作为MySQL的密码

    for i in {1..10}

    do

    A=`head -c 500 /dev/urandom | tr -dc a-zA-Z | tr [a-z] [A-Z]|head -c 1`

    B=`head -c 500 /dev/urandom | tr -dc a-z0-9A-Z | head -c 6`

    C=`echo $RANDOM|cut -c 2`

    echo $A$B$C > /home/mysql/.password_mysql

    done

    readonly MYSQL_ROOT_PASS=$A$B$C

    echo "MySQL实例的root用户密码已经生成"

    su - mysql <

    /usr/local/mysql/bin/mysql -uroot -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "select user,host from mysql.user;"

    /usr/local/mysql/bin/mysqladmin -uroot -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock password "${MYSQL_ROOT_PASS}"

    EOF

    echo "MySQL的root用户密码已经修改"

    echo ""

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "delete from mysql.user where user='';delete from mysql.user where user='root' and host!='localhost'; FLUSH PRIVILEGES;"

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e "delete from mysql.db where db='test' or db='test\\_%'; FLUSH PRIVILEGES;"

    echo "MySQL实例启动成功,初始用户环境修改完毕"

    echo ""

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e " show databases;"

    /usr/local/mysql/bin/mysql -uroot -p${MYSQL_ROOT_PASS} -S /data/mysql_${MYSQL_PORT}/tmp/mysql.sock -e " select user,host from mysql.user;"

    大家可以参考!

    展开全文
  • 1.造数据(使用脚本完成1w条):需求:模拟个人信息的数据(姓名(长度必须是6-12位,由大写字母/小写字母/数字)、性别(男、女中随机)、年龄(18-50之间随机)、邮箱(@163.com/@qq.com/@126.com,前面的账户的名是与姓名...

    1.造数据(使用脚本完成1w条):需求:模拟个人信息的数据(姓名(长度必须是6-12位,由大写字母/小写字母/数字)、

    性别(男、女中随机)、年龄(18-50之间随机)、邮箱(@163.com/@qq.com/@126.com,前面的账户的名是与姓名相同));

    最后要求上面全部使用类、面向对象完成(写入到csv数据格式文件或者写入数据库,excel)excel、csv、yaml、json(数据格式文件)

    例如:姓名随机出来:abcdef----->abcdefg@163.com 最后文件命名为GetData.py

    import random

    #另外一种方式:使用python的内置模块string

    import string

    class GetData():

    #self表示的是当前对象的引用

    def get_Name(self):

    get_length=random.randint(6,12)

    get_source=string.digits+string.ascii_letters

    get_str="".join(random.sample(get_source,get_length))

    return get_str

    def get_Age(self):

    return random.randint(18,50)

    def get_Sex(self):

    list1=["男","女"]

    #choice表示的是从传入的参数序列中进行随机返回一个元素,如果序列为空则抛出异常(IndexError)

    return random.choice(list1)

    #邮箱

    def get_Email(self):

    list1=["@163.com","@126.com","@qq.com"]

    #["@","1","6","3"]

    return random.choice(list1)

    '''

    #实现姓名字符串的获取也可以用第二种方法

    def getName():

    get_chr=""

    #声明的是所需要组成构成数据的数据源变量

    #sourceSeed="abcdefghijklmn"

    #字母都是可以通过ASCII码进行相互转换A----->65 a------>97

    #字符型---->由一个字母或者一个汉字所构成;字符型与整形之间是可以数据类型强制转换;

    #涉及两种重要函数:ord(传入字符串参数)/chr(传入整形值)

    get_lenth=random.randint(6,12)

    print("长度",get_lenth)

    for j in range(1,get_lenth+1):

    get_random_chr=random.randint(0,122)

    print("随机的数是:",get_random_chr)

    #print(chr(get_chr))

    get_return_chr=get_Not_In(get_random_chr)

    print(get_return_chr)

    if get_return_chr>9:

    get_chr+=chr(get_return_chr)

    else:

    get_chr+=str(get_return_chr)

    #print(get_return_chr)

    print(get_chr)

    #声明一个函数完成判定不是在91-97之间的数

    def get_Not_In(input_number):

    list1=[]

    for i in range(10, 65):

    list1.append(i)

    for i in range(91, 97):

    list1.append(i)

    #print(set(list1))

    while True:

    if input_number in set(list1):

    get_random_chr = random.randint(0, 122)

    input_number= get_random_chr

    else:

    break

    return input_number

    getName()

    '''

    2

    如果数据量过大的话,数据是存储在数据格式文件中较好还是数据库中较好?为什么?

    #数据量大的时候,数据肯定是存储在数据库中(mysql数据库,oracle数据库);数据量较大时可能导致文件

    #对象流获取失败(文件的打开失败)---->稳定性没有数据库强

    #-------------------------------------------------------------------------------

    #封装数据库的创建表、插入数据、更新数据、删除数据

    #完成第一个需求:创建一个表:调用创建表的方法时,能够实现传入对应的字段即可创建对应的表结构

    #例如:create_table("name varchar(20)","sex char(4)","")

    import pymysql

    import GetData

    class Mysql_Oprea():

    #驱动器对象创建对象时进行初始化

    def __init__(self):

    self.get_conn = pymysql.connect(host="localhost",port=3307,user="root",password= "",database="test0513")

    self.get_curosr = self.get_conn.cursor()

    #创建一个创建表的方法

    def create_table(self,tableName,*args):

    #list1=[]

    get_len=len(args)

    count=0

    str1=""

    for i in args:

    count+=1

    #list1.append(i)

    print(i)

    str1+=i

    if count!=get_len:

    str1+=","

    #tuple1=tuple(list1)

    print(str1)

    str_create_sql="create table %s (%s)"%(tableName,str1)

    self.get_curosr.execute(str_create_sql)

    print(str_create_sql)

    #create table stu (stu_name varchar(10))

    #删除表

    def drop_table(self,tables):

    drop_tables='drop table '+tables

    print(drop_tables)

    self.get_curosr.execute(drop_tables)

    #插入数据

    def insert_data(self,tableName,*args):

    str_create_sql = "insert into %s values %s" % (tableName, args)

    self.get_curosr.execute(str_create_sql)

    print(str_create_sql)

    # create table stu (stu_name varchar(10))

    #插入数据只是简单的写了,比如还有指定列的方法插入,还可以用比如字典的方法写,也可以用一个列表包含多个元组的方法。

    if __name__ == '__main__':

    mysqlTest=Mysql_Oprea()

    tuple1=("lesson_id int","lesson_name varchar(10)")

    # mysqlTest.create_table("student","s_name varchar(15)","s_Age int(5)","s_sex char(8)","s_Email varchar(20)")

    # mysqlTest.drop_table('student')

    get_data=GetData.GetData()

    for i in range(1, 10001):

    get_name = get_data.get_Name()

    get_sex = get_data.get_Sex()

    get_age = get_data.get_Age()

    get_email = get_data.get_Email()

    get_email=get_name+get_email

    # csv_write_obj.writerow([get_name, get_sex, get_age, get_name + get_email])

    mysqlTest.insert_data('student',get_name,get_age,get_sex,get_email)

    #

    展开全文
  • 1万个有币的比特币地址数据库和python随机生成比特币地址进行随机对撞,概率虽然低,但是还是有可能的,万一你对撞成功了,你就发财了,发的可不是小财啊
  • DatabaseGeneral-DBMS:MySQL5.0(根据自己MySQL版本选择)附常用脚本脚本执行路径备注到名称和名称到备注脚本在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写...
  • 这是一个个人信息的数据库批量写入的脚本随机生成的一些数据,如有变动,可以在代码上稍作修改即可 import pymysql import random db = pymysql.connect( user = "root", password = "qwer", host = "localhost...
  • 随机生成中文姓名,并将姓名转换为拼音以及拼音简写,同时能够生成SQL脚本,或者直接插入到数据库
  • 这段时间在搞大数方面的研究,大量的数据哪里去找呢呵呵,网上的一些自动生成工具也 不怎么符合自己需求,于是乎自己就编写了一个,能产生大量的随机数据的脚本,还能对配置文件进行配置哦,虽然有些地方做不够灵活...
  • 要查找所有可能的有效字,请执行以下步骤...搜索数据库中的单词>列出单词脚本$tiles = array( "A", "B", "C", "T", "E", "E") ;$words = array();$set = powerSet($tiles,2);$mysql = new mysqli("localhost","roo...
  • 1.造数据(使用脚本完成1w条):需求:模拟个人信息的数据(姓名(长度必须是6-12位,由大写字母/小写字母/数字)、性别(男、女中随机)、年龄(18-50之间随机)、邮箱(@163.com/@qq.com/@126.com,前面的账户的名...
  • 再写接口自动化脚本时候有个身份证录入的输入框,前端有计算验真规则若是假的会被校验,每次都是百度身份证网站复制很麻烦,接口层没有拦截校验但是会和数据库中校验是否已存在,刚开始使用random随机生成18位,再去...
  • 我们开发了一个用程序模块来实现的,当然您也可以用脚本 + cron 来实现。现在,实现这个需求更为简单了。8.0.18版本新增了一个小功能,CREATE USER,ALTER USER和 SET PASSWORD语句可以生成随机密码。生成随机密码...
  • 在不离开页面的情况下,为填充数据库和测试web API生成1到10,000个用户。 此扩展创建用于填充数据库或与测试脚本一起使用的JSON用户对象数组。 [更新]添加了CSV下载功能! 增加了复制到剪贴板的功能! 给每个对象一...
  • 我们开发了一个用程序模块来实现的,当然您也可以用脚本 + cront 来实现。现在,实现这个需求更为简单了。8.0.18版本新增了一个小功能,CREATE USER,ALTER USER和 SET PASSWORD语句可以生成随机密码。生成随机密码...
  • rem 设置openssl的路径set OPENSSL_HOME=I:\workspace\openssl\...%OPENSSL_HOME%\out32dllmd cacd cadel/s/q *rem 建立随机文件echo 1234567890 > .randrem 建立数据库echo #database > index.txtrem 建...
  • 随机生成器 Instruçõesde uso: Ao executar o app(vocêpode ver asinstruçõesabaixo)vocêveráumbotãolaranja, 贵族的小帮手! 0: Propósitodo App 删除应用程序,然后再次尝试! Use-o Quando ...
  • 学校数据库-源码

    2021-02-21 07:25:10
    用于为表格生成随机记录的脚本 用于创建数据库和定义架构SQL文件 插入顺序指南:学生之前的储物柜记录购买前和dept_staff的老师 C#脚本生成所有insert.sql文件 可以在db.sql文件中找到模式。 示例查询位于sample-...
  • python连接数据库

    2019-05-05 18:04:06
    编写一个用户洗牌的脚本,根据用户输入,选择连接sqlserver或者MySQL,创建数据库、表,随机生成数据,并实现增删改查。 其中,为了兼容python2和python3,统一了打印函数、录入函数、动态导包等 一些字段声明为全局...
  • 发现,某些数据库由于'_'的原因导致完整备份出来的文件里的逻辑名是不一样的, 进一步查找发现,其实在创建的数据库的时候没有指定逻辑名的话,系统会生成随机逻辑名,这对批量做脚本数据库管理带来很大的不方便,...
  • password_manager password_manager脚本使用类对象和上下文管理器将用户名和密码存储在SQLite数据库中。 连接文件建立与数据库的连接,并在password_manager文件中导入类对象... -还允许生成随机密码以保存在数据库
  • shell脚本集合

    2020-10-31 21:39:55
    题目面试题1:批量生成随机字符文件名面试题2:批量改名面试题3:批量创建特殊要求用户面试题4:扫描网络内存活主机案例面试题5:写一个Shell脚本解决类DDoS攻击的生产案例。面试题6:MySQL数据库分库备份面试题7:...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 160
精华内容 64
关键字:

数据库随机生成脚本