Centos7 安装mysql8.0.39(当前最新版)


一、在线安装


linux centos安装mysql8.0
在CentOS上安装MySQL 8.0,可以按照以下步骤操作:

1、下载MySQL官方的Yum Repository:

下载地址:https://dev.mysql.com/downloads/repo/yum/ 或 http://repo.mysql.com

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

如果显示wget未找到命令,则需要先安装wget:
yum -y install wget,然后再次执行上面命令, 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。


2、添加MySQL Yum Repository到你的系统:

sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

3、安装MySQL服务器:

sudo yum install mysql-community-server


报错:
mysql-community-client-8.0.x-1.el7.x86_64.rpm 的公钥尚未安装&“MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用
解决:
所以方法一逃避法:安装时直接使用
yum -y install mysql-community-server --nogpgcheck

跳过验证也可以正常安装。

想真正解决问题的话请看下面
首先通常在安装mysql前我们会执行以下代码,这里我做了注释

 # 更新密钥(秘钥为GnuPG签名,2023为版本的秘钥(对我当前是最新的),后面可能会改变)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

# 安装Mysql8.x版本 yum库, 其中的el7代表的应该是LInux7版本,可以参考阿里云的# MySQL :: 下载 MySQL Yum 存储库,2代表的大概是小版本,可以用更高的,不报错就# 行
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm 


4、启动MySQL服务:

sudo systemctl start mysqld

sudo systemctl status mysql

5、查找临时生成的root密码:

sudo grep 'temporary password' /var/log/mysqld.log

6、安全配置MySQL(设置root密码等):

sudo mysql_secure_installation

7、启动MySQL服务,并设置开机自启:

sudo systemctl enable mysqld
sudo systemctl start mysqld

8、linux下设置mysql开机自启动

a、copy并重命名
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
b、复制成功后我们需要给赋予权限
chmod +x /etc/init.d/mysql
c、添加为服务:
chkconfig --add mysql
d、查看服务列表:
chkconfig --list

二、离线安装

1.下载及解压


https://www.alipan.com/t/4BUIS57lk8HocXXW2xyC或官网

MySQL :: Download MySQL Community Server


# 解压文件至/usr/local/目录
tar -xvf mysql-8.0.39-linux-glibc2.17-x86_64.tar

解压后解压如下安装包

tar -xvf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz


2. 重命名为 mysql

mv /usr/local/mysql-8.0.39-linux-glibc2.17-x86_64/ /usr/local/mysql

3.创建用户组


groupadd mysql     #创建用户组
# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql


4.文件的所有属性改为 mysql 用户


chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组


5.创建数据目录并赋予权限


mkdir -p /data/mysql #数据目录
chown mysql:mysql -R /data/mysql


6.修改配置文件 vim /etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

7.初始化数据库


参数: --basedir 为mysql解压目录,–datadir 为mysql数据存放目录。(注意安装路径是否一致)

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始密码
cat /data/mysql/mysql.err


8. 加入到系统服务并启动mysql


cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
systemclt  start mysql.service
报错:Failed to start mysql.service: Unit not found.
解决:
如果服务单元文件存在,可能需要重新加载systemd守护进程配置,使用命令sudo systemctl daemon-reload。
之后再次尝试启动服务,使用命令sudo systemctl start mysql.service。
如果不存在 需要重新安装mysql
systemctl status mysql.service

9.登录mysql,一定要开启服务后才能登陆


/usr/local/mysql/bin/mysql -u root -p


10.重置密码,授权远程登录


# 修改密码,SQL语句后面的分号不能丢
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
FLUSH PRIVILEGES;       #刷新 
use mysql      #选择访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;       #刷新 

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值