144 lines
4.1 KiB
ReStructuredText
144 lines
4.1 KiB
ReStructuredText
.. _mysql:
|
|
|
|
MySQL
|
|
#####
|
|
|
|
You need MySQL version 5.0.15 or higher.
|
|
|
|
It's possible to test which version of MySQL you have installed with:
|
|
|
|
:command:`mysql -V`
|
|
|
|
Installing
|
|
==========
|
|
|
|
Windows
|
|
-------
|
|
|
|
Download the MySQL 32-bit or 64-bit MSI installer from the
|
|
`MySQL website <http://www.mysql.com/downloads/mysql/>`_ (~28 MB).
|
|
|
|
MySQL has a standard Windows installer. It's ok to select a Typical MySQL
|
|
install (the default). The rest of this documentation assumes assume you
|
|
have installed MySQL into :file:`C:\\mysql`. Adjust paths appropriately if not.
|
|
|
|
Linux/Mac OS X
|
|
--------------
|
|
|
|
The package install instructions given previously should have installed MySQL
|
|
on your machine, if it didn't come with it already. Run:
|
|
|
|
:command:`mysql_secure_installation`
|
|
|
|
and follow its advice.
|
|
|
|
If you did install MySQL manually rather than from a package, make sure the
|
|
server is started when the machine boots.
|
|
|
|
.. _mysql-add-user:
|
|
|
|
Add a User
|
|
==========
|
|
|
|
You need to add a new MySQL user for Bugzilla to use. Run the :file:`mysql`
|
|
command-line client and enter:
|
|
|
|
::
|
|
|
|
GRANT SELECT, INSERT,
|
|
UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
|
|
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*
|
|
TO bugs@localhost IDENTIFIED BY '$DB_PASS';
|
|
|
|
FLUSH PRIVILEGES;
|
|
|
|
You need to replace ``$DB_PASS`` with a strong password you have chosen.
|
|
Write that password down somewhere.
|
|
|
|
The above command permits an account called ``bugs``
|
|
to connect from the local machine, ``localhost``. Modify the command to
|
|
reflect your setup if you will be connecting from another
|
|
machine or as a different user.
|
|
|
|
Change Configuration
|
|
====================
|
|
|
|
To change MySQL's configuration, you need to edit your MySQL
|
|
configuration file, which is:
|
|
|
|
* Red Hat/Fedora: :file:`/etc/my.cnf`
|
|
* Debian/Ubuntu: :file:`/etc/mysql/my.cnf`
|
|
* Windows: :file:`C:\\mysql\\bin\\my.ini`
|
|
* Mac OS X: :file:`/etc/my/cnf`
|
|
|
|
.. _mysql-max-allowed-packet:
|
|
|
|
Allow Large Attachments and Many Comments
|
|
-----------------------------------------
|
|
|
|
By default on some systems, MySQL will only allow you to insert things
|
|
into the database that are smaller than 1MB.
|
|
|
|
Bugzilla attachments
|
|
may be larger than this. Also, Bugzilla combines all comments
|
|
on a single bug into one field for full-text searching, and the
|
|
combination of all comments on a single bug could in some cases
|
|
be larger than 1MB.
|
|
|
|
We recommend that you allow at least 16MB packets by
|
|
adding or altering the ``max_allowed_packet`` parameter in your MySQL
|
|
configuration in the ``[mysqld]`` section, so that the number is at least
|
|
16M, like this (note that it's ``M``, not ``MB``):
|
|
|
|
::
|
|
|
|
[mysqld]
|
|
# Allow packets up to 16M
|
|
max_allowed_packet=16M
|
|
|
|
.. _mysql-small-words:
|
|
|
|
Allow Small Words in Full-Text Indexes
|
|
--------------------------------------
|
|
|
|
By default, words must be at least four characters in length
|
|
in order to be indexed by MySQL's full-text indexes. This causes
|
|
a lot of Bugzilla-specific words to be missed, including "cc",
|
|
"ftp" and "uri".
|
|
|
|
MySQL can be configured to index those words by setting the
|
|
``ft_min_word_len`` param to the minimum size of the words to index.
|
|
|
|
::
|
|
|
|
[mysqld]
|
|
# Allow small words in full-text indexes
|
|
ft_min_word_len=2
|
|
|
|
.. _mysql-attach-table-size:
|
|
|
|
Permit Attachments Table to Grow Beyond 4GB
|
|
===========================================
|
|
|
|
This is optional configuration for Bugzillas which are expected to become
|
|
very large, and needs to be done after Bugzilla is fully installed.
|
|
|
|
By default, MySQL will limit the size of a table to 4GB.
|
|
This limit is present even if the underlying filesystem
|
|
has no such limit. To set a higher limit, run the :file:`mysql`
|
|
command-line client and enter the following, replacing ``$bugs_db``
|
|
with your Bugzilla database name (which is ``bugs`` by default):
|
|
|
|
.. code-block:: sql
|
|
|
|
USE $bugs_db;
|
|
|
|
ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;
|
|
|
|
The above command will change the limit to 20GB. MySQL will have
|
|
to make a temporary copy of your entire table to do this, so ideally
|
|
you should do this when your attachments table is still small.
|
|
|
|
.. note:: If you have set the setting in Bugzilla which allows large
|
|
attachments to be stored on disk, the above change does not affect that.
|