YOYO的最新BLOG文章

May
30

今天客户定制了一台Linux的VPS,里面已经安装了apache,但是php和mysql都没有安装,于是我又安装又配置,最后发展真的是够麻烦的,后来我的哥们ppopcn说你还不如全部卸载了,直接用yum命令一块安装上呢,我想也倒是,那样还简单。

1、首先得用yum remove命令把先前安装的都删除,命令是:yum remove httpd,其他的卸载类似。

2、卸载完毕之后,执行如下命令来安装httpd和它的相关扩展支持:yum install ntp httpd mysql-server php php-mysql php-mbstring rpm-build gcc mysql-devel openssl-devel cyrus-sasl-devel pkgconfig zlib-devel phpMyAdmin pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel postfix

3、然后执行命令来安装php和相关的扩展支持:yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mhash php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel phpmyadmin

执行完上面这两个命令之后,我们想要的很多服务就都安装上了,启动一下httpd和数据库系统就ok了。

Tags: , , , ,
Posted in Server
Apr
20

Linux(CentOS)卸载apache php mysql

Comments Off | 1,454 views

卸载apache
[root@server ~]# rpm -qa|grep httpd
httpd-2.2.3-11.el5_2.centos.4
httpd-manual-2.2.3-11.el5_2.centos.4

说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,我上面的例子是Linux默认安装apache的rpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。

比如:在这个例子中,我们应该先卸载httpd-manual-2.2.3-11.el5_2.centos.4方法如下:

rpm –e httpd-manual-2.2.3-11.el5_2.centos.4

php和mysql的卸载和apache的卸载方法一样。

注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。

如果实在有卸载不掉的包,可以加—nodeps这个参数来卸载,比如我们卸载httpd-manual-2.2.3-11.el5_2.centos.4,实在卸载不掉了。就用:

[root@localhost ~]# rpm -e httpd-manual-2.2.3-11.el5_2.centos.4 –nodeps

Feb
09

今天在为数据库中的某两个字段设置unique索引的时候,出现了Specified key was too long; max key length is 1000 bytes错误,经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。

建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
举例能看得更明白些,以GBK为例:
CREATE UNIQUE INDEX `unique_record` ON reports (`report_name`, `report_client`, `report_city`);
其中report_name varchar(200), report_client varchar(200), report_city varchar(200)
(200 + 200 +200) * 2 = 1200 > 1000,所有就会报1071错误,只要将report_city改为varchar(100)那么索引就能成功建立。
如果表是UTF8字符集,那索引还是建立不了。

Tags: ,
Posted in PHP | MySQL
Jan
25

SUN收购MySQL已经好几天了,这几天对PHP程序员来说,似乎一切都是这么突然,而我老却感觉哪里不对劲似的。

MySQL是最大的开源数据库系统,有着庞大的用户群体,几乎每一个使用过PHP的人都曾用过这个数据库。一直以来,MySQL都以最易学的数据库来标榜着自己,据说最快十分钟就可以入门,所以它成为了最成功的开源数据库系统。

开源并不等于不盈利,MySQL后来也推出企业版本,而且盈利颇丰。而最近这次收购,也开创了开源软件历史上第一个开源收购案,这也是一个历史的突破,就是不知道这次突破是好还是不好。

说到这次收购,总要说一点利弊:对于有利的方面我实在没看出来,唯一一点值可能就是找到了一个强大的公司来支持,对于不利的方面嘛,这要看SUN到底要对MySQL做什么了,如果仅仅是一些产品上的整合也许会更好一些,而如果是对其动大手笔的话,那不见得是一件好事。

到底这次收购是利大于弊,还是弊大于利呢,让我们拭目以待吧。

Tags: , ,
Posted in 想说就说
Nov
30

前一段时间我写过一篇在Windows上安装Apache+PHP+MySQL的博客,而最近由于要配置一台服务器,我又不得不在Windows2003下的IIS6.0上配置了一下PHP+MySQL的环境。这次配置和两年前在Windows2000上配置相比,还是有一些的差别,网上关于这方面的资料不少,而是莫衷一是的东西太多,所以写就此文,希望能对看到此文的朋友有所帮助。

一、安装环境
操作系统是 Windows 2003 英文版+IIS 6.0, PHP, MySQL 的最新版本是截止到 2007.09.07,分别在其官网下载的:
* PHP 5.2.5 (Windows Binaries PHP 5.2.5 zip package): http://www.php.net/downloads.php
* MySQL 5.1 Windonws: http://dev.mysql.com/downloads/

二、由于Windows 2003默认安装了IIS6.0,所以安装这步省略。

三、在Windows 2003下安装 MySQL 5.1
MySQL 的安装比较简单,它提供了一个 win32 的安装包。下载后根据提示一路next安装即可。安装完成后,会问你要不要到官网注册,跳过即可。然后会问你是否 Configure the MySQL Server now,选中并继续,然后根据提示,设定 字符集,以及 root 管理员的密码即可。

