一、简述:
随着PHP+MYSQL构架的逐步流行,现在越来越多的应用程序使用到了MYSQL数据库,凭其简捷高效的特性得到用户一致认可,然而 在使用过程中碰到的数据迁移及编码问题却令很多开发者也头痛不已,更别说普通用户了。
本教程的目的是帮助普通用户尽可能简便的实现MYSQL数据的迁移,也就是由其它虚拟主机服务商迁移到虚机屋的MYSQL数据库中。因其Mysql版本与编码纷繁复杂,所以无法面面俱到,若按此教程操作后还是无法迁移或出现乱码问题,请与技术员联系获得支持。
1.MYSQL版本问题,软件的每一次升级将带来新的功能,然而却必然出现数据库格式兼容性问题,要完全弄清所有版本是一件困难的事情,但我们必须至少了解现在使用的数据库的版本号是3.X还是4.X还是5.X,另外4.1和4.0的格式也截然不同。
2.编码问题。4.1(不含4.1)以前的数据库默认编码是lartin,而之后默认都是utf8了,但常用的却是GBK,编码涉及的环节太多。有网页,连接,存储,查询等等,任何环节编码不一致都会造成乱码。要在不同平台,不同版本之间迁移数据,是否会出现乱码那就得看运气了。
二、迁移前的准备:
1.获知原服务商提供的数据库服务器IP,数据库用户名,数据库密码,版本号以及是否允许远程连接。
若原数据库并不支持远程连接,则请将“帝国备份王”上传到您原空间后再按下边的提示操作,备份成功后您需要将“帝国备份王”所在目录全部下载并上传到我公司的虚拟主机中,再按“数据恢复”的步骤进行操作。
2.在我们公司开通MYSQL数据库,此时您将获取我公司提供的数据库服务器IP,数据库用户名,数据库密码等信息。
开通的时候一定注意版本号,若以前的是5.X的,则必须在虚机屋选择5.X的数据库,否则转移将会失败
3.您至少在我们公司有一个虚拟主机。
三、操作细节
工具的好坏,决定了数据迁移的质量,我们此处推荐一款PHP程序开发的备份与还原工具,帝国备份王,他功能很简单。备份数据或恢复数据,但因具备良好的编码及版本自动识别转换功能,所以在解决乱码上将给我们提供莫大的助益。所以迁移的过程也就是操作此软件的过程。
1.软件的安装(均假设您在我司已经开通了虚拟主机)
a)登录我司网站,进入管理中心,并点击虚拟主机管理,找到远程文件下载(图1)
b)"下载后存放路径"保持默认的/wwwroot/不变,在“添加下载任务”前填写“网址/xxx.rar并点击“添加下载任务”,稍后按F5刷新页面,直到“下载状态”变为“下载完毕”,其过程估计需要5-10分钟左右(图2)
c)文件下载完毕后,进入主机管理中的“压缩/解压”(图3)
d)在“压缩文件”处选择刚才下载的文件“ebak.rar”,解压路径默认不变,“/wwwroot/”,并点击解压缩。(图4)
e)经过以上几步,理论上输入http://虚拟主机对应三级域名/ebak应该出现以下界面,若不是,请核实以上操作是否成功。此举目的是安装PHP程序“帝国备份”,若您自行到互联网上下载并通过FTP上传,效果是一样的(图5)
2.软件配置
输入三http://虚拟主机域名/ebak后(如上图),在用户名处填写:admin,在密码处填写123456,点击登陆,系统将自动进入“数据库设置”界面(图6)。
数据库设置信息必须填写正确,否则将无法成功迁移数据,其中重点项目已经用红线标注。
1.MYSQL版本:必须选择正确。若不清楚版本号需要联系原服务商获取。比如您MYSQL的版本号是MYSQL5.0.22,则应该选择 MYSQL5.*
2.数据库服务器:您在原来服务商处的数据库IP地址,不清楚可咨询服务商,并且必须保证该数据库允许远程访问。
3.数据库用户名:原数据库的MYSQL登录名
4.数据库密码:原数据库登录密码。
5.默认备份的数据库:填写原MYSQL数据库名。
填写完成后点击“提交”,若提示“设置参数成功”,则证明填写的信息正确。若提示无法连接到服务器,则有可能您输入的服务器地址或密码等信息有误,再或者原MYSQL是5.0的,但在我们公司却开通了MYSQL4.0的虚拟主机。
3.备份数据
当参数设置成功后,点击“帝国备份”左侧的“备份数据”,将会进入“备份参数设置”页,此时参数虽多,但几乎您不需要更改任何东西,唯一需要做的只是记住备份目录就行了,最后点击“开始备份”即可。(图7)
4.设置要恢复的数据库信息
当提示“备份完毕”后,就需要将已经成功备份的数据恢复到新的数据库中了。点击“帝国备份”软件左侧的“参数设置”,将我公司给您分配的MYSQL数据库的相关信息填写进去即可。(图8)
填写完成后点击“提交”,系统将提示“设置参数成功”
5.恢复数据
当新的数据库信息设置完毕后,点击左侧的“恢复数据”,选择刚才备份的目录,并点击“开始”恢复即可(图9)
当系统提示“数据还原完毕”时,则证明数据迁移已经完成,将您在我们公司虚拟主机中的程序数据库连接信息改为新信息后(常见PHP程序的数据库连接信息修改细节见附录),应该打开网站试试,若能正常打开,则说明数据迁移成功;若打开网页是乱码,则说明本教程对您没有帮助,请尝试通过其它方式迁移;若无法打开,则有可能您连接信息设置有误,请联系我司客户给您提供必要帮助。
附录:常见php程序的MYSQL连接文件信息:(所有路径均相对于程序的安装目录,修改信息的时候切记不要删除两边的引号,推荐使用我司“文件管理”功能去修改)
1.shopex4.8
配置文件路径:
\config\config.php
配置信息
define('DB_USER', 'MYSQL登录用户');
define('DB_PASSWORD', 'MYSQL密码');
define('DB_NAME', '数据库名');
define('DB_HOST', '服务器地址');
2.shopex4.7
配置文件路径
\include\mall_config.php
配置信息
$dbHost = "服务器地址";
$dbName = "数据库名";
$dbUser = "MYSQL登录用户名";
$dbPass = "数据库密码";
3.discuz
配置文件路径
/uc_server/data/config.inc.php
/config/config_global.php
/config_ucenter.php
配置信息
$dbhost = '服务器地址'; // 数据库服务器
$dbuser = '数据库名'; // 数据库用户名
$dbpw = '数据库密码'; // 数据库密码
$dbname = '数据库名'; // 数据库名
4. phpwind
配置文件路径
\data\sql_config.php
配置文件信息
define('DB_USER', '数据库用户');
define('DB_PASSWORD', '数据库密码');
define('DB_NAME', '数据库名');
define('DB_HOST', '数据库地址');
5.PHPCMS
配置文件路径
\config.inc.php
配置文件信息
$CONFIG['dbhost'] = '数据库主机';
$CONFIG['dbuser'] = '数据库用户名';
$CONFIG['dbpw'] = '数据库密码';
$CONFIG['dbname'] = '数据库名';
6.DEDECMS
配置文件路径
\include\config_base.php
配置文件信息
$cfg_dbhost = '服务器地址';
$cfg_dbname = '数据库名';
$cfg_dbuser = '数据库用户';
$cfg_dbpwd = '数据库密码';
7.ECSHOP
配置文件路径
\data\config.php
$db_host = "数据库地址";
// database name
$db_name = "数据库名";
// database username
$db_user = "数据库用户名";