今天在做数据恢复的时候,发现本地通过mysqldump导出的数据,在服务器上通过source导入数据的时候,在导入的一部份数据的时候,就会报这样的错误:
ERROR (HY000): Unknown MySQL server host 'mysql'
然后就退出mysql的登陆。
1、刚开始以为是数据不完整,又双本地导出一份,再重新还是这样的结果;
2、又怀疑是不是两边创建的数据库编码是不是不同,一看都是是UTF8;
3、有人说是不是MYSQL两边的版本不一致,高版本导出的数据,在低版本导入的时候有可能会报这样的错误,通过“\s”查看,本地的版本是5.1.4,而服务器上面的是5.1.9,那这应该不是版本的问题了,因为通常来说低版本导出来的数据,在高版本上都能够被导出;
4、后来我再仔细看一下,两边的编码设置,我发现我本地MYSQL的客户端及服务端设置的编码都GBK,而服务端是默认的latin,怀颖是这个问题,于是找到f,在[client]及[server]下面都增加默认字符显示指定:default-character-set=gbk,于是重新导入数据,这个成功了。
出现这个问题,通常来说是主要是两种可能:
1、一是高版本导出来的数据,在低版本上面导入;
2、编码的问题,确保需导入的数据的服务端和客户端的编码与导出数据的服务端和客户端的编码保持一致,或者兼容,如导出是GB2312,导入的数据库编码可是GB2312或者GBK。