source: archive/mysql.xml

trunk
Last change on this file was 45ab6c7, checked in by Xi Ruoyao <xry111@…>, 3 months ago

more SVN prop clean up

Remove "$LastChanged$" everywhere, and also some unused $Date$

  • Property mode set to 100644
File size: 15.3 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY mysql-download-http "http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-&mysql-version;.tar.gz">
8 <!ENTITY mysql-download-ftp " ">
9 <!ENTITY mysql-md5sum "1d3d91e8459c719bbef7c97bb499634d">
10 <!ENTITY mysql-size "32 MB">
11 <!ENTITY mysql-buildsize "572 MB (additional 359 MB installed)">
12 <!ENTITY mysql-time "6.3 SBU">
13]>
14
15<sect1 id="mysql" xreflabel="MySQL-&mysql-version;">
16 <?dbhtml filename="mysql.html"?>
17
18 <sect1info>
19 <date>$Date$</date>
20 </sect1info>
21
22 <title>MySQL-&mysql-version;</title>
23
24 <indexterm zone="mysql">
25 <primary sortas="a-MySQL">MySQL</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to MySQL</title>
30
31 <para>
32 <application>MySQL</application> is a widely used and fast SQL database
33 server. It is a client/server implementation that consists of a
34 server daemon and many different client programs and libraries.
35 </para>
36
37 &lfs75_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>
43 Download (HTTP): <ulink url="&mysql-download-http;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download (FTP): <ulink url="&mysql-download-ftp;"/>
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download MD5 sum: &mysql-md5sum;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Download size: &mysql-size;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated disk space required: &mysql-buildsize;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated build time: &mysql-time;
69 </para>
70 </listitem>
71 </itemizedlist>
72
73 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
74 <itemizedlist spacing="compact">
75 <listitem>
76 <para>
77 Optional patch (recommended if building for Amarok):
78 <ulink url="&patch-root;/mysql-&mysql-version;-embedded_library_shared-1.patch"/>
79 </para>
80 </listitem>
81 <listitem>
82 <para>
83 Optional Documentation (see tip below):
84 <ulink url="http://dev.mysql.com/doc/"/>
85 </para>
86 </listitem>
87 </itemizedlist>
88
89 <bridgehead renderas="sect3">MySQL Dependencies</bridgehead>
90
91 <bridgehead renderas="sect4">Required</bridgehead>
92 <para role="required">
93 <xref linkend="cmake"/>
94 </para>
95
96 <bridgehead renderas="sect4">Recommended</bridgehead>
97 <para role="recommended">
98 <xref linkend="libevent"/> and
99 <xref linkend="openssl"/>
100 </para>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
104 <ulink url="http://packages.debian.org/source/sid/libaio">libaio</ulink> and
105 <ulink url="http://www.thrysoee.dk/editline/">libedit</ulink>
106 </para>
107
108 <para condition="html" role="usernotes">User Notes:
109 <ulink url="&blfs-wiki;/mysql"/>
110 </para>
111 </sect2>
112
113 <sect2 role="installation">
114 <title>Installation of MySQL</title>
115
116 <para>
117 For security reasons, running the server as an unprivileged user
118 and group is strongly encouraged. Issue the following (as
119 <systemitem class="username">root</systemitem>) to create the
120 user and group:
121 </para>
122
123<screen role="root"><userinput>groupadd -g 40 mysql &amp;&amp;
124useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql</userinput></screen>
125
126 <para>
127 If the MySQL server is not needed, it is possible to build only the
128 client libraries of MySQL. To do this you need to add
129 <parameter>-DWITHOUT_SERVER=ON</parameter> to the <command>cmake</command>
130 command below.
131 </para>
132
133 <para>
134 MySQL contains an embedded server library. By default, it is built as a
135 statically linked library, <filename>libmysqld.a</filename>, but by
136 applying the optional patch, a shared version of this library can be built.
137 The library is needed by certain applications, such as
138 <application>Amarok</application> and it is recommend to use the shared
139 libraries whenever it is possible.
140 </para>
141
142 <para>
143 There are numerous options available to
144 <command>cmake</command>. Check the output of the `<command>cmake .
145 -LH</command>` for additional customization options. See the <ulink
146 url="http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html">
147 MySQL Documentation</ulink> for a full listing of all options.
148 </para>
149
150 <para>
151 If you want to build shared version of the embedded server library, apply
152 the following patch:
153 </para>
154
155<screen><userinput>patch -Np1 -i ../mysql-&mysql-version;-embedded_library_shared-1.patch</userinput></screen>
156
157 <para>
158 Install <application>MySQL</application> by running the
159 following commands:
160 </para>
161
162<screen><userinput>sed -i "/ADD_SUBDIRECTORY(sql\/share)/d" CMakeLists.txt &amp;&amp;
163sed -i "s/ADD_SUBDIRECTORY(libmysql)/&amp;\\nADD_SUBDIRECTORY(sql\/share)/" CMakeLists.txt &amp;&amp;
164sed -i "s@data/test@\${INSTALL_MYSQLSHAREDIR}@g" sql/CMakeLists.txt &amp;&amp;
165sed -i "s@data/mysql@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt &amp;&amp;
166
167sed -i "s/srv_buf_size/srv_sort_buf_size/" storage/innobase/row/row0log.cc &amp;&amp;
168
169mkdir build &amp;&amp;
170cd build &amp;&amp;
171
172cmake -DCMAKE_BUILD_TYPE=Release \
173 -DCMAKE_INSTALL_PREFIX=/usr \
174 -DINSTALL_DOCDIR=share/doc/mysql \
175 -DINSTALL_DOCREADMEDIR=share/doc/mysql \
176 -DINSTALL_INCLUDEDIR=include/mysql \
177 -DINSTALL_INFODIR=share/info \
178 -DINSTALL_MANDIR=share/man \
179 -DINSTALL_MYSQLDATADIR=/srv/mysql \
180 -DINSTALL_MYSQLSHAREDIR=share/mysql \
181 -DINSTALL_MYSQLTESTDIR=share/mysql/test \
182 -DINSTALL_PLUGINDIR=lib/mysql/plugin \
183 -DINSTALL_SBINDIR=sbin \
184 -DINSTALL_SCRIPTDIR=bin \
185 -DINSTALL_SQLBENCHDIR=share/mysql/bench \
186 -DINSTALL_SUPPORTFILESDIR=share/mysql \
187 -DMYSQL_DATADIR=/srv/mysql \
188 -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
189 -DSYSCONFDIR=/etc/mysql \
190 -DWITH_PERFSCHEMA_STORAGE_ENGINE=OFF \
191 -DWITH_EXTRA_CHARSETS=complex \
192 -DWITH_LIBEVENT=system \
193 -DWITH_SSL=system \
194 .. &amp;&amp;
195make</userinput></screen>
196
197 <para>
198 To test the results, issue: <command>make test</command>.
199 </para>
200
201 <para>
202 Now, as the <systemitem class="username">root</systemitem> user:
203 </para>
204
205<screen role="root"><userinput>make install</userinput></screen>
206
207 <tip>
208 <para>
209 The only documentation shipped in the source tarball are
210 <filename>mysql.info</filename> and man pages. You can download
211 various formats of the <application>MySQL</application>
212 Reference Manual from <ulink url="http://dev.mysql.com/doc/"/>.
213 </para>
214 </tip>
215
216 </sect2>
217
218 <sect2 role="commands">
219 <title>Command Explanations</title>
220
221 <para>
222 <command>sed -i ...</command>: First two seds fix client-only builds.
223 Following two seds set correct installation directories for some
224 components. Last one fixes a bug in the code.
225 </para>
226
227 <para>
228 <parameter>-DWITHOUT_SERVER=ON</parameter>: Use this switch if you don't
229 want the server and would like to build the client only.
230 </para>
231
232 <para>
233 <parameter>-DWITH_EXTRA_CHARSETS=complex</parameter>: This switch enables
234 support for the complex character sets.
235 </para>
236
237 <para>
238 <parameter>-DWITH_LIBEVENT=system</parameter>: This switch is used to
239 tell the build system to use installed <application>libevent</application>.
240 Remove it if you didn't install <application>libevent</application>.
241 </para>
242
243 <para>
244 <parameter>-DWITH_SSL=system</parameter>: This switch is used to tell the
245 build system to use installed <application>OpenSSL</application>. Remove
246 it if you didn't install <application>OpenSSL</application>.
247 </para>
248
249 </sect2>
250
251 <sect2 role="configuration">
252 <title>Configuring MySQL</title>
253
254 <sect3 id="mysql-config">
255 <title>Config Files</title>
256
257 <para>
258 <filename>/etc/mysql/my.cnf</filename> and
259 <filename>~/.my.cnf</filename>
260 </para>
261
262 <indexterm zone="mysql mysql-config">
263 <primary sortas="e-AA.my.cnf">~/.my.cnf</primary>
264 </indexterm>
265
266 <indexterm zone="mysql mysql-config">
267 <primary sortas="e-etc-mysql-my.cnf">/etc/mysql/my.cnf</primary>
268 </indexterm>
269
270 </sect3>
271
272 <sect3>
273 <title>Configuration Information</title>
274
275 <note>
276 <para>
277 If you are upgrading from previous major version of
278 <application>MySQL</application>, be sure to consult
279 the <ulink
280 url="https://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html">
281 MySQL Reference Manual</ulink> for notes on
282 upgrading the software.
283 </para>
284 </note>
285
286 <para>
287 Create basic <filename>/etc/mysql/my.cnf</filename>
288 using the following command as the <systemitem
289 class="username">root</systemitem> user:
290 </para>
291
292<screen role="root"><userinput>install -v -dm 755 /etc/mysql &amp;&amp;
293cat &gt; /etc/mysql/my.cnf &lt;&lt; "EOF"
294<literal># Begin /etc/mysql/my.cnf
295
296# The following options will be passed to all MySQL clients
297[client]
298#password = your_password
299port = 3306
300socket = /run/mysqld/mysqld.sock
301
302# The MySQL server
303[mysqld]
304port = 3306
305socket = /run/mysqld/mysqld.sock
306datadir = /srv/mysql
307skip-external-locking
308key_buffer_size = 16M
309max_allowed_packet = 1M
310sort_buffer_size = 512K
311net_buffer_length = 16K
312myisam_sort_buffer_size = 8M
313
314# Don't listen on a TCP/IP port at all.
315skip-networking
316
317# required unique id between 1 and 2^32 - 1
318server-id = 1
319
320# Uncomment the following if you are using BDB tables
321#bdb_cache_size = 4M
322#bdb_max_lock = 10000
323
324# Uncomment the following if you are using InnoDB tables
325#innodb_data_home_dir = /srv/mysql
326#innodb_data_file_path = ibdata1:10M:autoextend
327#innodb_log_group_home_dir = /srv/mysql
328# You can set .._buffer_pool_size up to 50 - 80 %
329# of RAM but beware of setting memory usage too high
330#innodb_buffer_pool_size = 16M
331#innodb_additional_mem_pool_size = 2M
332# Set .._log_file_size to 25 % of buffer pool size
333#innodb_log_file_size = 5M
334#innodb_log_buffer_size = 8M
335#innodb_flush_log_at_trx_commit = 1
336#innodb_lock_wait_timeout = 50
337
338[mysqldump]
339quick
340max_allowed_packet = 16M
341
342[mysql]
343no-auto-rehash
344# Remove the next comment character if you are not familiar with SQL
345#safe-updates
346
347[isamchk]
348key_buffer = 20M
349sort_buffer_size = 20M
350read_buffer = 2M
351write_buffer = 2M
352
353[myisamchk]
354key_buffer_size = 20M
355sort_buffer_size = 20M
356read_buffer = 2M
357write_buffer = 2M
358
359[mysqlhotcopy]
360interactive-timeout
361
362# End /etc/mysql/my.cnf</literal>
363EOF</userinput></screen>
364
365 <para>
366 You can now install a database and change the ownership to the
367 unprivileged user and group (perform as the <systemitem
368 class="username">root</systemitem> user):
369 </para>
370
371<screen role="root"><userinput>mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql &amp;&amp;
372chown -R mysql:mysql /srv/mysql</userinput></screen>
373
374 <para>
375 Further configuration requires that the
376 <application>MySQL</application> server is running. Start
377 the server using the following commands as the <systemitem
378 class="username">root</systemitem> user:
379 </para>
380
381<screen role="root"><userinput>install -v -m755 -o mysql -g mysql -d /run/mysqld &amp;&amp;
382mysqld_safe --user=mysql 2&gt;&amp;1 &gt;/dev/null &amp;</userinput></screen>
383
384 <para>
385 A default installation does not set up a password for the
386 administrator, so use the following command as the <systemitem
387 class="username">root</systemitem> user to set one. Replace
388 <replaceable>&lt;new-password&gt;</replaceable> with your own.
389 </para>
390
391<screen role="root"><userinput>mysqladmin -u root password <replaceable>&lt;new-password&gt;</replaceable></userinput></screen>
392
393 <para>
394 Configuration of the server is now finished. Shut the server
395 down using the following command as the <systemitem
396 class="username">root</systemitem> user:
397 </para>
398
399<screen role="root"><userinput>mysqladmin -p shutdown</userinput></screen>
400
401 </sect3>
402
403 <sect3 id="mysql-init">
404 <title>Boot Script</title>
405
406 <para>
407 Install the <filename>/etc/rc.d/init.d/mysql</filename> init script
408 included in the <xref linkend="bootscripts"/> package as
409 the <systemitem class="username">root</systemitem> user to start the
410 <application>MySQL</application> server during system boot-up.
411 </para>
412
413 <indexterm zone="mysql mysql-init">
414 <primary sortas="f-mysql">mysql</primary>
415 </indexterm>
416
417<screen role="root"><userinput>make install-mysql</userinput></screen>
418
419 </sect3>
420
421 </sect2>
422
423 <sect2 role="content">
424 <title>Contents</title>
425
426 <segmentedlist>
427 <segtitle>Installed Programs</segtitle>
428 <segtitle>Installed Libraries</segtitle>
429 <segtitle>Installed Directories</segtitle>
430
431 <seglistitem>
432 <seg>
433 innochecksum, msql2mysql, myisamchk, myisam_ftdump, myisamlog,
434 myisampack, my_print_defaults, mysql, mysqlaccess, mysqlaccess.conf,
435 mysqladmin, mysqlbinlog, mysqlbug, mysqlcheck, mysql_client_test,
436 mysql_client_test_embedded, mysql_config, mysql_config_editor,
437 mysql_convert_table_format, mysqld, mysqld_multi, mysqld_safe, mysqldump,
438 mysqldumpslow, mysql_embedded, mysql_find_rows, mysql_fix_extensions,
439 mysqlhotcopy, mysqlimport, mysql_install_db, mysql_plugin,
440 mysql_secure_installation, mysql_setpermission, mysqlshow, mysqlslap,
441 mysqltest, mysqltest_embedded, mysql_tzinfo_to_sql, mysql_upgrade,
442 mysql_waitpid, mysql_zap, perror, replace, resolveip and
443 resolve_stack_dump
444 </seg>
445 <seg>
446 libmysqlclient.{so,a}, libmysqlclient_r.{so,a}, libmysqld.{so,a},
447 libmysqlservices.a and several under /usr/lib/mysql/plugin/
448 </seg>
449 <seg>
450 /etc/mysql,
451 /srv/mysql,
452 /usr/include/mysql,
453 /usr/lib/mysql,
454 /usr/share/doc/mysql and
455 /usr/share/mysql
456 </seg>
457 </seglistitem>
458 </segmentedlist>
459
460 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
461
462 <para>
463 Descriptions of all the programs and libraries would be several
464 pages long. Instead, consult the <filename>mysql.info</filename>
465 documentation or the on-line reference manual at <ulink
466 url="http://dev.mysql.com/doc/refman/5.6/en/index.html"/>.
467 </para>
468
469 <para>
470 The <application>Perl</application> DBI modules must be installed
471 for some of the <application>MySQL</application> support programs to
472 function properly.
473 </para>
474
475 </sect2>
476
477</sect1>
Note: See TracBrowser for help on using the repository browser.