Ваш db_ehr.sql должен выглядеть так:
# DATEI: db_ehr.sql
# ZWECK: Kommando-Datei für mysql
# create dbname - ???
# GEBRAUCH: [eh@xx xx]$ mysql -u root [-p] < db_ehr.sql
# ------ Create Database
USE mysql;
DROP DATABASE IF EXISTS dbname;
CREATE DATABASE dbname;
# ------ Grant Access
GRANT ALL ON dbname.* TO user@'host';
# ------ Create/Fill Tables
Пользователь (root) должен иметь возможность создавать базы данных, а пользователь, которому предоставлен доступ, должен иметь пароль (IDENTIFIED BY)
Добавлены доказательства:
Уменьшенная версия скрипта выше (которая «работает» и для меня):
DOS E:\proj\lang\sql\mysql\winxpsp3
type demo00.sql
USE mysql;
show databases;
DROP DATABASE IF EXISTS demo;
CREATE DATABASE demo;
show databases;
Использование: перенаправление:
DOS E:\proj\lang\sql\mysql\winxpsp3
mysql -u root -p < demo00.sql
Enter password:
Database
...
classicmodels
mysql
...
Database
...
classicmodels
demo
mysql
Использование: источник
mysql -u root -p
...
Server version: 5.0.51b-community-nt MySQL Community Edition (GPL)
...
mysql> source demo00.sql
Database changed
+--------------------+
| Database |
+--------------------+
...
| classicmodels |
| mysql |
...
+--------------------+
6 rows in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 1 row affected (0.00 sec)
+--------------------+
| Database |
+--------------------+
...
| classicmodels |
| demo |
| mysql |
...
+--------------------+
7 rows in set (0.00 sec)
Я получил поучительные сообщения об ошибках, когда пытался делать неприятные вещи:
Попытка пользователя без необходимых прав:
ОШИБКА 1044 (42000): доступ пользователя 'eh' @ 'localhost' к базе данных 'demo' запрещен
Попытка создать демо дважды:
ОШИБКА 1007 (HY000): не удалось создать базу данных «демо»; база данных существует
Попытка создать базу данных с именем «not a name»:
ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, что
соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом
«не имя» в строке 1
Так что я смущен, узнав, что ваши эксперименты провалились без какого-либо намека на причину.