我刚开始安装的是5.7版本,现在我打算重装,换个高版本(MySQL8.0.20)
1、第一步,清理环境
- 首先,查看系统是否已经安装了mysql数据库
rpm -qa | grep mysql
[root@localhost etc]# rpm -qa | grep mysql
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
mysql-community-client-8.0.16-2.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-server-8.0.16-2.el7.x86_64
- 查询到已安装的MySQL库后,执行以下命令依次卸载
yum remove mysql-xxx-xxx
若查询后,没有安装Mysql库,可直接跳过此步。
- 删除mysql的配置文件(MySQL卸载不会自动删除配置文件,需自行清理)
首先使用如下命令查找出所用的配置文件
find / -name mysql
[root@localhost etc]# find / -name mysql
/etc/logrotate.d/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/etc/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/usr/include/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/usr/include/mysql/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
根据需求使用以下命令 依次 对配置文件进行删除
rm -rf /var/lib/mysql
二、删除MariaDB的文件
由于 在CentOS中默认安装有MariaDB,所以如果我们不删除MariaDB文件的话,安装mysql时可能会发生冲突。 1.使用rpm 命令查找出要删除的mariadb文件,命令如下
rpm -pa | grep mariadb
可能出现结果
mariadb-libs-5.5.56-2.el7.x86_64
删除上面的程序
yum -y remove mariadb-libs.x86_64
至此,原有的mysql和mariadb数据库就删除了
三、安装mysql
- 网址:dev.mysql.com/downloads/r…
- 使用命令“yum install wget 安装wget,接下来在线安装mysql。使用命令
wget http://dev.mysql.com/get/Downloads/mysql80-community-release-el7-1.noarch.rpm
- 安装mysql80-community-release-el7-1.noarch.rpm包。使用命令:
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
- 使用命令 “yum install mysql-community-server”安装mysql。大概有1个多G,请耐心等待安装完成
yum install mysql-community-serve
默认配置文件路径: 配置文件:/etc/my.cnf 日志文件:/var/log/var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid
四、mysql初始化配置
启动mysqld服务,并设为开机自动启动。命令://这是centos7的命令
systemctl start mysqld.service
systemctl enable mysqld.service
五、修改初始密码
1.编辑MyQL配置文件添加以下内容
[root@localhost etc]# vim /etc/my.cnf
添加以下内容
default-authentication-plugin=mysql_native_password #配置文件本来就有去掉注释即可
symbolic-links=0
skip-grant-tables
保存后退出。
- 重启MySQL服务
systemctl restart mysqld
3.无密码登录MySQL
mysql -u root -p
演示如下:
[root@localhost etc]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.16 MySQL 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 clear the current input statement.
mysql>
Enter password:直接敲回车
- 进入Mysql操作界面后,执行如下
(1)将原密码设置为空
flush privileges;
use mysql;
update user set authentication_string=’’ where user=‘root’;
(2) 将root密码设置Haha@123,注意Mysql8密码设置规则必须是大小写字母+特殊符号+数字的类型
alter user ‘root’@‘localhost’ identified by ‘Haha@123’;
(3)将host更改% 方便远程接入
update user set host =’%’ where user=‘root’;
(4)使用已经设置的密码来更改加密方式
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘Haha@123’ PASSWORD EXPIRE NEVER;
(5)使用新的加密方式重新设置密码
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY 'Haha@5678;
刷新
flush privileges;
重启MySQL服务
systemctl restart mysqld
注意:开始遇到问题是不输入密码或输错密码都能连接MySQL server,后来在修改允许阿里CentOS7允许远程操作MySQL数据库时, 才发现需要去调整 /etc/my.cnf文件,注释掉skip-grant-tables,重启MySQL服务(sudo service mysqld restart),quit退出连接,重新连接就需要输入密码了, 后期如果忘记密码,可以通过skip-grant-tables配置跳过输入密码登录MySQL,执行7、8步进行修改,如果‘root’@'localhost'变为'root'@'%',那么alter语句中的也要修改