Shell komutundan bir veritabanı nasıl oluşturulur?


175

PostgreSQL veya bana bir kabuk komut yardımı ile veritabanı oluşturmak için izin verecek herhangi bir başka çözüm gibi createb gibi bir şey arıyorum. İpucu var mı?

Yanıtlar:


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

Burada dosyaadı.sql veritabanınızı oluşturmak için tüm sql tutar. Veya...

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

Gerçekten sadece bir veritabanı oluşturmak istiyorsanız.


2
Bu hata ERROR 1046 (3D000) satır 27'de alıyorum: echo "veritabanı veritabanı adı oluştur" çalıştırdığınızda veritabanı seçilmedi | mysql -u -u kullanıcı adı -p komut
keerthi

@keerthi: Belki de kullanıcınızın mevcut herhangi bir şemada imtiyazı yoktur?
Kris

2
Çünkü iki -ubayrak var
Stephen

@Kris Veritabanı adını terminalden okuyabilir ve değişken değerini veritabanı oluştururken veritabanı adı olarak kullanabilir miyim.
CLIFFORD PY

@Clifford: normal kabuk argümanlarını kullanarak basit (ba) sh komut dosyasını kullanabilirsiniz. ( stackoverflow.com/questions/23563043/shell-script-arguments ) Muhtemelen kendi sorusunu hak ediyor.
Kris

214

MySQL ortam?

create database testdb;

Veya doğrudan komut satırından:

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

11
mysql -u root -e "veritabanı testdb oluştur"; Aradığım şey bu :) teşekkür ederim
koszikot

3
Parolanız varsa, -p ekleyin. Enter tuşuna bastıktan sonra, şifreniz sorulacaktır. Aşağıda, köküm (anot kullanıcı adınız varsa değiştirin) ve kullanıcı veritabanı için "oc_local" adını kullanır (veritabanınızın farklı bir şekilde çağrılmasını istiyorsanız değiştirin) - ----> mysql -u root -p -e "veritabanı oluştur oc_local";
pablofiumara

1
hi @koszikot - aradığınız
buysa

1
Komut satırı seçeneklerinin ne yaptığını bilmek istiyorum, diğerleri için -e --execute = deyiminin kısa biçimidir. Komut satırı seçeneklerini buradan bulun dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html
Anthony

70

Yeni bir veritabanı oluşturursanız, yalnızca bu veritabanı için izinleri olan bir kullanıcı oluşturmak iyidir (bir şey ters giderse root kullanıcı oturum açma adı ve şifresinden ödün vermezsiniz). Yani birlikte her şey şöyle görünecek:

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'"

Burada:
base_user tüm ayrıcalıklara sahip kullanıcının adıdır (muhtemelen kök)
base_user_pass base_user şifresidir (-p ve base_user_pass arasında boşluk olmaması önemlidir)
new_db yeni oluşturulan veritabanı için
isimdir new_db_user erişime sahip yeni kullanıcının adıdır sadece new_db
new_db_user_pass için new_db_user şifresidir


Masif. Bu harika bir astarı dashdocs snippet'lerine ekledim. Herkesin boşlukları olan bir kök parolası olması durumunda: iyi -p"root password here"çalışır
hmedia1 0

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

Yukarıdaki değişkenleri değiştirin ve bu oneliner ile gitmek iyidir. $ USER kullanıcı adı, $ PASSWORD şifre ve $ DB_NAME veritabanının adıdır.


1
yıllar sonra bu soruya geri döndü ve bunu iptal ettiğimi fark ettim: D
Isaac

20

kullanım

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

Parola girmeniz istenir. Ayrıca, kullandığınız mysql kullanıcısının veritabanı oluşturma ayrıcalıklarına sahip olduğundan emin olun.


12

İst ve 2. cevap iyidir ama kimse bir komut dosyası arıyorsanız veya dinamik yani (değişkente db / kullanıcı adı / şifre) istiyorsanız o zaman burada:

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

10

Komut satırında SQL kullanabilirsiniz :

echo 'CREATE DATABASE dbname;' | mysql <...>

Veya şunları kullanabilirsiniz mysqladmin:

mysqladmin create dbname

2

Temel kullanıcıyı kullanarak DB'ye bağlanın: mysql -u base_user -pbase_user_pass CREATE DATABASE, CREATE USER ve GRANT PRIVILEGES deyimlerini yürütün.

İşte size www.bugaco.com/helpers/create_database.html beyanlarında yardımcı olacak kullanışlı web sihirbazı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.