在MySQL 5.0中从转储文件创建数据库

9
我想从名为“db_ehr.sql”的转储文件创建数据库,有人可以帮我吗?

你正在运行哪个平台?(Linux、Windows等) - John Parker
3个回答

20

在 MySQL 控制台中:

create database test;
use test;
source db_ehr.sql;

1
我应该把db_ehr.sql文件放在哪里? - Learner
1
在Windows中:source c:\path\to\db_ehr.sql; 在Linux中:source /home/test/source db_ehr.sql; - Mohammad Ali Akbari

4
文件可以使用mysql命令行控制台执行。
shell>mysql --user=user_name --password=user_password --host=host_name --port=port_number<db_ehr.sql

你可以指定文件的完整路径,例如 d:\dir1\db_ehr.sql
mysql - MySQL 命令行工具mysql — The MySQL Command-Line Tool

但请阅读转储文件以了解您将要加载/覆盖的内容。 - symcbean

2
您的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

使用方法:source

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)

当我尝试一些危险的操作时,我收到了有用的错误信息:

尝试以没有必要权限的用户身份登录:

ERROR 1044 (42000): 用户'eh'@'localhost'被拒绝访问数据库'demo'

尝试两次创建demo:

ERROR 1007 (HY000): 无法创建数据库'demo';数据库已存在

尝试创建名为“not a name”的数据库:

ERROR 1064 (42000): 您的SQL语法存在错误;请查看与您的MySQL服务器版本对应的手册,了解正确的语法使用方法,在第1行附近出现“not a name”

因此,如果你的实验失败了而没有任何提示原因,那么我就感到困惑了。


@Bilal:如果没有其他详细信息(你所做的事情、脚本的相关部分、错误消息、意外结果等),那么你的抱怨“不起作用”就是你的问题,因为我无法理解/重现你的问题。 - Ekkehard.Horner
没有创建数据库 (0行受影响) 执行时间: 00:00:00:000 传输时间: 00:00:00:000 总时间: 00:00:00:000 - Learner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接