学习整理在centos7上安装mysql8.0版本教程

查看linux系统版本

cat /etc/centos-release

在这里插入图片描述

uname -a
ldd --version

在这里插入图片描述

下载mysql数据库

在这里插入图片描述

在这里插入图片描述

在命令行执行此命令,下载mysql安装包

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.42-linux-glibc2.17-x86_64.tar.xz

在这里插入图片描述

安装环境检查

# 1.查看有没有以rpm安装的mysql 在任意位置执行这个命令都可以
rpm -qa | grep -i mysql
# 执行完如果有返回值 执行下面的命令 
rpm -ev 复制上个命令返回的结果
#如果执行rpm -ev 命令报错就加上--nodeps
rpm -ev --nodeps 上个命令返回的结果
 
举例如果执行rpm -qa | grep -i mysql命令返回mysql-libs-5.5.68-1.el7.x86_64
那么就执行rpm -ev mysql-libs-5.5.68-1.el7.x86_64 如果执行这条命令报错那么就执行
rpm -ev --nodeps mysql-libs-5.5.68-1.el7.x86_64
我的没有返回值所以就没截图举例
 
 
2.上面的命令执行完后,接着删除mysql相关目录
# 获取mysql相关目录 任意位置执行这个命令都可以
find / -name mysql
#上面的命令有返回值的话执行 删除所有相关目录,-rf:表示不询问直接删除文件 把所有返回的目录删完 
rm -rf 返回的目录 
#再执行一次 验证有没有删干净
find / -name mysql

3.删除my.cnf文件
#首先查找my.cnf文件存在哪个目录
find / -name my.cnf
#删除 my.cnf,如果上条命令有返回的目录执行下面的命令,把所有的my.cnf删完,如果没有返回就不用执行了
rm -rf 返回的my.cnf所在的目录
 
4.查找存不存在mariadb相关的文件
yum list installed | grep mariadb
如果查找出来存在相关的文件 执行 直到把所有的都删完
yum remove xxx(指刚刚查出来的maridb的文件名字)

删完后再执行一次yum list installed | grep mariadb如果没有返回值表示删干净了

如果以前设置了mysql的环境变量需要删除环境变量

#查看并编辑环境变量 
#进入vim后按i进行编辑 编辑完后 按esc 再按shift+: 输入wq保存并退出,输入!q表示强制退出不保存
vim /etc/profile
# 删除环境变量后,刷新环境
source /etc/profile

查看是否卸载干净,如果没有返回值表示卸载干净了

rpm -qa|grep -i mysql

解压mysql安装包

tar -xvf mysql-8.0.42-linux-glibc2.17-x86_64.tar.xz
mv mysql-8.0.42-linux-glibc2.17-x86_64/ mysql-8.0.42

创建MySQL需要的目录及授权

在解压目录,将修改名称后的整个文件,移动到软件安装目录,/usr/local/

mv mysql-8.0.42 /usr/local/mysql

然后创建三个新文件夹,根据自己的需求创建对应的文件,我本地是挂载了一个新的数据磁盘,所以就放到磁盘目录了,并没有在系统盘


cd /data/

# 数据存储
sudo mkdir mysqldata 
# 日志存储  
sudo mkdir mysqllog   
# 临时文件 
sudo mkdir mysqltmp    

在这里插入图片描述

新增用户组

groupadd mysql

新增组用户

useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysqllog
chown -R mysql:mysql /data/mysqltmp
chown -R mysql:mysql /data/mysqldata

在这里插入图片描述

配置mysql环境变量

PATH=$PATH:/usr/local/mysql/bin
export PATH

wq保存配置文件,执行以下命令, 重新加载环境变量。

source /etc/profile

编写MySQL配置文件

[mysqld]
#允许所有 IP 连接(0.0.0.0 表示不限制)
bind-address = 0.0.0.0
 
#自定义 MySQL 服务端口(默认 3306)
port = 6033
 
#MySQL 安装目录。
basedir = /usr/local/mysql
 
#数据文件存储路径
datadir = /data/mysqldata
 

group_concat_max_len = 4294967295
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

#本地连接使用的 Unix 套接字文件。
socket=/data/mysqldata/mysql.sock

innodb_strict_mode=0
[mysql]

#本地连接使用的 Unix 套接字文件。
socket=/data/mysqldata/mysql.sock

[mysqld_safe] 
#错误日志路径(排查故障关键文件)
log-error = /data/mysqllog/error.log
 
