2012-02-16 3 views
1

Я нашел этот код, но не совсем понимаю, что делает команда.команда bash script для ввода schema.sql в mysql db

sudo -u test-user mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql 

я знаю, последняя часть использует lib.model.schema.sql для создания таблиц и полей первую часть я не совсем понимаю: sudo -u test-user mysql -U test_traffic traffic

я знаю команду sudo и mysql

поясните пожалуйста? благодаря

+0

Создана ли база данных, и вы хотите запустить скрипт для схемы таблиц? –

+0

да есть база данных, просто хотите использовать schema.sql для таблиц –

+0

Что именно вы хотите сделать? Ваша цель - внедрить SQL-файл в вашу БД с помощью сценария bash или просто понять, что делает этот скрипт? –

ответ

3

Давайте посмотрим на него по кусочкам. Во-первых, формат

sudo -u username command 

является инструкцией для запуска command (который может быть простым или сложным), как пользователь username. Итак, в вашем примере вы используете команду mysql как пользователь test-user. Следует отметить, что это включает все параметры команды mysql - вот и вся остальная часть линии.

Команда

mysql -U test_traffic traffic < ./phoenix/data/sql/lib.model.schema.sql 

появляется коррумпированный (конечно, запустить его на 5.0.51a терпит неудачу). Было бы разумно, если бы -U был -u, который указывал бы, что команда должна была быть выполнена для пользователя mysql test_traffic. Если бы это было -u, у вас тогда была бы инструкция для импорта файла sql в базу данных трафика.

Таким образом, комбинированная инструкция говорит, импортировать файл lib.model.schema.sql в базу данных с помощью test_traffic пользователя MySQL test_traffic и выполняющем всю команду, как если бы вы вошли в систему как пользователь test-user.

+0

Большое вам спасибо! -U бросил меня .. у меня сейчас работает, спасибо! –

1

Try Ниже шаги для MySQL:

mysql > -h hostname -u username -p password 

    mysql > use databasename; 

    mysql > source path/to/scriptfile 
0

Если вы хотите, чтобы ввести theschema.sql файл в вашу базу данных, с помощью скрипта, просто использовать:

mysql -h [host] -u [username] -p[password] -D [database] < your_file 

Если вы хотите сказать, какой динамически файл должен быть загружен, замените your_file на $1 и проход имя файла в качестве аргумента для вашего скрипта.

Позаботьтесь также об -p. Между -p и вашим паролем нет пробела.

Смежные вопросы