MySQL-5.6.13

Introduction à MySQL

MySQL est un serveur de base de données rapide et largement utilisé. C'est une implémentation client/serveur consistant dans un démon serveur et de nombreux programmes et bibliothèques différents.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.4.

Informations sur le paquet

Téléchargements supplémentaires

Dépendances de MySQL

Requises

cmake-2.8.11.2

Recommandées

Facultatives

libaio et libedit

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/mysql

Installation de MySQL

Pour des raisons de sécurité, vous êtes fortement encouragé à exécuter le serveur en tant qu'utilisateur et groupe non privilégiés. Lancez ce qui suit (en tant qu'utilisateur root) pour créer l'utilisateur et le groupe :

groupadd -g 40 mysql &&
useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql

Si le serveur MySQL n'est pas nécessaire, il est possible de ne construire que les bibliothèques clients de MySQL. Pour cela, vous devez ajouter -DWITHOUT_SERVER=ON dans la commande cmake ci-dessous.

MySQL contient une bibliothèque serveur embarquée. Par défaut, elle est construite comme une bibliothèque liée statiquement, libmysqld.a, mais en appliquant le correctif facultatif, une version partagée de cette bibliothèque peut être construite. La bibliothèque est nécessaire pour certaines applications, telles que Amarok et il est recommandé d'utiliser des bibliothèques partagées quand c'est possible.

Beaucoup d'options sont disponibles avec cmake. Vérifiez la sortie de `cmake -LH` pour des options supplémentaires de personnalisation. Voir la Documentation MySQL pour une liste complète des options.

Si vous voulez la version partagée de la bibliothèque serveur embarquée, appliquez le correctif suivant :

patch -Np1 -i ../mysql-5.6.13-embedded_library_shared-1.patch

Installez MySQL en lançant les commandes suivantes :

sed -i "/ADD_SUBDIRECTORY(sql\/share)/d" CMakeLists.txt &&
sed -i "s/ADD_SUBDIRECTORY(libmysql)/&\\nADD_SUBDIRECTORY(sql\/share)/" CMakeLists.txt &&
sed -i "s@data/test@\${INSTALL_MYSQLSHAREDIR}@g" sql/CMakeLists.txt &&
sed -i "s@data/mysql@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt &&
sed -i "s/srv_buf_size/srv_sort_buf_size/" storage/innobase/row/row0log.cc &&
mkdir build &&
cd build &&
cmake -DCMAKE_BUILD_TYPE=Release                    \
      -DCMAKE_INSTALL_PREFIX=/usr                   \
      -DINSTALL_DOCDIR=share/doc/mysql              \
      -DINSTALL_DOCREADMEDIR=share/doc/mysql        \
      -DINSTALL_INCLUDEDIR=include/mysql            \
      -DINSTALL_INFODIR=share/info                  \
      -DINSTALL_MANDIR=share/man                    \
      -DINSTALL_MYSQLDATADIR=/srv/mysql             \
      -DINSTALL_MYSQLSHAREDIR=share/mysql           \
      -DINSTALL_MYSQLTESTDIR=share/mysql/test       \
      -DINSTALL_PLUGINDIR=lib/mysql/plugin          \
      -DINSTALL_SBINDIR=sbin                        \
      -DINSTALL_SCRIPTDIR=bin                       \
      -DINSTALL_SQLBENCHDIR=share/mysql/bench       \
      -DINSTALL_SUPPORTFILESDIR=share/mysql         \
      -DMYSQL_DATADIR=/srv/mysql                    \
      -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock     \
      -DSYSCONFDIR=/etc/mysql                       \
      -DWITH_PARTITION_STORAGE_ENGINE=OFF           \
      -DWITH_PERFSCHEMA_STORAGE_ENGINE=OFF          \
      -DWITH_EXTRA_CHARSETS=complex                 \
      -DWITH_LIBEVENT=system                        \
      -DWITH_SSL=system                             \
      .. &&
make

Pour tester les résultats, lancez : make test.

Maintenant, en tant qu'utilisateur root user:

make install
[Astuce]

Astuce

Les seules documentations fournies dans l'archive des sources sont mysql.info et les pages de manuels. Vous pouvez télécharger différents formats du manuel de référence MySQL à l'adresse http://dev.mysql.com/doc/.

Explication des commandes

sed -i ... : Le premier des deux seds corrige la construction du client seulement, le dernier des deux seds initialise les bons répertoires d'installation pour quelques composants.

