MySQL、PostgreSQL、MSSQL、Oracle以及其他数据库服务器
版本:ver 2.1      最后修改:2011-3-9 18:08     原创文章,转载请注明出处:http://blog.jiqila.com/



本篇文章是该系列文章的第二版,第一版见《FreeBSD 8.0安装PostgreSQL 8.4.x》



  打算将来做的.NET项目所使用的数据库由MS SQL Server转换到PostgreSQL上来,所以安装PostgreSQL是必须的。PostgreSQL在FreeBSD上的编译安装要比MySQL麻烦一些,现将过程记录下来,备忘,顺便给需要的朋友作为参考。

  本次安装所使用的系统及软件版本如下:
引用
FreeBSD 8.2 Release amd64
PostgreSQL 9.0.3


  1、因为我安装FreeBSD时,使用的是CD盘,并且是最小化安装,除了基本系统外,仅多安装了ports,因此安装前需要做一些准备工作。
引用
cd /usr/ports/ftp/wget
make install clean

cd /usr/ports/devel/gmake
make install clean

cd /usr/ports/devel/bison
make install clean

cd /usr/ports/textproc/flex
make PREFIX=/usr install clean

rehash


  2、编译安装PostgreSQL 9.0.3
  前几天MySQL 5.5.x 随着 5.5.8 版本的发布,开始进入正式版。大家可以尝试将 MySQL 5.5.x 应用于生产环境。但是有一点需要注意的是,与 MySQL 5.5.7rc 及之前的 5.5.x 版本不同的是,从 MySQL 5.5.8 开始,需要用cmake来进行源码的编译了。编译过程与之前没有本质的区别,但是却要直观得多。

  编译的步骤大概如下:

引用
wget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.8.tar.gz
tar zxvf mysql-5.5.8.tar.gz
cd mysql-5.5.8
cmake -i

#会出现一些参数选项让你输入,比如安装路径、数据路径、是否安装何种数据引擎等等,可根据自己的需要进行选择与输入。

make
make install


  等有时间了,写一篇FreeBSD 8.1 + MySQL 5.5.8 + PHP 5.3.4 + nginx 0.9.x 的搭建步骤的文章。

  顺便说一下,在mysql主页上找不到 mysql 5.1.54 源码的下载了,但是不用着急,其源码还是存在的,其中一个镜像的地址如下:

引用
ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.1/mysql-5.1.54.tar.gz


Tags: , , ,

升级phpMyAdmin的方法

[不指定 2010/08/16 11:42 | by 袁旭东 ]
  昨天看到有人在网上问,如何升级phpMyAdmin。phpMyAdmin并没有提供升级程序,也没有提供补丁程序,那么该如何升级呢?是否只要将下载下来的新版本解压后,完全覆盖原来的程序呢?我想这可能也是许多人想要问的问题。

  首先,我要说的是,千万不要将下载下来的新版本phpMyAdmin覆盖原来的旧程序。

  那么接下来我就以一个实例来说明如何升级,其实相当的简单。我们以phpMyAdmin 3.3.4升级到3.3.5为例。假定,原网站目录为/data/php/www/myadmin/
引用
cd /data/php/www/
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.3.5/phpMyAdmin-3.3.5-all-languages.tar.gz
tar zxvf phpMyAdmin-3.3.5-all-languages.tar.gz
mv phpMyAdmin-3.3.5-all-languages myadmin-3.3.5
cp /data/php/www/myadmin/config.inc.php /data/php/www/myadmin-3.3.5/
mv myadmin myadmin-3.3.4
mv myadmin-3.3.5 myadmin


  重新打开网站,登录后就可看到版本已经变为新版本了。

Tags: ,
  当在另一台服务器恢复数据库时,用管理工具无法将登录名与用户关联,只能用SQL来实现,具体如下。

引用
use 数据库名
exec sp_change_users_login 'update_one','用户名','登录名'


  本来想升级一下服务器上的MySQL,但是到make的时候,编译报错。提示是源码的语法错误,也许是开发版本的原因吧,开发者并未在FreeBSD下测试。FreeBSD用户想要升级MySQL到5.5.x的话,只有耐心的等待了。或者更新ports后,以ports方式安装MySQL。当前ports中MySQL 5.5.x最新版为MySQL 5.5.4-m3。

  更新ports的方法:
引用
portsnap fetch extract
portsnap fetch update

