1. Téléchargez le package MySQL5.7 rpm
adresse de téléchargement
mysql5.7 adresse de téléchargement mysql8.0
Deux, installation et configuration
Montez l'image iso et installez-la en tant que package de dépendances; mysql-community-server dépend de net-tools et de perf. Si vous avez déjà installé vim, vous n'avez pas besoin d'installer perf. (Vim dépend de la performance)
mkdir /media/CentOS
mount -t iso9660 -o ro,loop /opt/CentOS-7-x86_64-DVD-1810.iso /media/CentOS
ls /media/CentOS
yum --disablerepo=\* --enablerepo=c7-media install -y net-tools perf
Installez MySQL
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -ivh ./mysql-community-common-5.7.31-1.el6.x86_64.rpm
rpm -ivh ./mysql-community-libs-5.7.31-1.el6.x86_64.rpm
rpm -ivh ./mysql-community-client-5.7.31-1.el6.x86_64.rpm
rpm -ivh ./mysql-community-server-5.7.31-1.el6.x86_64.rpm
Ouvrir le port 3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
Éteignez SeLinux
setenforce 0
getenforce
vi /etc/selinux/config
# enforcing修改为disabled
SELINUX=disabled
Troisièmement, configurez MySQL
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-name-resolve
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names=1
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Quatrièmement, modifiez le répertoire de données MySQL
cd /home
mkdir -p /home/data/mysql
chown -R mysql:mysql data/mysql
vi /etc/my.cnf
# 修改datadir数据目录(记得关闭SeLinux)
# datadir=/var/lib/mysql
datadir=/home/data/mysql
Remarque: si vous avez déjà initialisé MySQL, vous devez copier le répertoire de données d'origine dans le nouveau répertoire de données, puis démarrer le service MySQL.
cd /home/data/mysql
cp -pr /var/lib/mysql/* .
Cinq, démarrez MySQL et modifiez le mot de passe root
Lorsque MySQL est démarré pour la première fois, MySQL sera initialisé. Par conséquent, essayez de configurer le fichier /etc/my.cnf à la fois. Évitez les étapes de travail supplémentaires.
#查看自动生成的临时密码
cat /var/log/mysqld.log |grep password
查询结果如下:
2020-09-03T07:51:34.045157Z 1 [Note] A temporary password is generated for root@localhost: ZuoOejf5Vj#d
#登录
mysql -uroot -p'ZuoOejf5Vj#d'
mysql> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> flush privileges;
MySQL8.0 ne prend pas en charge la création d'utilisateurs lors de l'octroi, et vous devez créer des utilisateurs avant l'autorisation.
修改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
修改密码并指定加密方式:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
创建用户:
mysql> create user 'root'@'%' identified by '123456';
mysql> grant all on *.* to 'root'@'%' WITH GRANT OPTION;;
mysql> flush privileges;
Six, démarrez MySQL et configurez le démarrage pour démarrer
systemctl enable mysqld
systemctl start mysqld