下载地址
https://downloads.mysql.com/archives/community/
安装
# 检查是否有mysql
rpm -qa | grep mysql
# 如果有删掉
rpm -e --nodeps mysql的名称
#检查是否自带mariadb
rpm -qa | grep mariadb
# 有就删掉
rpm -e --nodeps mariadb.......
# 将下载的mysql文件上传 并解压
tar -vxf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
total 1179680
-rw-rw-rw-. 1 root root 603985920 Feb 13 17:05 mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--. 1 7155 31415 26760484 Apr 9 2018 mysql-community-client-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 549512 Apr 9 2018 mysql-community-common-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 4221784 Apr 9 2018 mysql-community-devel-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 24343708 Apr 9 2018 mysql-community-embedded-compat-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 2349488 Apr 9 2018 mysql-community-libs-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 2156516 Apr 9 2018 mysql-community-libs-compat-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 119957152 Apr 9 2018 mysql-community-minimal-debuginfo-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 357581528 Apr 9 2018 mysql-community-server-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 20562556 Apr 9 2018 mysql-community-server-minimal-8.0.11-1.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 45494324 Apr 9 2018 mysql-community-test-8.0.11-1.el7.x86_64.rpm
# 按照顺序安装部分 如果存在Failed dependencies 增加 --nodeps --force
# 例如:rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
# 安装之后 /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 如果要修改默认配置,最好在初始化之前修改,mysqld.log需要复制,可以修改所属用户和用户组
# 只修改所属用户
chown mysql mysqld.log
# 只修改所属组
chgrp mysql mysqld.log
# 同时修改所属用户、所属组
chown mysql.mysql mysqld.log
# 初始化数据库 (想重新初始化把data目录下内容清空即可)
mysqld --initialize --user=mysql
# 查看对应的log文件 自定义的话查看自定义文件,找到对应的root密码,即 Y7LuAl0cMl/l
cat /var/log/mysqld.log
2023-02-14T01:17:06.800450Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.11) initializing of server in progress as process 85465
2023-02-14T01:17:08.564297Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Y7LuAl0cMl/l
2023-02-14T01:17:09.440044Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.11) initializing of server has completed
启动
# 启动mysql服务
systemctl start mysqld.service
# 登录 使用之前生成的随机密码
mysql -uroot -p
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
# exit; 重新登录
# 设置密码不过期
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
# 密码认证方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# 开启远程访问 默认是localhost,也就是只有本机可以访问这个mysql服务
use mysql;
update user set host = '%' where user = 'root';
# 不重启mysql使权限生效
FLUSH PRIVILEGES;
其他
# 重启mysql
systemctl restart mysqld.service
# 如果防火墙没有关闭,需要开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 防火墙重新载入,使上面开放的端口生效
firewall-cmd --reload
# 补充
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
# 查看防火墙开放的端口
firewall-cmd --list-all
# 防火墙关闭端口
firewall-cmd-zone=public --remove-port=80/tcp --permanent
搞定!收工!