शेल कमांड से डेटाबेस कैसे बनाएं?


175

मैं PostgreSQL या किसी अन्य समाधान में createb जैसी किसी चीज़ की तलाश कर रहा हूं जो मुझे शेल कमांड की मदद से डेटाबेस बनाने की अनुमति देगा। कोई संकेत?

जवाबों:


173
cat filename.sql | mysql -u username -p # type mysql password when asked for it

जहाँ filename.sql आपके डेटाबेस को बनाने के लिए सभी sql रखता है। या ...

echo "create database `database-name`" | mysql -u username -p

यदि आप वास्तव में केवल एक डेटाबेस बनाना चाहते हैं।


2
मुझे यह त्रुटि ERROR 1046 (3D000) लाइन 27 पर मिलती है: जब मैं गूंज "डेटाबेस डेटाबेस बनाएँ" नाम से कोई डेटाबेस चयनित नहीं होता है। mysql -u -u यूजरनेम -p कमांड
कीरथी

@keerthi: शायद आपके उपयोगकर्ता के पास किसी भी मौजूदा स्कीमा में विशेषाधिकार नहीं हैं?
क्रिश

2
ऐसा इसलिए है क्योंकि -u
स्टीफन

@ क्रिस मैं डेटाबेस नाम डेटाबेस से पढ़ सकते हैं और डेटाबेस बनाने में डेटाबेस नाम के रूप में चर मूल्य का उपयोग कर सकते हैं।
क्लिफोर्ड PY

@ क्लिफोर्ड: आप सामान्य शेल तर्कों का उपयोग करके सरल (बीए) श स्क्रिप्ट का उपयोग कर सकते हैं। ( stackoverflow.com/questions/23563043/shell-script-arguments ) संभवतः अपने स्वयं के प्रश्न का गुणन करता है।
क्रिश

213

मेरा मतलब है जब आप mysql पर्यावरण?

create database testdb;

या सीधे कमांड लाइन से:

mysql -u root -e "create database testdb"; 

11
mysql -u root -e "डेटाबेस टेस्टडब बनाएँ"; Thats मैं क्या देख रहा था :) धन्यवाद
koszikot

3
यदि आपके पास पासवर्ड है, तो बस जोड़ें -p। एंटर दबाने के बाद आपसे आपका पासवर्ड पूछा जाएगा। निम्नलिखित मेरे उपयोगकर्ता का उपयोग करने वाला एक उदाहरण है जो रूट है (यदि आपके पास उपयोगकर्ता नाम है तो इसे बदलें) और यह डेटाबेस के लिए "oc_local" नाम का भी उपयोग करता है (यदि आप चाहते हैं कि आपके डेटाबेस को एक अलग तरीके से बुलाया जाए) - ----> mysql -u root -p -e "create database oc_local";
पेलोफिअमारा

1
hi @koszikot - यदि यह वही है जो आप ढूंढ रहे थे, तो आपको इसे सही उत्तर के रूप में स्वीकार करना चाहिए :-)
thejohnbackes

1
मुझे यह जानना पसंद है कि कमांड लाइन विकल्प क्या करते हैं, दूसरों के लिए -e --execute = स्टेटमेंट के लिए संक्षिप्त रूप है। कमांड लाइन विकल्प यहां खोजें dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html
एंथनी

70

यदि आप एक नया डेटाबेस बनाते हैं तो केवल इस डेटाबेस के लिए अनुमतियों के साथ उपयोगकर्ता बनाना अच्छा है (यदि कुछ भी गलत होता है तो आप रूट उपयोगकर्ता लॉगिन और पासवर्ड से समझौता नहीं करेंगे)। तो सब कुछ एक साथ इस तरह दिखेगा:

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO new_db_user@localhost IDENTIFIED BY 'new_db_user_pass'"

कहां:
base_user सभी विशेषाधिकारों के साथ उपयोगकर्ता के लिए नाम है (शायद रूट)
base_user_pass यह आधार_सुविधा के लिए पासवर्ड है (-p और base_user_pass के बीच स्थान की कमी महत्वपूर्ण है)
new_db नए बनाए गए डेटाबेस का नाम है
new_db_user पहुंच के साथ नए उपयोगकर्ता के लिए नाम है केवल new_db
new_db_user_pass के लिए यह new_db_user के लिए पासवर्ड है


बड़े पैमाने पर। बस डैशबोर्ड स्निपेट्स में इस महान एक लाइनर को जोड़ा। यदि किसी के पास रिक्त स्थान के साथ रूट पासवर्ड है: -p"root password here"ठीक काम करता है
hmedia1

37
mysqladmin -u$USER -p$PASSWORD create $DB_NAME

चर से ऊपर बदलें और आप इस ऑनलाइनर के साथ जाने के लिए अच्छे हैं। US USER उपयोगकर्ता नाम है, $ PASSWORD पासवर्ड है और $ DB_NAME डेटाबेस का नाम है।


1
कई साल बाद इस सवाल पर वापस आए और मैंने देखा कि मैंने इसे उखाड़ फेंका: डी
इसहाक

20

उपयोग

$ mysqladmin -u <db_user_name> -p create <db_name>

आपको पासवर्ड के लिए कहा जाएगा। यह भी सुनिश्चित करें कि आपके द्वारा उपयोग किए जाने वाले mysql उपयोगकर्ता के पास डेटाबेस बनाने के लिए विशेषाधिकार हैं।


12

Ist और 2nd उत्तर अच्छे हैं, लेकिन यदि कोई स्क्रिप्ट की तलाश में है या यदि आप डायनामिक चाहते हैं (db / यूज़रनेम / पासवर्ड चर में) तो यहाँ:

#!/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'";


2

आधार उपयोगकर्ता का उपयोग कर DB से कनेक्ट करें: mysql -u base_user -pbase_user_pass और CREATE DATABASE, CREATE USER और GRANT PRIVILEGES स्टेटमेंट्स निष्पादित करें।

यहां www.bugaco.com/helpers/create_database.html कथनों के साथ मदद करने के लिए आसान वेब विज़ार्ड उपलब्ध है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.