ฉันกำลังมองหาบางอย่างเช่น createb ใน PostgreSQL หรือโซลูชันอื่นใดที่จะอนุญาตให้ฉันสร้างฐานข้อมูลด้วยความช่วยเหลือของคำสั่งเชลล์ คำใบ้ใด ๆ
ฉันกำลังมองหาบางอย่างเช่น createb ใน PostgreSQL หรือโซลูชันอื่นใดที่จะอนุญาตให้ฉันสร้างฐานข้อมูลด้วยความช่วยเหลือของคำสั่งเชลล์ คำใบ้ใด ๆ
คำตอบ:
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
หากคุณต้องการสร้างฐานข้อมูลจริงๆ
-u
ธงสองแห่ง
คุณหมายถึงในขณะที่สภาพแวดล้อม mysql?
create database testdb;
หรือโดยตรงจากบรรทัดคำสั่ง:
mysql -u root -e "create database testdb";
หากคุณสร้างฐานข้อมูลใหม่เป็นการดีที่จะสร้างผู้ใช้ที่มีสิทธิ์สำหรับฐานข้อมูลนี้เท่านั้น (หากมีสิ่งใดผิดพลาดคุณจะไม่สูญเสียการเข้าสู่ระบบและรหัสผ่านของผู้ใช้รูท) ดังนั้นทุกอย่างด้วยกันจะมีลักษณะเช่นนี้:
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เป็นรหัสผ่านสำหรับ base_user (การเว้นวรรคระหว่าง -p และ base_user_pass มีความสำคัญ)
new_dbเป็นชื่อสำหรับฐานข้อมูลที่สร้างขึ้นใหม่
new_db_userเป็นชื่อสำหรับผู้ใช้ใหม่ที่เข้าถึง เฉพาะ new_db
new_db_user_passเป็นรหัสผ่านสำหรับ new_db_user
-p"root password here"
ทำงานได้ดี
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
แทนที่ตัวแปรข้างต้นและคุณพร้อมที่จะไปกับ oneliner นี้ $ USER เป็นชื่อผู้ใช้ $ PASSWORD เป็นรหัสผ่านและ $ DB_NAME เป็นชื่อของฐานข้อมูล
ใช้
$ mysqladmin -u <db_user_name> -p create <db_name>
คุณจะถูกถามให้ใส่รหัสผ่าน ตรวจสอบให้แน่ใจว่าผู้ใช้ mysql ที่คุณใช้มีสิทธิ์ในการสร้างฐานข้อมูล
คำตอบ 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'";
คุณสามารถใช้SQLบนบรรทัดคำสั่ง:
echo 'CREATE DATABASE dbname;' | mysql <...>
หรือคุณสามารถใช้mysqladmin
:
mysqladmin create dbname
เชื่อมต่อกับฐานข้อมูลโดยใช้ผู้ใช้ฐาน:
mysql -u base_user -pbase_user_pass
และดำเนินการสร้างฐานข้อมูลสร้างผู้ใช้และมอบสิทธิ์ในการชี้แจง
นี่คือตัวช่วยสร้างเว็บที่ใช้งานง่ายเพื่อช่วยคุณในการจัดทำงบ www.bugaco.com/helpers/create_database.html