《 空中接口学园 》
>>   站务
>>>>  【读懂通信】网站迁移过程的一些经验

--  作者:tom
--  发布时间:2021-08-22 20:46:12
随着【读懂通信】网站的迁移,原来的后台数据库也面临着迁移,从Access到MySQL。

  Access是Windows平台的标配,这么多年用下来,对小型网站来说,还是很方便的,备份也是简单的数据库文件的备份。

  MySQL则是Linux平台的标配,好几年前就在工作中用到,但是从来没有想过在网站上应用,主要是需要改代码。

  前面说过,这次网站迁移不小心把平台也迁移成了Linux系统,Linux系统上没法用access,于是就霸王硬上弓,不得不从Access迁到MySQL了。


--  作者:tom
--  发布时间:2021-08-22 20:54:15
1. 数据迁移
     首先是进行数据库迁移,用到了两个工具:
     一个是db2mysql.exe,将数据表的内容导出为sql文件;
    另外一个是CSDTools2000.mda,导出access的表结构。当然,事情还不算完,还要根据access的表结构,生成mysql表的对应sql语句。
   其中比较麻烦的是字段类型的转换,比如MEMO要转换为TEXT,INT要转换为SMALLINT等等,最后我用excel生成了建表的sql语句。

   有了建表的sql语句以及内容的sql文件后,利用MySQL的客户端,就实现了数据库的迁移,总体感觉还比较顺,可能是Access数据库里面的表格数量不多。


--  作者:tom
--  发布时间:2021-08-22 21:07:45
2. 字符集的选择
   开始时没注意,后来发现是个大问题,并经历了先改UTF8再改回GBK的大返工。

   之所以一开始要改UTF8,因为Linux平台用的是UTF8的字符集,PHP脚本从MYSQL数据库里面取出来的文本采用了UTF8的字符集,PHP脚本不用UTF8的字符集就会显示乱码。

  然而,在Windows平台下,HTML文件格式缺省都是GBK,因此【读懂通信】网站的HTML文件格式也是GBK。

   如果脚本用UTF8,HTML文件用GBK,乱码是无法解决的,只能靠一边。

   考虑到积累的HTML文件比较多,改起来会挂一漏万,还是改脚本方便,前提是MySQL要支持GBK。

   其实,Linux平台的MySQL也是支持GBK的,只需要:
   1. 建表的SQL语句中写一下DEFAULT CHARSET=gbk
   2. 表格内容的SQL文件导入前,先采用ANSI格式保存
   3. 创建数据库连接时PHP脚本写一下
         mysqli_query($conn , "set names gbk")

   这样,就可以用GBK的编码方式了,注意PHP脚本最后还得存成ANSI的格式。


--  作者:tom
--  发布时间:2021-08-22 21:12:59
3. 数据库的查询操作
       Access与MySQL的查询操作也是有明显差别的,好在替换的方式是固定的,比较好掌握。MySQL的字段名称大小写敏感,而且不支持数字序号字段,必须完整的字段名。

      在SQL语句方面,目前发现Top N要改成limit N,其他没有什么差别。


目前已经有4条评论    >>> 发表你的见解

Powered by:Old version
Copyright ©2002 - 2019空中接口学园 , 页面执行时间:156.250毫秒