最近一个项目是基于discuz的东西做二次开发,总所周知,Discuz的东西是那个猛啊,完全是面向过程的写法,不过效率超级高,完全是 PHP+MySQL的经典之作,但是......这个客户以前的系统用的是MSSQL,他要我们把Discuz从MySQL迁移到MSSQL,那个囧啊。
要知道俺已经不用MSSQL很多年了,印象中还停留在SQL Server2000上,现在是要重新学一下2005了。
鉴于这个迁移很有挑战性,我觉得很有必要把途中遇到的东西记录下来,并不断更新,方便自己和需要的同学用。
下面开始了:
一、数据库迁移规则
1. SQL Server不支持UTF-8,多国语言字段请使用unicode的nchar, nvarchar类型。
2. MySQL中的smallint值范围是0~65535,SQL Server中换用int值范围(-2,147,483,648)到(2,147,483,647)
3. MySQL中的mediumint值范围是0~16777215,SQL Server中换用int值范围(-2,147,483,648)到(2,147,483,647)
关于"MySQL"的文章
今天在把东西部署到Linux测试服务器的时候,FleaPHP报错:
SQL 错误消息: "Table 'www.sym_taginfo' doesn't exist" SQL 语句: "SHOW COLUMNS FROM `sym_taginfo`" SQL 错误代码: "7335941".
搞了好久都不知道是为什么,后来看到'www.sym_taginfo'时才发现不对劲,因为sym_taginfo表其实是在另外一个数据库中的,这里怎么会跑到www这个数据库中呢?
原来FleaPHP的两个dsn使用同样的用户名连接数据库时,实际上就共享了同一个mysql连接,这时就可能出现找不到数据表的情况。
错误提示:
InnoDB: Unable to lock ./ibdata1, error: 11
解决:
ps -ef|grep mysqld ,杀死僵死进程
然后重新启动mysql
---------------------------------------------------------------------------------
错误提示:
error while loading shared libraries: libssl.so.0.9.8:
解决:
更新db,openssl
pacman -S db ,openssl
这样就不会出现找不到连接库文件了
---------------------------------------------------------------------------------
PHP-CMS的发展方向:简单,易用,美观
看点1,服务器一键安装,鼠标点点就搞定:输入数据库参数,在服务器上点一个按钮就完成全部的安装。简单配置一下网站的属性,设置一下广告, ctrl+c 和 ctrl+v 复制粘贴几篇文章,一个网站就出来了。
看点2,本地安装,直接发布到服务器:在你自己的机器上安装好此CMS,本机调试,生成HTML,此系统自带FTP发布功能(当然还有同步之类的功能),将生成的HTML文件同步到虚拟主机空间上。OK,这就结束了。
java操作数据库一般要经过加载驱动程序类,建立数据库连接,创建Statement对象,执行SQL,关闭Statement对象,关闭数据库连接几个过程。
1.加载驱动程序类:
java中加载数据库驱动是通过DriverManager 来完成的,DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。 另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和 跟踪消息的显示等事务。DriverManager 类包含一列 Driver 类,它们已通过调用方法 DriverManager.registerDriver 对自己进行了注册。所有 Driver类都必须包含有一个静态部分。它创建该类的实例,然后在加载该实例时 DriverManager 类进行注册。这样,用户正常情况下将不会直接调用 DriverManager.registerDriver;而是在加载驱动程序时由驱动程序自动调用。加载 Driver 类,然后自动在 DriverManager中注册的方式有两种:
一、 web2.0网站常用可用性功能模块分析
二、 Flickr的幕后故事
三、 YouTube 的架构扩展
四、 mixi.jp:使用开源软件搭建的可扩展SNS网站
五、 Technorati的后台数据库架构
六、 通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建
七、 从LiveJournal后台发展看大规模网站性能优化方法
八、 说说大型高并发高负载网站的系统架构
一、 web2.0网站常用可用性功能模块分析
Web 2.0网站是指将传统的网站构架(平台、内容源、用户、传播方式等)转化到以用户为核心的网站构架上来,包括一系列体现web2.0概念的元素、定位和创意。web2.0网站在构架上须体现两大宗旨,即强大的后台系统和简单的前台页面,也即提供良好的用户体验,体现以人为本,技术服务人类的宗旨。
今天在升级转换数据的时候学到一MySQL的函数:CONCAT。它可以将多个字符串连接成一个字符串,以下是手册上的讲解:
-----------------------------
CONCAT(str1,str2,...)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
绝对没有看错,一个名叫PAMP的套件将有机会被安装在装有S60操作系统的手机上,这个套件包含Personal Apache, MySQL, PHP。而且还会提供特别的PHP扩展来访问S60的内核应用。到时候,嘿嘿……
这是原文报道截图:

最新评论