当前位置: 首页 > article >正文

CentOS7 离线部署MySQL8.0+

Linux离线部署MySQL8.0+

一. 下载安装包和依赖:
  1. 查看服务器上的glibc版本
rpm -qa|grep glibc
# 输出:
glibc-headers-2.17-326.el7_9.3.x86_64
glibc-common-2.17-326.el7_9.3.x86_64
glibc-devel-2.17-326.el7_9.3.x86_64
glibc-2.17-326.el7_9.3.i686
glibc-2.17-326.el7_9.3.x86_64

  1. 确定MySQL下班版本
  • 下载地址:https://dev.mysql.com/downloads/mysql/
  • 根据截图下载MySQL安装包

在这里插入图片描述

  • 从第一步也能知道glibc的版本是2.17,所以下载的时候要选择2.17版本,如果下载2.28的话,需要更新glibc依赖,比较繁琐
  1. libaio库的下载,初始化数据库用
  • 在安装过程中初始化数据库时,经常会报error while loading shared libraries: libaio.so.1。

  • 这是由于缺少libaio库,下载地址:
    http://www.rpmfind.net/linux/rpm2html/search.php?query=libaio(x86-64)

二. 安装部署MySQL
  1. 创建新的用户组和新的用户,用来管理mysql,提高安全性
  • 创建用户组
groupadd mysql
  • 添加mysql用户 ,并制定组为mysql,/sbin/nologin意思是用户不允许登录
useradd -r -g mysql.mysql -s /sbin/nologin

注意:一定要创建一个非root的用户来安装,mysql不允许以root用户运行

  1. 上传mysql程序包mysql-8.4.4-linux-glibc2.17-x86_64.tar.xz到/home下
cd /home
tar -Jxf mysql-8.4.4-linux-glibc2.17-x86_64.tar.xz
mv mysql-8.4.4-linux-glibc2.17-x86_64 /usr/local/mysql-8.4.4

  1. 创建数据存储目录,日志目录和mysqld.log日志文件,并设置读写权限
  • 创建data和log目录
mkdir /usr/local/mysql-8.4.4/{datda,logs}

  • 创建日志文件
touch /usr/local/mysql-8.4.4/logs/mysqld.log
  • 设置data和log目录的读写权限,-R表示整个目录授权
chmod 777 -R /usr/local/mysql-8.4.4/{data,logs}

在这里插入图片描述

  1. 给mysql用户授权能够访问/usr/local/下的mysql-8.4.4文件夹
chown -R mysql.mysql /usr/local/mysql-8.4.4/
  1. 创建并编辑/etc/my.cnf配置文件
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql-8.4.4
datadir=/usr/local/mysql-8.4.4/data
socket=/usr/local/mysql-8.4.4/mysql.sock
# 开启ip绑定
# bind-address = 0.0.0.0
log_timestamps = SYSTEM
open_files_limit=30000
max_connections=3000
# 控制其通信缓冲区的最大长度
max_allowed_packet=256M
# 设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写
lower_case_table_names = 1
#
# 开启慢查询
# slow_query_log=on
# slow_query_log_file=/home/mysql-8.4.4/log/slow-query.log
#
[mysqld_safe]
log-error=/usr/local/mysql-8.4.4/logs/mysqld.log
pid-file=/usr/local/mysql-8.4.4/data/mysqld.pid
# 指定客户端连接mysql时的socket通信文件路径
[client]
socket=/usr/local/mysql-8.4.4/mysql.sock
default-character-set=utf8

  1. 安装libaio库
rpm -ivh libaio-0.3.112-1.el8.x86_64.rpm

7、初始化数据库,在MySQL的安装目录下执行命令

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

在这里插入图片描述

此时会生成一个临时密码 如:CcPcnyCW%3Go【记住此临时密码,下面会用上】,每个人安装部署时产生的临时密码不一致,以初始化数据库打印的临时密码为准

注意:如果需要重新初始化配置,需要将data目录下的文件清空,否则初始化会失败

  1. 添加至开机启动
  • 在mysql5.7.29的目录下执行下列语句,把启动脚本放到开机初始化目录
cp ./support-files/mysql.server /etc/init.d/mysqld

  • 设置开机启动,在mysql-5.7.29的目录下执行下列语句(按个人需求选择加或不加)
chkconfig --add mysqld

  1. 修改mysqld,使用vim /etc/init.d/mysqld 命令

修改以下代码部分,具体以实际路径为准,位置在开始部分第一次出现basedirdatadir

basedir=/usr/local/mysql-8.4.4
datadir=/usr/local/mysql-8.4.4/data

  1. 启动mysql服务和修改mysql初始化密码
# 启动
service mysqld start
# 停止
service mysqld stop
# 重启
service mysqld restart

启动的发现报错了,这时候查看3306端口发现端口是被正常监听的,但是停止服务又提示pid不存在,这时候先kill一下,然后再次启动发现OK了
在这里插入图片描述

三. 设置MySQL用户密码和远程访问
  1. 终端访问数据
./bin/mysql -uroot -p -S /home/mysql-5.7.29/mysql.sock

mysql.sock在mysql启动后会自动生成,生成的路径就是/etc/my.cnf配置的路径,root密码为:CcPcnyCW%3Go

  1. 设置root密码
  • 需要先修改密码,不然什么也做不了
alter user 'root'@'localhost' identified by '123456';
# root@localhost是对应MySQL的用户,123456是需要修改的密码。
  1. 选择数据库
uss mysql;
  1. 设置远程客户端访问
update user set user.Host='%' where user.User='root';
# 设置用户root的访问地址不受限制
  1. 执行生效指令
flush privileges;

在这里插入图片描述

这里建议设置完成后不要马上退出mysql,先用可视化工具连接测试一下,否则可能连接不上,但是用户名和密码又没错,如果没退出,你还能再次输入通过指令修改root的密码,所以保证连接成功后,在输入exit进行退出。

最后通过可视化工具连接测试成功,自此mysql-8.4.4在Linux环境上安装部署完成~

MySQL8.0+对navicat客户端版本有一定要求,如果用navicat连接数据库,需要将navica升至较新版本。


http://www.kler.cn/a/611086.html

相关文章:

  • 建造者模式的优点及其在优秀框架中的实现案例
  • GitLab 中文版17.10正式发布,27项重点功能解读【一】
  • 贪心算法经典应用:最优答疑调度策略详解与Python实现
  • Headless Chrome 优化:减少内存占用与提速技巧
  • Spring AI Alibaba ImageModel使用
  • 需求导向的K8S网络原理分析:Kube-proxy、Flannel、Calico的地位和作用
  • 浏览器存储 IndexedDB
  • CentOS 8 安装 Redis 全流程指南:从基础部署到远程安全配置
  • 无线安灯按钮盒汽车零部件工厂的故障告警与人员调度专家
  • 创建一个服务器启动自动执行的脚本,设置默认路由
  • 【MinIO】可靠的分布式MinIO集群部署
  • 基于深度学习的相位调制算法步骤
  • Android UI 组件系列(三):ImageView 使用技巧与图像加载
  • Unity游戏开发如何优化移动端的延迟渲染管线?
  • python笔记之判断月份有多少天
  • Rust从入门到精通之精通篇:24.高级异步编程
  • 做一个有天有地的css及html画的旋转阴阳鱼
  • Leetcode 188 买卖股票的最佳时机 Ⅳ
  • 【计算机网络】DHCP工作原理
  • Postman 如何发送 XML 格式的 API 请求?