问题出现时的环境是这样的:p4d位于Linux服务器中,
切换Unicode模式的方法很简单,就是通过p4d命令行,在当前路径为P4ROOT的位置执行p4d -xi,成功的话会得到会在unicode mode运行的提示,显然这个操作在刚建好P4ROOT时执行是100%没问题的,但如果是在已经使用了一段时间的root中执行,往往就会因为有过非Unicode编码文字的操作而导致类似这样的错误:
Table db.user has 14 rows with invalid UTF8.
Table db.domain has 1 rows with invalid UTF8.
…
这时就需要对root中的数据库信息进行手动编码转换了:
首先要停掉p4d服务,可以使用行p4 admin stop来完成,这里如果没有设置过连接环境变量参数的话,可以先执行p4 -p 192.168.0.1:1666 -u username login,输入账号username对应的密码进行登录验证,成功后再执行p4 -p 192.168.0.1:1666 -u username admin stop来关掉服务。
下一步需要创建checkpoint备份,命令行如下:p4d -r root -jc,其中root是实际p4root文件夹所在路径,执行后会创建checkpoint.x和checkpoint.x.md5两个备份文件以及更新journal.x的信息。需要手动修改的就是checkpoint.x这个文件中的文本编码,我用的是windows下的programmer’s notepad直接修改文件编码为
文字加密小工具v3
请输入要加密的内容
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用