1 你可以看你的my.ini文件,里面有可以看到datadir后面定义的路径就是 D:\mysql\bin
2 如果这个文件中找不到,你就登陆mysql,在myql下运行 D:\mysql\data\document
mysql> show variables like '%datadir%';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| datadir | /data/mysql/ |
+---------------+--------------+
1 row in set (0.10 sec)
D:\mysql\data\document>mysqldump -uroot -proot document qishu_novels > F:\document\qishu_novels.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
4.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
C:\Users\Administrator>mysql -h27.255.79.21 -uuser -pSs19940317!
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
mysql> source F:\document\qishu_details.sql
#进入mysql
mysql -h27.255.79.21 -uuser -pSs19940317!#导入服务器mysql数据库
C:\Users\Administrator>mysql -h27.255.79.21 -uuser -pSs19940317! --default-character-set=utf8 document < F:\document\qishu_books.sql
#导入服务器mysql数据库
source F:\document\qishu_books.sql
报错信息:
ERROR 2005 (HY000): Unknown MySQL server host '10997107101114' (0)
ERROR:
Can't connect to the server
No connection. Trying to reconnect...
=======================
尝试了几种解决办法:
(1)
mysql> show global variables like 'max_allowed_packet';
mysql> set global max_allowed_packet=1024*1024*16;
mysql> show global variables like 'max_allowed_packet';
重新导入数据库,还是会发生上面的问题
(2)把 localhost 改成 127.0.0.1 再试试,结果还是失败。
即把 mysql -uroot -p
改成
mysql -uroot -h127.0.0.1 -p
还是不行。
(3)修改Mysql的配置文件my.ini
max_allowed_packet = 640M
=======================
unknown command '\n' 这种导入数据库的时候,会发生这个错误,有关系吗?
DOS报错error at line XXX:unknown command '\n';
这种情况一般是字符集不对应引起的,如果数据库是utf8编码,则mysql导入的时
mysql -uroot -ppasswd <d:\aa.sql --default-character-set=utf8
#数据库是gbk,则导入时
mysql -uroot -ppasswd <d:\aa.sql --default-character-set=gbk
做数据恢复的时候,发现本地通过mysqldump导出的数据,在服务器上通过source导入数据的时候,在导入的一部份数据的时候,就会报这样的错误:
ERROR 2005 (HY000): Unknown MySQL server host 'mysql'
然后就退出mysql的登陆。
1、刚开始以为是数据不完整,又在本地导出一份,再重新还是这样的结果;
2、又怀疑是不是两边创建的数据库编码是不是不同,一看都是是UTF8;
3、有人说是不是MYSQL两边的版本不一致,高版本导出的数据,在低版本导入的时候有可能会报这样的错误,通过“\s”查看,本地的版本是5.1.4, 而服务器上面的是5.1.9,那这应该不是版本的问题了,因为通常来说低版本导出来的数据,在高版本上都能够被导出;
4、后来我再仔细看一下,两边的编码设置,我发现我本地MYSQL的客户端及服务端设置的编码都GBK,而服务端是默认的latin,怀颖是这个问题,于 是找到my.cnf,在[client]及[server]下面都增加默认字符显示指定:default-character-set=gbk,于是重新 导入数据,这个成功了。
出现这个问题,通常来说是主要是两种可能:
1、一是高版本导出来的数据,在低版本上面导入;
2、编码的问题,确保需导入的数据的服务端和客户端的编码与导出数据的服务端和客户端的编码保持一致,或者兼容,如导出是GB2312,导入的数据库编码可是GB2312或者GBK。
在CMD 下 输入: Mysql -u root -p --default-character-set=utf8 database
注:出现这种错误一般是由于备份数据的字符集和恢复时使用的字符集不一致所致,常用的两种字符集是 UTF8 GBK 看下导出的时候,有没有指定字符集,如果没有,就看一下默认的 然后导入的时候指定 如:
/usr/local/mysql/bin/mysql -uroot -p123456 --default-character-set=latin1 aa < ./aa.sql
使用source导入外部sql文件:
mysql> source F:\php\bookorama.sql;
Unknown command '\b'.
ERROR:
Failed to open file 'F:hp\bookorama.sql', error: 2
居然报错, 仔细分析错误原因,发现文件路径已经出现问题:F:hp ,而原本文件的路径是F:\php, 于是想到反斜杠被当成转义字符处理了。。所以再次尝试使用双斜杠来导入外部文件:
mysql> source F:\\php\\bookorama.sql;
ERROR:
Unknown command '\\'.
ERROR:
Unknown command '\\'.
Query OK, 0 rows affected (0.09 sec)
Query OK, 0 rows affected (0.09 sec)
Query OK, 0 rows affected (0.09 sec)
Query OK, 0 rows affected (0.08 sec)
查看结果:
mysql> show tables;
5 rows in set (0.00 sec)
虽然报错,但执行任然成功了的。。
于是第一时间向度娘求助:问题的解决方法如下:
引用地址:http://blog.chinaunix.net/uid-10449864-id-3369246.html
今天在还原Discuz备份数据库的时候,遇到一个问题。原来的服务器环境使用的windows,然后使用phpmyadmin备份出来的数据库怎么也不能在linux下的数据库中导入。
导入的时候出现下面的错误:unknown command '\'
后来发现phpmyadmin连接windows上的数据库,导出时使用的是utf8编码,而我linux本机连接mysql(my.cnf)用的是gbk编码。这样一来,备份文件恢复的时候可能就出现了格式错误。后来在导入的时候指定字符集 --default-character-set=utf8,再次导入备份文件,一切顺利。命令如下:
mysql -uroot -p --default-character-set=utf8 test_server < test_service.sql
引用地址:http://blog.csdn.net/vebasan/article/details/7619911
sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。基本步骤如下:
1、创建包含sql命令的sql脚本文件
文件中包含一些列的sql语句,每条语句最后以;结尾,文件内容示例如下:
--创建表,使用“--”进行注释
create table 表名称
(Guid Varchar(38) not null primary key,
Title Varchar(255),
) TYPE=InnoDB;
--在表A中增加字段Status
alter table A add Status TinyInt default '0';
--在表A上创建索引
create index XX_TaskId_1 on A(Id_);
--在A表中添加一条记录
Insert into A (Id,ParentId, Name) values(1,0,'名称');
--添加、修改、删除数据后,有可能需要提交事务
Commit;
2、执行sql脚本文件
方法一
使用cmd命令执行(windows下,unix或linux在的其控制台下)
【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】,示例:
D:\mysql\bin\mysql –uroot –p123456 -Dtest
注意:
A、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
B、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<【sql脚本文件路径全名】
方法二 进入mysql的控制台后,使用source命令执行
Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】,示例:
source d:\test\ss.sql 或者 \. d:\test\ss.sql