Centos7安装配置MySQL 8.0.20

安装MySQL 8.0+

准备工作

1.查看是否有安装过mysql

rpm -qa | grep -i mysql

2.删除mysql

yum -y remove MySQL-*

一般用rpm -e 的命令删除mysql,这样表面上删除了mysql,可是mysql的一些残余程序仍然存在,并且通过第一步的方式也查找不到残余,而yum命令比较强大,可以完全删除mysql.(ps:用rpm删除后再次安装的时候会提示已经安装了,这就是rpm没删除干净的原因)

3.把所有出现的目录统统删除

find / -name mysql

查找mysql的一些目录,把所有出现的目录删除,可以使用rm -rf 路径,删除时请注意,一旦删除无法恢复。

4.删除配置文件

rm -rf /etc/my.cnf

5.删除mysql的默认密码

rm -rf /root/.mysql_sercret

删除mysql的默认密码,如果不删除,以后安装mysql这个sercret中的默认密码不会变,使用其中的默认密码就可能会报类似Access denied for user ‘root@localhost’ (using password:yes)的错误.

五步完成之后,这样mysql就全部删除干净了,若没安装过mysql可忽略以上步骤

1.配置Mysql 8.0安装源

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.在运行安装程序之前导入密钥:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3.安装Mysql 8.0

sudo yum --enablerepo=mysql80-community install mysql-community-server -y

看到complet(完毕)就是安装完啦
在这里插入图片描述

配置MySQL

vi /etc/selinux/config
SELINUX=disabled

mkdir -p /var/log/mysql
chown mysql:mysql /var/log/mysql/*
chown -R mysql:mysql /var/lib/mysql/

  1. my.cnf文件:
vi /etc/my.cnf
[mysqld]
#不区分大小写
lower_case_table_names=1
# 允许最大连接数
max_connections = 1000
# 允许最大同时连接数
max_user_connections = 500
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许服务端使用的最大内存
max_allowed_packet = 1024M
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 数据存放目录
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address=0.0.0.0

event_scheduler=ON

slow_query_log = ON
# 慢查询日志
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
innodb_buffer_pool_size = 6G

default-authentication-plugin=mysql_native_password
server-id=10
log-bin=/var/lib/mysql/mysql-bin
max_connect_errors=1000
#日志及进程数据的存放目录
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

4.启动mysql服务


mysqld --initialize
systemctl start mysqld         

显示如下:

在这里插入图片描述

启动完成

5.查看mysql服务运行状态

service mysqld status

在这里插入图片描述

6.查看root临时密码

安装完mysql之后,会生成一个临时的密码让root用户登录

grep "A temporary password" /var/log/mysql/mysqld.log

在这里插入图片描述

7.更改临时密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '1q2w#E$R';

FLUSH PRIVILEGES;

CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1q2w#E$R';

FLUSH PRIVILEGES;

8.修改权限

mysql> SELECT host,user,Grant_priv,Super_priv FROM mysql.user;
+-----------+---------------+------------+------------+
| host      | user          | Grant_priv | Super_priv |
+-----------+---------------+------------+------------+
| localhost | root          | Y          | Y          |
| localhost | mysql.session | N          | Y          |
| localhost | mysql.sys     | N          | N          |
| %         | root          | Y          | Y          |
| localhost | mysqladmin    | Y          | Y          |
+-----------+---------------+------------+------------+
5 rows in set (0.00 sec)
 
mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2  Changed: 0  Warnings: 0

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye

备用改密方案

先看看当前的密码验证策略

SHOW VARIABLES LIKE 'validate_password.%';

策略说明

validate_password.length 是密码的最小长度,默认是8,我们把它改成6
输入:set global validate_password.length=6;
validate_password.policy 验证密码的复杂程度,我们把它改成0
输入:set global validate_password.policy=0;
validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
输入:set global validate_password.check_user_name=off;
再执行修改密码的命令
输入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘12345’;
密码设成功
用mysql客户连接报不允许连接的错误,那是因为没开通远程访问的权限

  1. 将MySQL设置为开机自启动:
sudo service mysqld stop 
sudo service mysqld start
systemctl enable mysqld
systemctl status mysqld

在这里插入图片描述

关闭防火墙(看情况操作)

sudo systemctl stop firewalld

sudo systemctl disable firewalld
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

♪-Interpretation

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值