Firebird Documentation Index → Firebird 3 Quick Start → Installing Firebird |
The instructions given below for the installation of Firebird on Windows and Linux should be sufficient for the vast majority of cases. However, if you experience problems or if you have special needs not covered here, be sure to read the Release Notes. This is especially important if you are upgrading from a previous version or if there are remnants of an old (and maybe long gone) InterBase or Firebird installation floating around your system (DLLs, Registry entries, environment variables...)
At the Firebird website – http://firebirdsql.org – the installation kits have names like:
Firebird-3.0.0.
(Windows executable installer)bbbbb
_p
_x64.exe
Firebird-3.0.0.
(Windows zip kit for manual installation)bbbbb
-p
_x64.zip
Firebird-3.0.0.
(Windows executable installer, 32 bits)bbbbb
_p
_Win32.exe
Firebird-3.0.0.
(Linux RPM kit)bbbbb
-p
.amd64.rpm
Firebird-3.0.0.
(Linux compressed tarball)bbbbb
-p
.amd64.tar.gz
Firebird-3.0.0.
(Linux RPM kit, 32 bits)bbbbb
-p
.i686.rpm
Firebird-3.0.0.
(Mac OS-X 64-bit package)bbbbb
-x86_64.pkgetc.
...where bbbbb
is the build number
(32483 for the initial 3.0.0 release) and p
the packaging number (usually 0 or another low one-digit number).
Firebird 3 packages will also undoubtedly wind up in various Linux distributions and their online repositories. These will have their own naming schemes.
It is almost always advisable to uninstall any previous Firebird
installations completely (after you've read the
next paragraph!) and also hunt the Windows system dirs for old copies
of gds32.dll
and
fbclient.dll
. If you're using Linux, the
uninstall scripts should have removed any copies and/or symlinks in
/usr/lib[64]
, but it won't hurt
to look if anything named libfbclient.*
or
libgds.*
is still lying around.
Furthermore, you should be aware that Firebird 3 won't open databases that were created by older versions. So before taking down your existing setup, you should back up all your databases in order that you can restore them later under Firebird 3.
You may also want to back up your old security database
security2.fdb
. Firebird 3 comes with an SQL
script security_database.sql
(located in
misc/upgrade/security
) that will upgrade the old
security database to Firebird 3, preserving all information
except SYSDBA's and except
any passwords. For more information, see Compatibility
Issues :: Upgrading a v.2.x Security
Database in the Firebird 3 Release Notes.
The Firebird server – and any databases you create or connect to – must reside on a hard drive that is physically connected to the host machine. You cannot locate components of the server, or any database, on a mapped drive, a filesystem share or a network filesystem. (Well, you can, but you shouldn't, and this technique isn't covered here.)
You can mount a read-only database on a CD-ROM drive but you cannot run Firebird server from one.
Although it is possible to install Firebird by a filesystem
copying method – such as untarring a snapshot build or decompressing a
structured .zip
archive – it is
strongly recommended that you use the distributed release kit
(.exe
for Windows, .rpm
for
Linux), especially if this is the first time you install Firebird. The
Windows installation executable, the Linux
rpm program and the
install.sh
script in the official .tar.gz
for various Posix platforms all
perform some essential setup tasks. Provided you follow the
installation instructions correctly, there should be nothing for you
to do upon completion but log in and go!
Some installers ask you to choose between Classic, SuperClassic and Superserver mode. What are they?
Classic mode (aka MultiProcess) involves a single listening process that spawns off an additional process for each client connection. Using a locking mechanism, it allows shared connections to database files.
SuperClassic (ThreadedShared) is a single server process. Client connections are handled by separate threads, each having their own database page cache. Other processes (e.g. embedded servers) may open the same database simultaneously (hence the Shared).
Superserver (ThreadedDedicated) is also a single server process with threads handling client connections. There is a single, common database page cache. The server requires exclusive access to each database file it opens (hence the Dedicated).
Each mode is fully stable and there is no reason to
categorically prefer one to the other. Of course you may have your own
specific considerations. When in doubt, just follow the installer
default for now. Changing the server mode later can be done via the
configuration file firebird.conf
and requires a
restart but not reinstallation. The server mode can even be configured
per database (consult the Release Notes for details).
Users of Firebird 2.5 or earlier: please notice that as from Firebird 3, Superserver fully supports the use of multiple processors/cores out of the box, so lack of SMP support is no longer a reason to avoid it.
Make sure you run the installer program as Administrator (i.e. right-click on the executable and choose “Run as Administrator”) or you may run into permission problems later!
On Windows server platforms Firebird will run as a system service by default, but during installation you can also choose to let it run as an application. Don't do this unless you have a compelling reason.
The installer will also ask if you want to enable authorization for legacy (i.e. pre-3.0) Firebird clients. If security is a concern (as it should be), don't allow this or allow it only temporarily while you upgrade your existing clients to Firebird 3.0. The legacy connection method sends passwords over the wire unencrypted; it also limits the usable length of the password to 8 characters.
During installation you have the option of providing a password for Firebird's superuser, SYSDBA. Firebird passwords may be up to 255 bytes long, but due to the nature of the hashing algorithm the “effective length” is around 20 bytes, so it's not very useful to enter a password that's much longer than that. Notice however that if you do enter such a password, you must supply it in its full length every time you connect – it won't work if you truncate it to the first 20 characters!
The Firebird Guardian is a utility that monitors the server process and tries to restart it if it terminates abnormally. During a Windows install, you can opt to use the Guardian when running in SuperClassic or Superserver mode. However, since modern Windows systems have the facility to watch and restart services, there is no reason to use the Guardian if Firebird runs as a service (which it should).
The Guardian may be phased out in future versions of Firebird.
In all cases, read the Release Notes for the Firebird version you're going to install. There may be significant variations from release to release of any Posix operating system, especially the open source ones. Where possible, the build engineers for each Firebird version have attempted to document any known issues.
Aside from being packaged with the download kits, Release Notes for all officially released versions of Firebird can also be found at http://www.firebirdsql.org/en/release-notes/.
If you have a Linux distribution that supports rpm installs, consult the appropriate platform documentation for instructions about using RPM Package Manager. In most distributions you will have the choice of performing the install from a command shell or through a GUI interface.
For Linux distributions that cannot process
rpm programs, and for Unix flavours for
which no .rpm
kit is provided,
use the .tar.gz
kit. Quite
often, installation is just a matter of untarring the archive and
running install.sh
. In some cases, the Release
Notes or packed Readmes may instruct you to edit the scripts and make
some manual adjustments.
Firebird allows the operation of multiple servers on a single
machine. It can also run concurrently with Firebird 1.x or InterBase
servers. Setting this up is not a beginner's task though. If you need to
run multiple servers on the same machine, the second and subsequent
servers must be installed and configured manually. They need to have
different service names and should listen on different TCP/IP ports. The
file install_windows_manually.txt
in the
doc
subdir may be of help if you're doing this on
Windows, but bear in mind that it was written for Firebird 2.1.
Also read the chapter Configuring the Port Service on Client and Server in the Firebird 1.5 (!) Release Notes:
If you want to connect to your Firebird server across a network, then before testing the Firebird server itself you may want to verify that the server machine is reachable from the client at all. At this point, it is assumed that you will use the recommended TCP/IP network protocol for your Firebird client/server connections. (On Windows networks, NetBEUI is also supported.)
The ping command – available on most systems
– is a quick and easy way to see if you can connect to a server
machine via the network. For example, if your server's IP address in
the domain that is visible to your client is 192.13.14.1
, go to a command shell on
the client machine and type the command
ping 192.13.14.1
substituting this example IP address with the IP address that your server is broadcasting. If you are on a managed network and you don't know the server's IP address, ask your system administrator. Of course you can also ping the server by its name, if you know it:
ping vercingetorix
If you are connecting to the server from a local client – that is, a client running on the same machine as the server – you can ping the virtual TCP/IP loopback server:
ping localhost –or– ping 127.0.0.1
If you have a simple network of two machines linked by a crossover cable, you can set up your server with any IP address you like except 127.0.0.1 (which is reserved for a local loopback server) and, of course, the IP address which you are using for your client machine. If you know the “native” IP addresses of your network cards, and they are different, you can simply use those.
Once you have verified that the server machine is reachable from the client, you can go on to the next step.
Most – but not all – installation packages start up the Firebird server as one of the final steps during installation, and also make sure that Firebird is started at every reboot.
After being launched, the Firebird server should be running:
As a service.
As a service or as an application. Service is default and highly recommended.
The following sections show you how to test the server on each platform.
Use the top command in a command
shell to inspect the running processes interactively. If a Firebird
3 server is running, you should see a process named firebird
and possibly also fbguard
(the Guardian process).
The following screen shows the output of
top, restricted by
grep to show only lines containing the
string firebird
:
paul@fili ~ $ top -b -n1 | grep [f]irebird 7169 firebird 20 0 29668 992 560 S 0,0 0,0 0:00.00 fbguard 7171 firebird 20 0 228160 5876 3048 S 0,0 0,1 0:00.01 firebird
As an alternative to top, you can use ps -ax or ps -aux and pipe the output to grep.
The process name is firebird
regardless if Firebird is
running in Superserver, Classic or SuperClassic mode. However, it is
possible to configure a Classic-mode Firebird in such a way that it
runs as a service under (x)inetd. In that case, you will only see a
firebird
process if a
client connection has been made.
Another way of testing the server after installation is by
starting a Firebird client (e.g.
/opt/firebird/bin/isql
) and connecting to a
database or creating one. These operations are described later in
this guide.
If it turns out that the server hasn't been started after all, you may need to do this manually, e.g. with /etc/init.d/firebird start or systemctl start firebird and systemctl enable firebird, depending on the type of Linux system and your Firebird installation package.
Open Control Panel -> Administrative Tools -> Services.
This illustration shows the Services applet display on Windows 7. The appearance may vary from one Windows server edition to another.
You should at least find the Firebird server in the services listing. The Guardian may or may not be running, depending on the choices you made during installation. If you didn't opt to start the server at the end of the installation process, you may do so now by right-clicking on the Firebird entry (or the Guardian) and choosing Start.
If Firebird is up and running as an application, it is represented by an icon in the system tray:
A green and grey server symbol if controlled by the Guardian;
A round yellow and black graphic if running standalone.
A flashing icon indicates that the server is in the process of starting up (or at least trying to do so). A red icon, or an icon with an overlying red stop sign, indicates that startup has failed.
One way to make 100% sure if the server is running or not is
to press Ctrl-Alt-Del and look for the firebird
process (and possibly
fbguard
) in the task list.
You may need to check the box “Show processes of all
users” for these processes to become visible.
On some occasions, you may need to start the Guardian or server once explicitly via the Start menu even if you opted for “Start Firebird now” at the end of the installation process. Sometimes a reboot is necessary.
You can shut the server down via the menu that appears if you right-click on the tray icon. Notice that this also makes the icon disappear; you can restart Firebird via the Start menu.
In Classic mode (but not SuperClassic!) a new process is
launched for every connection, so the number of firebird
processes will always equal
the number of client connections plus one. Shutdown via the tray
icon menu only terminates the first process (the
listener). Other processes, if present,
will continue to function normally, each terminating when the
client disconnects from the database. Of course, once the listener
has been shut down, new connections can't be made.
Each remote client machine needs to have the client library –
libfbclient.so
on Posix
clients, fbclient.dll
on
Windows clients – that matches the release version of the Firebird
server.
Firebird can install symlinks or copies named after the 1.0 libs (with the “old” InterBase names), to maintain compatibility with third-party products which need these files.
Some extra pieces are also needed for the client-only install.
At present, no separate installation program is available to install only the client pieces on a Windows machine. If you are in the common situation of running Windows clients to a Linux or other Unix-like Firebird server (or another Windows machine), you need to download the full Windows installation kit that corresponds to the version of Firebird server you install on your server machine.
Fortunately, once you have the kit, the Windows client-only install is a breeze. Just run the installation program and when you arrive at the “Select Components” screen, choose one of the client-only options from the drop-down list or uncheck the “Server Components” checkbox.
A small-footprint client install program for Linux clients is not available either. Additionally, some Posix flavours – even within the Linux constellation – have somewhat idiosyncratic requirements for filesystem locations. For these reasons, not all *x distributions for Firebird even contain a client-only install option.
For most Linux flavours, the following procedure is suggested
for a manual Firebird client-only install. Log in as root
for this.
Look for libfbclient.so.3.0.
(n
n
being the patch version number) in
/opt/firebird/lib
on the
machine where the Firebird server is installed. Copy it to
/usr/lib
on the client (or
/usr/lib64
if both server
and client are 64-bits).
Create chained symlinks using the following commands:
ln -s /usr/lib/libfbclient.so.3.0.
n
/usr/lib/libfbclient.so.2ln -s /usr/lib/libfbclient.so.2 /usr/lib/libfbclient.so
...replacing
with your
version number, e.g. 3.0.n
3.0.0
or
3.0.4
If you're running applications that expect the legacy libraries to be present, also create the following symlinks:
ln -s /usr/lib/libfbclient.so /usr/lib/libgds.so.0
ln -s /usr/lib/libfbclient.so /usr/lib/libgds.so
Copy firebird.msg
to the client
machine, preferably into the /opt/firebird
directory. If you place
it somewhere else, create a system-wide permanent
FIREBIRD
environment variable pointing to the right
directory, so that the API routines can locate the
messages.
Optionally copy some of the Firebird command-line tools – e.g. isql – to the client machine.
Instead of copying the files from a server, you can also pull
them out of a Firebird tar.gz
kit. Everything you need is located in the /opt/firebird
tree within the
buildroot.tar.gz
archive that's packed inside the
kit.
Firebird Documentation Index → Firebird 3 Quick Start → Installing Firebird |