linux安装mysql8-(CentOS 8.x亲测可用)

本文详细指导如何在CentOS 8系统上安装MySQL 8.0.21,包括检查残留文件、下载与解压、配置初始化、设置环境变量、启动服务及远程连接设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感谢大佬分享

本文以CentOS 8 为例(CentOS 8.x亲测可用,其他CentOS版本未测试),在Linux下安装MySQL-8.0.21
安装的mysql 版本是:mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
使用root权限操作

前言:

下载安装mysql之前先检查有没有一些未安装完成的残留mysql文件以及是否已经安装过mysql数据库:
第一步:先执行 rpm -qa | grep mysql 查看是否安装。
第二步:若安装过需要卸载,执行 rpm -e --nodeps 数据库名称。
第三步:强制删除所有mysql相关文件。首先执行 whereis mysql 查看mysql位置,再次执行 find / -name mysql 查看mysql所有相关文件。
第四步:执行 find / -name mysql | xargs rm -rf 删除mysql相关文件。

在这里插入图片描述
在这里插入图片描述

可以点我获取安装包

1.下载mysql压缩包

方法一:

去官网下载
在这里插入图片描述

注:
上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。
我们选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。
可以自行调整编译参数,最大化地定制安装结果。
下载完成之后,将压缩包上传到/usr/local目录下。

方法二:

/usr/local目录下执行命令:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz

会自动将压缩包下载到/usr/local目录下

在这里插入图片描述
上面两种方法,最终目的都是将压缩包放到/usr/local目录下。

2.解压该压缩包并重命名文件夹为 mysql8

解压:

.xz格式使用命令: tar -Jxvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
.gz格式使用命令: tar -zxvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.gz

移动

若上传的地方不是/uar/local/路径可以用mv命令移动:
mv mysql-8.0.21-linux-glibc2.12-x86_64  /usr/local/

重命名

mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql8(推荐)

或者使用软连接命令 : 

ln -s mysql-8.0.21-linux-glibc2.12-x86_64 mysql8

注:之后就可以将压缩包删除了(可删可不删):rm -rf 压缩包名称

在这里插入图片描述

3.安装初始化数据库

本人mysql的目录是:/usr/local ,MySQL的根目录是:/usr/local/mysql8
第一步:切换到根目录,创建data文件:mkdir data
第二部:创建用户组:
groupadd mysql
第三步:创建用户:
useradd -g mysql mysql
第四步:授予权限:
chown -R mysql.mysql /usr/local/mysql8/
第五步:初始化数据库1:
mkdir mysql_install_db
第六步:初始化数据库2:
chmod 777 ./mysql_install_db
第七步:初始化数据库3:
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data
(初始化之后,最后面有一串密码,一定记下来)

【注:若是报错(bin/mysqld: error while loading shared libraries: libaio.so.1:
cannot open shared object file: No such file or
directory),说明缺少依赖。执行:yum install -y libaio 就可以了】

第八步:赋值执行连接:
cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld

在这里插入图片描述

4.编辑conf文件

第一步:输入 vi /etc/my.cnf 或者 vim /etc/my.cnf

第二步:将下面内容粘贴进去:

[mysqld]
    basedir = /usr/local/mysql8
    datadir = /usr/local/mysql8/data
    socket = /usr/local/mysql8/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
   socket = /usr/local/mysql8/mysql.sock
   default-character-set=utf8

在这里插入图片描述
第三步:编辑之后,按Esx按钮,输入 :wq 退到控制台。

注:若是出现编辑之后没有权限保存的问题
即:E45: ‘readonly’ option is set (add ! to override)
步骤:
1.按Esc键
2.输入 :set noreadonly
3.然后就能输入 :wq 来保存文件了。

5.添加mysql服务并添加状态

第一步:chmod +x /etc/rc.d/init.d/mysqld
第二步:chkconfig --add mysqld
查看状态:chkconfig --list mysqld

在这里插入图片描述

6.编辑环境

第一步:输入 vi /etc/profilevim /etc/profile
第二步(在profile最后,一定是最后添加):

export PATH=$PATH:/usr/local/mysql8/bin:/usr/local/mysql8/lib

在这里插入图片描述

在这里插入图片描述
第三步(加载配置):source /etc/profile
在这里插入图片描述

7.启动服务

注:mysql版本在8.0.21之后,启动的姿势与之前版本不一定一样,所以这里使用的命令是:
systemctl start mysqld
当然,如果安装的是8.0.21之前的版本,可以使用命令:
service mysql start

启动之后,通过命令 systemctl status mysqld 查看服务
在这里插入图片描述

8.登录数据库

第一步:输入 mysql -uroot -p
第二步:输入密码(就是刚才第三项让记住的那个密码)
第三步:alter user user() identified by '你的密码';
在这里插入图片描述

到这里就已经完成了!

注:如果在登录mysql的时候报这个错:
Can’t connect to local MySQL server through
socket '/usr/local/mysql8/mysql.sock
大概率是配置的时候路径填错了导致的,直接从头捋一遍,把每个步骤中添加的配置重新检查一遍。最后,service mysqld restart
重启一下数据库,然后再ls查看一下mysql根目录是否有mysql.sock文件,若是有,则可以继续登录操作了。

超级大彩蛋

如果需要使用navicat等工具进行远程连接,那么接下来还有几个步骤去做:
第一步:确认并关闭服务器防火墙,或者去服务器控制台的配置规则中开放端口。(具体怎么操作,需要按照各自的服务器说明执行。)
第二步:进入mysql -uroot -p 进入mysql控制台。
第三步:show databases;
第四步:use mysql;
第五步:show tables;
第六步:select Host,User from user;
第七步:update user set Host = ‘%’ where User = ‘root’;
第八步:select Host, User from user;
第九步:flush privileges;
在这里插入图片描述
在这里插入图片描述
小彩蛋:
如果navicat连接mysql的时候报:
在这里插入图片描述
以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。
首先,我们登录root用户
执行命令use mysql
再执行select user,plugin from user where user='root';
可以看到当前用户的加密方式为caching_sha2_password
接着执行执行命令
alter user ‘root’@’%’ identified with mysql_native_password by ‘数据库密码’;
或者
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘数据库密码’;
将用户的加密方式改为mysql_native_password
最后,执行命令flush privileges使权限配置项立即生效。
再次尝试连接Mysql,连接成功。
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哎呦喂O_o嗨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值