四、在 Windows 2003 下安装 php 5.2.5
1. 将下载的 php 5 ZIP 包直接解压,我直接将 PHP 5.2.5 zip 文件解压到 C:\php 目录下面。安装 php 不建议使用 win32 安装程序(主要是以后安装扩展麻烦)。

2. 在资源管理器中进入 php 的安装目录,将 php.ini-recommended 复制一份,命名为 php.ini。然后打开 php.ini。

3. 找到:

;extension=php_mysql.dll

将前面的 ; 号去掉, 改成:

extension=php_mysql.dll

4.找到:

extension_dir = “./”

将其改为你的 php 安装目录下 ext 子目录的绝对路径。例如我的:

extension_dir = “C:/php/ext/”

这步很重要 。否则接下来 php 会找不到 php_mysql.dll 模块,无法装载。

然后把php.ini复制到Windows目录下面,把libmysql.dll复制到Windows下面的System32目录。这个地方很多文章说把php5ts.dll也复制到system32目录的,而经过我的测试发现,不用复制也是可以的(有不同看法的可以在下面提出来)。

阅读全文 ->

Tags: , , , ,
Posted in Server
Nov
23

今天的这篇文章用来讨论如何解决导入mysql大数据文件的问题,其实说的简单了就是一条SQL语句,而如果你是一名SQL高手,那完全可以略过此文。

对于经常使用MYSQL的人来说,phpmyadmin是一个必备的工具。这个工具非常强大,几乎可以完成所有的数据库操作,但是它也有一个弱点,对于往远程服务器上导入较大的数据文件的时候会速度奇慢,甚至出现长期没有响应的情况。

为什么会出现这样的情况呢?当我们选择一个sql数据文件并提交的时候,服务器首先要先把文件上传到服务器,然后才会执行导入代码把数据导入到数据库。我们知道phpmyadmin是通过web方式上传的数据文件,而web方式上传是很不稳定的,尤其是网速慢的时候,这就是为什么我们会有那么多次在电脑前面苦苦等待而最终却没有结果的原因。

通过上面的分析,我们知道这个问题是出在web上传而非导入程序,所以如果能避免通过web上传这个问题就好办了。我们可能会想到那功能强大的ftp上传工具,可是phpmyadmin无法选择远程路服务器上的文件,这是很郁闷的。

这里我们要放弃phpmysqladmin,通过mysql语句来导入数据库。很多人会纳闷怎么来执行SQL语句,这是一个关键的问题,这需要你的空间支持SSH(Secure Shell Protocol),并且你还得会一些linux命令
阅读全文 ->

Tags: , ,
Posted in PHP | MySQL
Oct
25

今天遇到一个挺有意思的现象,在使用phpmyadmin管理mysql数据库的时候,发现执行一条sql语句的时间竟然是-0.0000秒。我就奇怪了,0秒就0秒吧,怎么弄出个负0来啊?再怎么说sql语句的执行时间也不可能是负数啊,这phpmyadmin的程序是基于啥计算的呢?截图如下:

phpmyadmin计算的mysql执行时间

不知道这算不算phpmyadmin的一个bug,不过这个bug是挺难发现的,我是才换了新机器,而且是连着点了很多次才出现这么一次,最多也不会大于十分之一的概率。

我平时计算mysql的执行时间一般用microtime()函数来计算,不过用这个函数怎么计算也不会得到负数的啊,真不知道phpmyadmin是怎么计算的,有时间真该研究研究。

Tags: ,
Posted in PHP | MySQL
Oct
21

关于MySQL乱码的一点思考

Comments Off | 1,468 views

最近很多朋友说他的MySQL数据库里面的数据是乱码,读取出来在页面显示也不正常,这可能是很多学习PHP操作数据库的时候遇到的一个问题,当然英文除外。

对于这个问题,有两种情况需要说明一下:

第一、写入数据库和读取数据库的页面编码要一致。例如写入的时候页面的编码是UTF8,那读取的时候你也要用UTF8编码的页面显示,这样就不会出现乱码了。这种情况下最好把数据库里面的编码设置为utf8-general-ci,因为这种情况数据在数据库中是乱码的,但是显示出来是正常的,所以设置为别的编码的时候容易出现写入失败。

第二、连接数据库的时候添加mysql_query(“SET NAMES 编码”);。例如写入的时候想用UTF8,则在连接数据库之后添加mysql_query(“SET NAMES UTF8″);,这样所有的数据写入和读取都是以UTF8编码进行的,所以这种情况下数据库中的数据也是正常的,而且这种情况不容易出现错误。

对于这两种情况,我觉得首先得记住第一种,就是写入和读取的时候一定要保证页面的编码相同,这也是第二条的一个基础,然后再记住mysql_query(“set names 编码”);这条语句,这样在你的非英文页面中就不会出现乱码了。

Tags: ,
Posted in PHP | MySQL, 刀光剑影