-DWITHOUT_SERVER=ON : Utilisez ce paramètre si vous ne voulez pas le serveur et si vous ne voulez construire que le client.

-DWITH_EXTRA_CHARSETS=complex : Ce paramètre active le support pour les ensembles de caractères complexes.

-DWITH_LIBEVENT=system : Ce paramètre est utilisé pour dire de construire le système en utilisant libevent qui est installé. Enlevez le si vous n'avez pas installé libevent.

-DWITH_SSL=system : Ce paramètre est utilisé pour signaler d'utiliser la version installée de OpenSSL. Effacez le si vous n'avez pas installées OpenSSL.

Configuration de MySQL

Fichiers de configuration

/etc/mysql/my.cnf et ~/.my.cnf

Informations de configuration

[Note]

Note

Si vous avez mis à jour depuis une version majeure précédente de MySQL, consultez le Manuel de référence MySQL pour les notes de mises à jour.

Créez un /etc/mysql/my.cnf basique en utilisant la commande suivante en tant qu'utilisateur root :

install -v -dm 755 /etc/mysql &&
cat > /etc/mysql/my.cnf << "EOF"
# Begin /etc/mysql/my.cnf
# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /run/mysqld/mysqld.sock
# The MySQL server
[mysqld]
port            = 3306
socket          = /run/mysqld/mysqld.sock
datadir         = /srv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all.
skip-networking
# required unique id between 1 and 2^32 - 1
server-id       = 1
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /srv/mysql
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /srv/mysql
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
# End /etc/mysql/my.cnf
EOF

Vous pouvez maintenant installer une base de données et modifier l'appartenance en faveur de l'utilisateur et du groupe non privilégiés (effectuez en tant qu'utilisateur root user) :

mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql &&
chown -R mysql:mysql /srv/mysql

La configuration supplémentaire exige que le serveur MySQL soit en fonction. Démarrez le serveur en utilisant les commandes suivantes en tant qu'utilisateur root :

install -v -m755 -o mysql -g mysql -d /var/run/mysqld &&
mysqld_safe --user=mysql 2>&1 >/dev/null &

Une installation par défaut n'initialise pas de mot de passe pour l'administrateur, utilisez donc la commande suivante en tant qu'utilisateur root pour en régler un. Remplacez <nouveau-mot-de-passe> par le vôtre.

mysqladmin -u root password <new-password>

La configuration du serveur est maintenant terminée. Éteignez le serveur en utilisant la commande suivante en tant qu'utilisateur root :

mysqladmin -p shutdown

Script de démarrage

Installez le script de démarrage /etc/rc.d/init.d/mysql inclu dans le paquet blfs-bootscripts-20130908 en tant qu'utilisateur root pour démarrer le serveur MySQL au moment du démarrage du système.

make install-mysql

Contenu

Programmes installés: innochecksum, msql2mysql, myisamchk, myisam_ftdump, myisamlog, myisampack, my_print_defaults, mysql, mysqlaccess, mysqlaccess.conf, mysqladmin, mysqlbinlog, mysqlbug, mysqlcheck, mysql_client_test, mysql_client_test_embedded, mysql_config, mysql_config_editor, mysql_convert_table_format, mysqld, mysqld_multi, mysqld_safe, mysqldump, mysqldumpslow, mysql_embedded, mysql_find_rows, mysql_fix_extensions, mysqlhotcopy, mysqlimport, mysql_install_db, mysql_plugin, mysql_secure_installation, mysql_setpermission, mysqlshow, mysqlslap, mysqltest, mysqltest_embedded, mysql_tzinfo_to_sql, mysql_upgrade, mysql_waitpid, mysql_zap, perror, replace, resolveip et resolve_stack_dump
Bibliothèques installées: libmysqlclient.{so,a}, libmysqlclient_r.{so,a}, libmysqld.{so,a} et libmysqlservices.a
Répertoires installés: /etc/mysql, /srv/mysql, /usr/include/mysql, /usr/lib/mysql, /usr/share/doc/mysql et /usr/share/mysql

Descriptions courtes

Des descriptions de tous les programmes et de toutes les bibliothèques prendraient plusieurs pages. Consultez plutôt la documentation de mysql.info ou le manuel de référence en ligne sur http://dev.mysql.com/doc/refman/5.6/en/index.html.

Les modules DBI de Perl doivent être installés pour avoir des programmes de support de MySQL pour fonctionner correctement.

Last updated on : 2013-04-29 18:18:11 +020