import mysql from 'mysql2/promise' import { input, password } from '@inquirer/prompts' import generator from 'generate-password' const user = { name: undefined, password: undefined } user.name = await input({ message: 'Root:', async validate(value) { if (!value) { return 'Required!' } return true } }) user.password = await password({ message: 'Password:', mask: '*', async validate(value) { if (!value) { return 'Required!' } return true } }) // create connection, generate name for db and user, and generate password const connection = await mysql.createConnection({ host: 'localhost', user: user.name, password: user.password }) const database = { name: 'db', user: 'u' } database.name += generator.generate({ length: 15, numbers: true }) database.user += generator.generate({ length: 15, numbers: true }) database.password = generator.generate({ length: 30, numbers: true }) // create database await connection.query('CREATE DATABASE ' + database.name + ' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci') await connection.query("CREATE USER " + database.user + "@'localhost' IDENTIFIED BY '" + database.password + "'") await connection.query("CREATE USER " + database.user + "@'%' IDENTIFIED BY '" + database.password + "'") await connection.query("GRANT ALL PRIVILEGES ON " + database.name + ".* TO " + database.user + "@localhost") await connection.query("FLUSH PRIVILEGES") connection.destroy() // show name, user and passwort console.log(database.name) console.log(database.user) console.log(database.password)