1、检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除
首先需要先停止mysqld服务,否则直接卸载rpm包后,重新安装的mysql没有初始密码
[root@node2 mysql-5.7.26]# systemctl stop mysqld
[root@node2 mysql-5.7.26]# rpm -qa|grepmysql
mysql-community-libs-5.7.26-1.el7.x86_64
mysql-community-common-5.7.26-1.el7.x86_64
mysql-community-client-5.7.26-1.el7.x86_64
mysql-community-server-5.7.26-1.el7.x86_64
[root@node2 mysql-5.7.26]# rpm -e mysql-community-server-5.7.26-1.el7.x86_64
[root@node2 mysql-5.7.26]# rpm -e mysql-community-client-5.7.26-1.el7.x86_64
[root@node2 mysql-5.7.26]# rpm -e mysql-community-libs-5.7.26-1.el7.x86_64
[root@node2 mysql-5.7.26]# rpm -e mysql-community-common-5.7.26-1.el7.x86_64
卸载顺序为server->client->libs->common
将剩余mysql目录删除干净
[root@node2 mysql-5.7.26]# find / -name mysql/etc/selinux/targeted/active/modules/100/mysql/var/lib/mysql/var/lib/mysql/mysql/usr/share/mysql
[root@node2 mysql-5.7.26]# rm -rf var/lib/mysql
[root@node2 mysql-5.7.26]# rm -rf /usr/share/mysql
[root@node2 mysql-5.7.26]# rm -rf /var/log/mysqld.log
2、下载rpm包
mkdir /usr/local/src/mysql-5.7.26cd/usr/local/src/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.26-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.26-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.26-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.26-1.el7.x86_64.rpm
3、安装rpm包
按照依赖顺序依次安装rpm包,依赖关系为common->libs->client->server
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
在安装mysql-community-common-5.7.26-1.el7.x86_64.rpm ,可能会报错:
file /usr/share/mysql/czech/errmsg.sys from install of mysql-community-common-5.7.26-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64file /usr/share/mysql/danish/errmsg.sys from install of mysql-community-common-5.7.26-1.el7.x86_64 conflicts with file from package mariadb-libs-1:5.5.60-1.el7_5.x86_64
提示是文件与mariadb-libs-1:5.5.60-1.el7_5.x86_64包里的冲突,卸载mariadb-libs-1:5.5.60-1.el7_5.x86_64即可
rpm -e mariadb-libs-1:5.5.60-1.el7_5.x86_64 --nodeps
4、验证
[root@node2 mysql-5.7.26]# whereismysql
mysql:/usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@node2 mysql-5.7.26]# whereismy.cnf
my:/etc/my.cnf
编辑my.cnf
[mysqld]
datadir=/home/mysql-5.7.26/datauser=mysql
symbolic-links=0#server_id=71#gtid_mode=on #开启gtid模式
#enforce_gtid_consistency=on #强制gtid一致性
#log-bin=slave-71#开启二进制日志
#binlog_format=row
log-error=/home/mysql-5.7.26/log/mysqld.log
[mysqld_safe]
log-error=/home/mysql-5.7.26/log/mysqld.log
建立相关目录
[root@localhost mysql-5.7.26]# mkdir /home/mysql-5.7.26/[root@localhost mysql-5.7.26]# mkdir /home/mysql-5.7.26/log
[root@localhost mysql-5.7.26]# mkdir /home/mysql-5.7.26/data
[root@localhost mysql-5.7.26]# chown -R mysql:mysql /home/mysql-5.7.26/
5、第一次启动mysql服务
systemctl start mysqld
[root@node2 src]# netstat-tunlp |grep 3306tcp60 0 :::3306 :::* LISTEN 22905/mysqld
查看3306端口,启动成功,查看第一次运行mysql时,系统分配的root账号临时密码,在日志文件里搜索'temporary password'
[root@node3 mysql-5.7.26]# grep 'temporary password' /var/log/mysqld.log2019-05-03T07:30:18.845325Z 1 [Note] A temporary password is generated for root@localhost: _:fwrY:W-8;l
6、利用密码,启动mysql客户端并修改root账号密码
[root@node3 mysql-5.7.26]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connectionid is 2Server version:5.7.26Copyright (c)2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.
mysql>alter user 'root'@'localhost' identified by 'xxxxxxx';
Query OK,0 rows affected (0.00sec)
mysql> quit
7、利用新密码重新登录mysql
[root@node3 mysql-5.7.26]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connectionid is 3Server version:5.7.26MySQL Community Server (GPL)
Copyright (c)2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.
mysql>
8、设置远程连接权限
update user set host = ’%’ where user = ’root’; //出现报错可以忽略
grant all privileges on*.* to root@'%' identified by "mypassword";
flush privileges;
9、查看结果
select host,user,password from user;