Tags: ,
  今天遇到要统一修改SQL Server 用户对象,包括表、视图、存储过程、函数的所属架构,一个一个修改太麻烦,所以就写了一个存储过程,记录如下。

  首先是建立新的用户和新的架构,然后执行以下SQL:

引用

declare @obj_name varchar(128)
declare @schema_sql varchar(256)
declare @count int
declare @i int

create table #temp_table
(
    id int IDENTITY (1,1) not null,
    obj_name varchar(128)
)

insert into #temp_table (obj_name) select '旧架构.'+name from sysobjects where (xtype='P' or xtype='U' or xtype='V' or xtype='F') and status>=0

set @i = 1
select @count = count(*)+1 from #temp_table

while(@i < @count)
begin
    select @obj_name=obj_name from #temp_table where id=@i
    set @i = @i + 1
    set @schema_sql = 'ALTER SCHEMA 新架构 TRANSFER ' + @obj_name
    exec (@schema_sql)
end

drop table #temp_table


  注意其中的红色粗体字,是需要根据自己的情况修改的。

FreeBSD 8.0安装PostgreSQL 8.4.x

[不指定 2010/01/07 18:43 | by 袁旭东 ]
本系列文章已有第二版,见《FreeBSD 8.2编译安装PostgreSQL 9.0.x》



  最近准备做一个使用PostgreSQL的项目,当然要在服务器上安装PostgreSQL了。安装要比MySQL麻烦一些,现记录如下。

  1、编译安装PostgreSQL 8.4.2
引用
wget http://wwwmaster.postgresql.org/redir/391/f/source/v8.4.2/postgresql-8.4.2.tar.gz
tar zxvf postgresql-8.4.2.tar.gz
cd postgresql-8.4.2
./configure --prefix=/usr/local/pgsql
make
make install
  我刚刚安装好MySQL后,是支持innodb引擎的,可是当我将缺省的my.cnf做了修改以后,发现innodb不可用了。查看错误日志,显示 innodb日志文件大小不合适。遂删除之,并重启MySQL后,依然无法开启innodb。一气之下,干脆执行了以下操作:
引用
cd /home/mysql/data/
rm ib*
/usr/local/mysql/mysqld restart

  问题解决,innodb可用了。不知道在生产环境中,如果更改了innodb相关参数,是不是也要删除innodb相关数据文件,如果真是那样的话就太糟了。改天在模拟生产环境中试试。
Tags: ,
  偶然在网上看到一个数据库转换工具 ESF Database Convert(ESFDC),看介绍支持很多种主流数据库,下载下来看看。我下载的是5.9.62专业版,使用之后感觉非常好。之前我还想着自己写一个Sql Server 转 MySQL的工具呢,现在看来不需要了。

  ESFDC支持的数据库有MySQL、PostgreSQL、Oracle、SQL Server、IBM DB2、FireBird / InterBase、MS Access、Visual FoxPro、FoxPro / dBase、Excel、SQLite等,还有很多,懒得写了,支持的是相当全面了。而且使用起来也非常简单。

  大家可以到网上Google一下,注册码网上也有,下面是我搜到的注册码:
引用
姓名(Name):3ddown
组织(Organization):3ddown
邮箱(Email):3ddown@3ddown.com
序列号(Serial):B0D62136C04AEEE2C03A
  大家都知道,MySql里面有一个存储引擎是Memory,使用此引擎的表将会在MySql服务开启时将表结构创建到内存当中,以后对该表的操作都是直接对内存的操作,而数据也是始终储存在内存当中的。当MySql服务关闭或者重启后,内存表以及表数据都会被清除掉。内存表在某些场合使用是非常合适的,比如高速缓存,比如做为令牌的临时存储等。

  内存表有这些好处,但遗憾的是,网站常用数据库之一的Sql Server就不支持内存表,虽然它有变量表(表变量),但是那也仅仅是临时创建到内存当中,而且只能使用于一小段周期,周期过后就不存在了,而内存表是要求就和普通表一样,只是存储于内存而已,生命周期是数据库服务开启与关闭的周期,也就是和数据库服务生命周期是一致的。使用MySql时间越久,越觉得 Sql Server差劲,虽然不能说它垃圾,但是和MySql比起来它已经离垃圾不远了。grin

  今天我突然有了一个想法,就是做一个代理软件,来作为Sql Server的代理,所有对Sql Server的请求都经过此软件转发给Sql Server,只是当遇到内存表请求时,不转交给Sql Server,而是自己处理。我大概设想了处理流程,如下图。
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]