HOWTO لإنشاء قاعدة بيانات MySQL من النسيج ديناميكيا

StackOverflow https://stackoverflow.com/questions/1886780

  •  19-09-2019
  •  | 
  •  

سؤال

هل من الممكن إنشاء قاعدة بيانات MySQL من النسيج ديناميكيا.

يبدو أن هذا يتعطل في موجه كلمة المرور

run('mysql -u %s -p %s -h %s  ' % (env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
run('CREATE DATABASE %s; ' % (dataname), pty=True)
run('exit', pty=True)
هل كانت مفيدة؟

المحلول

حاول بدلا من ذلك

run('echo "CREATE DATABASE %s;"|mysql --batch --user=%s --password=%s --host=%s' % (dataname, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)

نصائح أخرى

هناك طريقة أفضل للقيام بذلك باستخدام Mysqladmin:

run('mysqladmin -u %s -p%s create %s' % (user, password, dbname))

يمكنني استخدام بطانة واحدة التالية عبر سطر الأوامر

mysql -uroot -prootpassword -e "CREATE DATABASE dbname";

المفتاح هو مفتاح التبديل.
إذا كنت ترغب في الحصول على برنامج نصي BASH مع المتغيرات في DB / User / Pass وتشغيله كما ./myscript ثم

#!/bin/bash
DB="mydb"
USER="user1"
PASS="pass_bla"

mysql -uroot -prootpassword -e "CREATE DATABASE $DB CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql -uroot -prootpassword -e "CREATE USER $USER@'127.0.0.1' IDENTIFIED BY '$PASS'";
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top