INSTALL-BINARY
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:14k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. Installing a MySQL Binary Distribution
  2. ======================================
  3. * Menu:
  4. * Linux-RPM::                   Linux RPM files
  5. * Building clients::            Building client programs
  6. * Binary install system issues::  System-specific issues
  7. You need the following tools to install a *MySQL* binary distribution:
  8.    * GNU `gunzip' to uncompress the distribution.
  9.    * A reasonable `tar' to unpack the distribution. GNU `tar' is known
  10.      to work. Sun `tar' is known to have problems.
  11. An alternative installation method under Linux is to use RPM (RedHat
  12. Package Manager) distributions. *Note Linux-RPM::.
  13. If you run into problems, *PLEASE ALWAYS USE* `mysqlbug' when posting
  14. questions to <mysql@lists.mysql.com>.  Even if the problem isn't a bug,
  15. `mysqlbug' gathers system information that will help others solve your
  16. problem.  By not using `mysqlbug', you lessen the likelihood of getting
  17. a solution to your problem!  You will find `mysqlbug' in the `bin'
  18. directory after you unpack the distribution.  *Note Bug reports::.
  19. The basic commands you must execute to install and use a *MySQL* binary
  20. distribution are:
  21.      shell> groupadd mysql
  22.      shell> useradd -g mysql mysql
  23.      shell> cd /usr/local
  24.      shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
  25.      shell> ln -s mysql-VERSION-OS mysql
  26.      shell> cd mysql
  27.      shell> scripts/mysql_install_db
  28.      shell> chown -R root  /usr/local/mysql
  29.      shell> chown -R mysql /usr/local/mysql/var
  30.      shell> chgrp -R mysql /usr/local/mysql
  31.      shell> chown -R root /usr/local/mysql/bin/
  32.      shell> bin/safe_mysqld --user=mysql &
  33. You can add new users using the `bin/mysql_setpermission' script if you
  34. install the `DBI' and `Msql-Mysql-modules' Perl modules.
  35. A more detailed description follows.
  36. To install a binary distribution, follow the steps below, then proceed
  37. to *Note Post-installation::, for post-installation setup and testing:
  38.   1. Pick the directory under which you want to unpack the
  39.      distribution, and move into it.  In the example below, we unpack
  40.      the distribution under `/usr/local' and create a directory
  41.      `/usr/local/mysql' into which *MySQL* is installed.  (The
  42.      following instructions therefore assume you have permission to
  43.      create files in `/usr/local'.  If that directory is protected, you
  44.      will need to perform the installation as `root'.)
  45.   2. Obtain a distribution file from one of the sites listed in *Note
  46.      Getting *MySQL*: Getting MySQL.
  47.      *MySQL* binary distributions are provided as compressed `tar'
  48.      archives and have names like `mysql-VERSION-OS.tar.gz', where
  49.      `VERSION' is a number (for example, `3.21.15'), and `OS' indicates
  50.      the type of operating system for which the distribution is intended
  51.      (for example, `pc-linux-gnu-i586').
  52.   3. Add a user and group for `mysqld' to run as:
  53.           shell> groupadd mysql
  54.           shell> useradd -g mysql mysql
  55.      These commands add the `mysql' group and the `mysql' user.  The
  56.      syntax for `useradd' and `groupadd' may differ slightly on
  57.      different Unixes.  They may also be called `adduser' and
  58.      `addgroup'.  You may wish to call the user and group something
  59.      else instead of `mysql'.
  60.   4. Change into the intended installation directory:
  61.           shell> cd /usr/local
  62.   5. Unpack the distribution and create the installation directory:
  63.           shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
  64.           shell> ln -s mysql-VERSION-OS mysql
  65.      The first command creates a directory named `mysql-VERSION-OS'.
  66.      The second command makes a symbolic link to that directory.  This
  67.      lets you refer more easily to the installation directory as
  68.      `/usr/local/mysql'.
  69.   6. Change into the installation directory:
  70.           shell> cd mysql
  71.      You will find several files and subdirectories in the `mysql'
  72.      directory.  The most important for installation purposes are the
  73.      `bin' and `scripts' subdirectories.
  74.     `bin'
  75.           This directory contains client programs and the server You
  76.           should add the full pathname of this directory to your `PATH'
  77.           environment variable so that your shell finds the *MySQL*
  78.           programs properly. *Note Environment variables::.
  79.     `scripts'
  80.           This directory contains the `mysql_install_db' script used to
  81.           initialize the server access permissions.
  82.   7. If you would like to use `mysqlaccess' and have the *MySQL*
  83.      distribution in some nonstandard place, you must change the
  84.      location where `mysqlaccess' expects to find the `mysql' client.
  85.      Edit the `bin/mysqlaccess' script at approximately line 18. Search
  86.      for a line that looks like this:
  87.           $MYSQL     = '/usr/local/bin/mysql';    # path to mysql executable
  88.      Change the path to reflect the location where `mysql' actually is
  89.      stored on your system.  If you do not do this, you will get a
  90.      `Broken pipe' error when you run `mysqlaccess'.
  91.   8. Create the *MySQL* grant tables (necessary only if you haven't
  92.      installed *MySQL* before):
  93.           shell> scripts/mysql_install_db
  94.      Note that *MySQL* versions older than Version 3.22.10 started the
  95.      *MySQL* server when you run `mysql_install_db'.  This is no longer
  96.      true!
  97.   9. Change ownership of binaries to `root' and ownership of the data
  98.      directory to the user that you will run `mysqld' as:
  99.           shell> chown -R root  /usr/local/mysql
  100.           shell> chown -R mysql /usr/local/mysql/var
  101.           shell> chgrp -R mysql /usr/local/mysql
  102.      The first command changes the `owner' attribute of the files to the
  103.      `root' user, the second one changes the `owner' attribute of the
  104.      data directory to the `mysql' user, and the third one changes the
  105.      `group' attribute to the `mysql' group.
  106.  10. If you want to install support for the Perl `DBI'/`DBD' interface,
  107.      see *Note Perl support::.
  108.  11. If you would like *MySQL* to start automatically when you boot your
  109.      machine, you can copy `support-files/mysql.server' to the location
  110.      where your system has its startup files. More information can be
  111.      found in the `support-files/mysql.server' script itself and in
  112.      *Note Automatic start::.
  113. After everything has been unpacked and installed, you should initialize
  114. and test your distribution.
  115. You can start the *MySQL* server with the following command:
  116.      shell> bin/safe_mysqld --user=mysql &
  117. *Note safe_mysqld::.
  118. *Note Post-installation::.
  119. Linux RPM Notes
  120. ---------------
  121. The recommended way to install *MySQL* on Linux is by using an RPM
  122. file. The *MySQL* RPMs are currently being built on a RedHat Version
  123. 6.2 system but should work on other versions of Linux that support `rpm'
  124. and use `glibc'.
  125. If you have problems with an RPM file, for example, if you receive the
  126. error "`Sorry, the host 'xxxx' could not be looked up'", see *Note
  127. Binary notes-Linux::.
  128. The RPM files you may want to use are:
  129.    * `MySQL-VERSION.i386.rpm'
  130.      The *MySQL* server.  You will need this unless you only want to
  131.      connect to a *MySQL* server running on another machine.
  132.    * `MySQL-client-VERSION.i386.rpm'
  133.      The standard *MySQL* client programs. You probably always want to
  134.      install this package.
  135.    * `MySQL-bench-VERSION.i386.rpm'
  136.      Tests and benchmarks. Requires Perl and msql-mysql-modules RPMs.
  137.    * `MySQL-devel-VERSION.i386.rpm'
  138.      Libraries and include files needed if you want to compile other
  139.      *MySQL* clients, such as the Perl modules.
  140.    * `MySQL-VERSION.src.rpm'
  141.      This contains the source code for all of the above packages. It
  142.      can also be used to try to build RPMs for other architectures (for
  143.      example, Alpha or SPARC).
  144. To see all files in an RPM package, run:
  145.      shell> rpm -qpl MySQL-VERSION.i386.rpm
  146. To perform a standard minimal installation, run:
  147.      shell> rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm
  148. To install just the client package, run:
  149.      shell> rpm -i MySQL-client-VERSION.i386.rpm
  150. The RPM places data in `/var/lib/mysql'. The RPM also creates the
  151. appropriate entries in `/etc/rc.d/' to start the server automatically
  152. at boot time.  (This means that if you have performed a previous
  153. installation, you may want to make a copy of your previously installed
  154. *MySQL* startup file if you made any changes to it, so you don't lose
  155. your changes.)
  156. After installing the RPM file(s), the `mysqld' daemon should be running
  157. and you should now be able to start using *MySQL*.  *Note
  158. Post-installation::.
  159. If something goes wrong, you can find more information in the binary
  160. installation chapter. *Note Installing binary::.
  161. Building Client Programs
  162. ------------------------
  163. If you compile *MySQL* clients that you've written yourself or that you
  164. obtain from a third party, they must be linked using the
  165. `-lmysqlclient' option on the link command.  You may also need to
  166. specify a `-L' option to tell the linker where to find the library.  For
  167. example, if the library is installed in `/usr/local/mysql/lib', use
  168. `-L/usr/local/mysql/lib -lmysqlclient' on the link command.
  169. For clients that use *MySQL* header files, you may need to specify a
  170. `-I' option when you compile them (for example,
  171. `-I/usr/local/mysql/include'), so the compiler can find the header
  172. files.
  173. System-specific Issues
  174. ----------------------
  175. * Menu:
  176. * Binary notes-Linux::          Linux notes for binary distribution
  177. * Binary notes-HP-UX::          HP-UX notes for binary distribution
  178. The following sections indicate some of the issues that have been
  179. observed on particular systems when installing *MySQL* from a binary
  180. distribution.
  181. Linux Notes for Binary Distributions
  182. ....................................
  183. *MySQL* needs at least Linux Version 2.0.
  184. The binary release is linked with `-static', which means you do not
  185. normally need to worry about which version of the system libraries you
  186. have. You need not install LinuxThreads, either.  A program linked with
  187. `-static' is slightly bigger than a dynamically linked program but also
  188. slightly faster (3-5%).  One problem, however, is that you can't use
  189. user-definable functions (UDFs) with a statically linked program.  If
  190. you are going to write or use UDF functions (this is something only for
  191. C or C++ programmers), you must compile *MySQL* yourself, using dynamic
  192. linking.
  193. If you are using a `libc'-based system (instead of a `glibc2' system),
  194. you will probably get some problems with hostname resolving and
  195. getpwnam() with the binary release. (This is because `glibc'
  196. unfortunately depends on some external libraries to resolve hostnames
  197. and getpwent() , even when compiled with `-static'). In this case you
  198. probably get the following error message when you run
  199. `mysql_install_db':
  200.      Sorry, the host 'xxxx' could not be looked up
  201. or the following error when you try to run mysqld with the `--user'
  202. option:
  203.      getpwnam: No such file or directory
  204. You can solve this problem in one of the following ways:
  205.    * Get a *MySQL* source distribution (an RPM or the `tar.gz'
  206.      distribution) and install this instead.
  207.    * Execute `mysql_install_db --force'; This will not execute the
  208.      `resolveip' test in `mysql_install_db'.  The downside is that you
  209.      can't use host names in the grant tables; you must use IP numbers
  210.      instead (except for `localhost').  If you are using an old *MySQL*
  211.      release that doesn't support `--force', you have to remove the
  212.      `resolveip' test in `mysql_install' with an editor.
  213.    * Start mysqld with `su' instead of using `--user'.
  214. The Linux-Intel binary and RPM releases of *MySQL* are configured for
  215. the highest possible speed. We are always trying to use the fastest
  216. stable compiler available.
  217. *MySQL* Perl support requires Version Perl 5.004_03 or newer.
  218. On some Linux 2.2 versions, you may get the error `Resource temporarily
  219. unavailable' when you do a lot of new connections to a `mysqld' server
  220. over TCP/IP.
  221. The problem is that Linux has a delay between when you close a TCP/IP
  222. socket and until this is actually freed by the system.  As there is only
  223. room for a finite number of TCP/IP slots, you will get the above error
  224. if you try to do too many new TCP/IP connections during a small time,
  225. like when you run the *MySQL* `test-connect' benchmark over TCP/IP.
  226. We have mailed about this problem a couple of times to different Linux
  227. mailing lists but have never been able to resolve this properly.
  228. The only known 'fix' to this problem is to use persistent connections in
  229. your clients or use sockets, if you are running the database server and
  230. clients on the same machine.  We hope that the `Linux 2.4' kernel will
  231. fix this problem in the future.
  232. HP-UX Notes for Binary Distributions
  233. ....................................
  234. Some of the binary distributions of *MySQL* for HP-UX is distributed as
  235. an HP depot file and as a tar file.  To use the depot file you must be
  236. running at least HP-UX 10.x to have access to HP's software depot tools.
  237. The HP version of *MySQL* was compiled on an HP 9000/8xx server under
  238. HP-UX 10.20, and uses MIT-pthreads. It is known to work well under this
  239. configuration.  *MySQL* Version 3.22.26 and newer can also be built
  240. with HP's native thread package.
  241. Other configurations that may work:
  242.    * HP 9000/7xx running HP-UX 10.20+
  243.    * HP 9000/8xx running HP-UX 10.30
  244. The following configurations almost definitely won't work:
  245.    * HP 9000/7xx or 8xx running HP-UX 10.x where x < 2
  246.    * HP 9000/7xx or 8xx running HP-UX 9.x
  247. To install the distribution, use one of the commands below, where
  248. `/path/to/depot' is the full pathname of the depot file:
  249.    * To install everything, including the server, client and
  250.      development tools:
  251.           shell> /usr/sbin/swinstall -s /path/to/depot mysql.full
  252.    * To install only the server:
  253.           shell> /usr/sbin/swinstall -s /path/to/depot mysql.server
  254.    * To install only the client package:
  255.           shell> /usr/sbin/swinstall -s /path/to/depot mysql.client
  256.    * To install only the development tools:
  257.           shell> /usr/sbin/swinstall -s /path/to/depot mysql.developer
  258. The depot places binaries and libraries in `/opt/mysql' and data in
  259. `/var/opt/mysql'. The depot also creates the appropriate entries in
  260. `/etc/init.d' and `/etc/rc2.d' to start the server automatically at
  261. boot time. Obviously, this entails being `root' to install.
  262. To install the HP-UX tar.gz distribution, you must have a copy of GNU
  263. `tar'.