MySQL est un système de gestion de base de données relationnelle très populaire, développé par la société suédoise MySQL AB et maintenant détenu par Oracle Corporation.
La langue SQL utilisée par MySQL est le langage standard pour accéder aux bases de données. Grâce à sa petite taille, sa vitesse, son faible coût total de possession et surtout son code source ouvert, MySQL est souvent choisi pour les sites web de taille moyenne.
Installation de MySQL
Plateforme système utilisée dans ce tutoriel : CentOS release 6.6 (Final) 64 bits.
I. Installation des outils de compilation et des bibliothèques
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel
II. Installation de CMake
Version cmake : cmake-3.1.1.
- Téléchargement depuis : http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
- Extraction de l'archive
tar zxvf cmake-3.1.1.tar.gz
- Entrer dans le répertoire d'extraction
cd cmake-3.1.1
- Compilation et installation
./bootstrap
make && make install
III. Installation de MySQL
Version MySQL : mysql-5.6.15.
- Téléchargement depuis : http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
- Extraction de l'archive
tar zxvf mysql-5.6.15.tar.gz
- Entrer dans le répertoire d'extraction
cd mysql-5.6.15
- Compilation et installation
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/servdb/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/servdb/mysql/data -DMYSQL_TCP_PORT=3306
make && make install
- Vérification de la version de MySQL :
/usr/local/servdb/mysql/bin/mysql --version
Configuration de MySQL
- Création de l'utilisateur mysql :
/usr/sbin/groupadd dbuser
/usr/sbin/useradd -g dbuser dbuser
- Création des chemins pour binlog et les bases de données avec les permissions appropriées
mkdir -p /usr/local/servdb/mysql/binlog /data/dbmysql
chown dbuser.dbuser /usr/local/servdb/mysql/binlog/ /data/dbmysql/
- Création du fichier de configuration my.cnf
Remplacer le contenu de /etc/my.cnf par :
cat /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = dbuser
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/servdb/mysql
datadir = /data/dbmysql
log-error = /usr/local/servdb/mysql/error.log
pid-file = /usr/local/servdb/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-bin = /usr/local/servdb/mysql/binlog/logbin
binlog-do-db=dbtest
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/servdb/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/servdb/mysql/relaylog/relaylog
relay-log = /usr/local/servdb/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
server-id = 1
slow_query_log_file=/usr/local/servdb/mysql/mysql_slow.log
long_query_time =1
[mysqldump]
quick
max_allowed_packet =32M
- Initialisation de la base de données
/usr/local/servdb/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=dbuser
Affichage d'un message indiquant que l'installatoin est réussie.
- Activation de MySQL au démarrage du système
cp /usr/local/servdb/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
chmod +x /etc/init.d/mysqld
Redémarrer le système pour vérifier si MySQL démarre automatiquement.
- Démarrer le serveur MySQL
service mysqld start
- Se connecter à MySQL
/usr/local/servdb/mysql/bin/mysql -u root -p
Changement du mot de passe MySQL
Dans le terminal :
mysqladmin -uutilisateur -pmot_de_passe actuel password nouveau_mot_de_passe
Ou dans la console MySQL :
SET PASSWORD FOR 'utilisateur'@'localhost' = PASSWORD('nouveau_mot_de_passe');
Création d'un nouvel utilisateur et attribution des droits :
GRANT ALL PRIVILEGES ON *.* TO 'utilisateur'@'%' IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
Autres commandes
- Démarrer : service mysqld start
- Arrêter : service mysqld stop
- Redémarrer : service mysqld restart
- Recharger la configuration : service mysqld reload