#进程 ID 文件路径。
pid-file = /data/mysqldata/mysql.pid
#pid-file = /opt/mysql-8.0.42/data/mysql.pid
 
#临时文件目
tmpdir = /data/mysqltmp
 
#表名存储为小写,比较时不区分大小写。
lower_case_table_names = 1
#表名存储为创建时的大小写,但比较时转换为小
#lower_case_table_names = 2
 
 
#默认引擎(推荐 InnoDB)
default-storage-engine=INNODB
 
#InnoDB 缓冲池大小
innodb_buffer_pool_size = 5G
 
# 服务端默认字符集
character-set-server = utf8mb4
# 默认排序规则
collation-server = utf8mb4_unicode_ci  
# 每个新连接初始化时执行的SQL
init_connect = 'SET NAMES utf8mb4'  
 
#允许的最大数据包大小(避免大数据插入/导出失败)
max_allowed_packet=500M
 
#使用传统密码认证(兼容旧版客户端)
default-authentication-plugin = mysql_native_password


初始化数据库

一定要在mysql安装目录下的bin目录下执行,路径换成你自己的路径,我的安装路径在

/usr/local/mysql/,所以要在/usr/local/mysql/bin下执行,你们要根据自己的路径去执行。

./mysqld --initialize --user=mysql --datadir=/data/mysqldata --basedir=/usr/local/mysql

报错

 ./mysqld --initialize --user=mysql --datadir=/data/mysqldata --basedir=/usr/local/mysql
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

在这里插入图片描述
查看是否安装了libaio

使用命令yum install -y libaio进行安装

yum -y install  libaio

在这里插入图片描述
在执行初始化命令,就不报错了
执行完上面的命令,会输出几行日志其中包含了初始化随机生成的密码,如下图红框中,将这个临时密码复制保存起来,一会儿要用到。

在这里插入图片描述

如果执行完初始化命令没有输出日志,或者忘了保存临时密码了,可以去日志文件中查看,首先进入到一开始创建的log目录中

初始化msyql服务

必须在mysql的安装目录下执行

cd /usr/local/mysql/
cd support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql

指令作用如下

cp -a ./support-files/mysql.server /etc/init.d/mysql:这条指令用于将MySQL服务器的启动脚本mysql.server从MySQL安装目录下的./support-files文件夹复制到系统的服务管理目录/etc/init.d,以便可以使用系统服务管理工具来控制MySQL服务。

chmod +x /etc/init.d/mysql:这条指令用于给复制到/etc/init.d目录下的mysql脚本文件添加执行权限,确保它能够被系统调用执行启动、停止等操作。

chkconfig --add mysql:这条指令用于将MySQL服务添加到系统服务的管理系统中,chkconfig是Red Hat系列Linux系统(如CentOS、RHEL)中用于管理服务的命令,–add选项表示添加一个新的服务。执行后,MySQL服务将能够通过service命令或systemctl(在使用systemd的系统上)进行启动、停止和重启

查看是否成功,如过出现如图所示输出则表示成功了

chkconfig --list mysql

在这里插入图片描述

启动mysql

service mysql start

在这里插入图片描述

修改初始化密码

进入mysql安装目录的bin目录,执行

./mysql -uroot -p

输入刚刚让你保存的临时密码,输入后是不显示的,所以只需要输入或者粘贴一次就行,回车登录mysql成功。

在这里插入图片描述
接着执行下面的命令,单引号中是你设置的新密码,我设置成qipa250Qipa

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qipa250Qipa';

在这里插入图片描述

这样就修改成功了,可以退出mysql重新登陆试一下。输入exit退出,再次执行登录命令,登录成功

配置Linux 系统服务工具,使MySQL可以用systemctl命令启动

如果之前没有安装过mysql,应该不存在的,我是装好了所以才存在,不论存不存在这个文件,执行下面的命令,不存在这个文件的执行完会打开一个空的文本,存在的会打开这个文本。(vi/vim编辑器的部分命令:i 编辑,esc退出编辑 shift+: 输入wq保存并退出)

vi /etc/systemd/system/mysql.service

不存在这个文本的,将下面的配置粘贴进去,之前存在的可以看看配置有没有区别,或者直接覆盖掉之前的文本。注意路径要换成自己msyql安装的路径,尤其是pid,pid要与前面my.cnf中的配置的路径保持一致否则会出错,一般情况下,pid路径就设置为/run/mysqld/mysql.pid,不改动,其他的路径要保证和自己安装的mysql路径一样。

[Unit]
#描述服务为MySQL服务器‌
Description=MySQL Server
#指定在网络服务启动后再启动MySQL服务‌
After=network.target
 
[Service]
#指定服务运行用户为mysql‌
User=mysql
#指定服务运行用户组为mysql‌
Group=mysql
#定义服务类型为simple(默认类型)‌
Type=simple
#指定PID文件路径‌ 这个不改动
PIDFile=/run/mysqld/mysql.pid
#主启动命令,指定MySQL二进制文件和配置文件路径‌ 你自己的路径
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
#停止服务时执行的命令‌ 你自己的路径 这个用户与密码是你自己的
ExecStop=/usr/local/mysql/bin/mysqladmin -uroot -pqipa250Qipa shutdown
#设置服务在异常退出时自动重启‌
Restart=on-failure
#禁用私有临时目录功能‌
PrivateTmp=false
#设置启动超时时间为300秒‌
TimeoutStartSec=300
#设置停止超时时间为30秒‌
TimeoutStopSec=30
#设置服务重启间隔为5秒‌
RestartSec=5s
 
[Install]
#指定服务所属运行级别为多用户模式‌
WantedBy=multi-user.target

重载配置

systemctl daemon-reload

测试是否可以使用systemctl停止

systemctl stop mysql
service mysql stop

启动

systemctl start mysql
service mysql start 

查看状态 启动后查看状态为 active(runing)表示启动成功

systemctl status mysql
service mysql status

在这里插入图片描述

到此汇总一下启动MySQL的几种方式
汇总一下启动mysql的几个方式,前提是按照步骤一直做到这一步。

1.进入mysql-8.0.42的support-files目录下执行命令./mysql.server start启动,执行./mysql.server stop停止

2.进入mysql-8.0.42的bin目录下执行命令./mysqld_safe & 启动

执行…/support-files/mysql.server stop 停止

3.在任意目录下执行 sudo service mysql start启动,执行sudo service mysql stop停止

4.任意目录下执行 systemctl start mysql启动,执行systemctl stop mysql停止

远程连接配置

启动MySQL服务,登录mysql客户端,依次执行如下命令

mysql> use mysql;
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;

在这里插入图片描述

执行完毕后,打开navicat,输入自己服务器的地址,mysql的用户名和密码,测试连接成功。

在这里插入图片描述

### 如何下载和安装 MySQL 8.0.42 #### 下载 MySQL 8.0.42 访问官方下载页面,选择适合的操作系统版本进行下载。对于 CentOS 7 的环境,可以从以下链接获取二进制分发包: - 官方下载地址:https://dev.mysql.com/downloads/mysql/ 在该页面中找到对应于 `MySQL 8.0.42` 的版本,并选择适用于 Linux (Generic) 的 `.tar.gz` 压缩包进行下载[^1]。 将下载好的压缩包上传至目标云服务器上的指定路径。 --- #### 解压并配置 MySQL 8.0.42 完成上传后,在服务器端执行解压操作。假设已将文件放置在 `/usr/local/src/` 路径下,则可以运行如下命令来解压: ```bash tar -zxvf mysql-8.0.42-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ ``` 随后移动解压后的目录到最终的目标位置(例如 `/usr/local/mysql`),并通过重命名实现更清晰的管理: ```bash mv /usr/local/mysql-8.0.42-linux-glibc2.12-x86_64 /usr/local/mysql ``` 接着在同一级别目录下创建 `my.cnf` 文件用于定义基础参数设置。以下是基于引用中的模板调整的内容示例[^2]: ```ini [mysqld] port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid ``` > **注意**: 需要确保上述路径存在或者手动创建对应的目录结构。 --- #### 初始化与启动服务 初始化数据目录前需确认权限分配无误,可使用以下指令赋予适当权限给 MySQL 用户组及账户: ```bash chown -R mysql:mysql /usr/local/mysql/ chmod -R u=rwx,go=rx /usr/local/mysql/ ``` 之后通过 bin 子目录下的脚本来完成实例化过程: ```bash /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql ``` 此步骤会生成必要的默认表空间以及临时密码记录日志文件中。如果不需要初始安全验证跳过选项则替换为常规形式即可。 最后添加开机自启支持并将当前进程激活起来: ```bash cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld service mysqld start ``` 至此整个部署流程结束,可以通过客户端工具连接测试正常工作状态。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值