离线安装mysql

本文详细介绍了在CentOS环境下从下载到安装MySQL 5.7的全过程,包括卸载预装软件、检查依赖、解压安装、初始化数据库、用户管理、启动服务及关键配置步骤。此外,还提供了如何修改初始密码、调整my.cnf配置文件以优化性能的具体指导。

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

1.官网下载mysql安装包

官方下载地址

2.安装

# 安装前需要先卸载系统自带的mariadb-lib卸载
## 查看版本
rpm -qa|grep mariadb
## 根据版本卸载
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
## 安装服务端时需要确认是否有libaio
rpm -qa|grep libaio
# 如果没有的话需要安装
# 解压安装包
tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
# 安装
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
## 初始化mysql数据库
# mysql_install_db --datadir=/var/lib/mysql 这个命令太老了,新版的用下面的命令
mysqld --initialize --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
# 初始化,执行生会在/var/log/mysqld.log生成随机密码
# 多用户管理,创建mysql用户
useradd mysql
passwd mysql
# 将文件的权利赋给该用户
chown mysql:mysql -R /var/lib/mysql
chmod -R 770 /var/lib/mysql
# 启动mysql
systemctl start mysqld

3.配置

  • 配置登录权限
# 查看初始密码
grep 'temporary password' /var/log/mysqld.log
# 修改初始密码
set password=PASSWORD('new password');
# 如果密码老不对,打开配置文件(默认为/etc/my.cnf)
vim /etc/my.cnf
# ,在[mysqld]下添加一行skip-grant-tables,然后重启mysql
mysql -u root
# 重新设置密码
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;
  • 配置my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
############## 手动配置部分 ##############
character-set-server=utf8mb4
default-time-zone='+8:00'
lower_case_table_names=1
# 跳过外部锁定,具体的详见参考地址4
skip-external-locking
# 开启bin-log日志必须要配置该参数
server-id=121
# 配置 bin-log
## 开启binlog日志使用如下一句,该为相对路径,基于的是datadir的设置
log-bin=mysql-bin
## 或者使用如下三句...嗯,结果是无法重启mysql
# log_bin=ON
# log_bin_basename=/var/lib/mysql/data/mysql-bin
# log_bin_index=/var/lib/mysql/data/mysql-bin.index
# binlog日志的自动删除时间单位天,最大值99,最小值为0,默认为0表示不自动删除
expire-logs-days=14
# 单个日志文件的容量,超过了就重新开一个新的文件进行记录
max-binlog-size=500M

############## 手动配置部分 ##############
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

参考文献

1.Centos7.2离线安装mysql5.7.20
2.ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe
3.MySQL的binlog日志
4.MySQL性能参数详解之Skip-External-Locking参数介绍

### 如何在离线环境中安装 MySQL 要在 Windows 的离线下完成 MySQL安装,可以遵循以下方法。此过程基于已下载的 MySQL 安装包以及配置文件的操作。 #### 准备工作 确保已经获取到适用于目标操作系统的 MySQL 安装程序或压缩版二进制文件。可以从官方站点或其他可信渠道预先下载适合版本的 MySQL Installer 或 ZIP 版本[^1]。如果无法连接互联网,则需提前准备好这些资源并将其复制至目标机器。 对于多实例部署情况,可以通过指定不同服务名称来区分各个 MySQL 实例。例如,在同一台计算机上运行两个独立的服务时可命名为 `mysql5` 和 `mysql8` 来加以区别。 #### 步骤说明 以下是不依赖网络环境下的典型做法: 1. **解压ZIP档案** 如果采用的是无需安装型ZIP分发形式的话,只需把该存档解开到任意目录即可开始设置流程。 2. **初始化数据目录** 使用命令行工具执行如下脚本来建立必要的数据库结构: ```bash mysqld --initialize-insecure --user=mysql ``` 3. **启动服务** 若要以后台进程方式运作,并注册成Windows Service之一员,则运用下面指令达成目的(假设自定义名为myservice) : ```cmd mysqld install myservice net start myservice ``` 以上即完成了基本的手动构建全过程描述;当然实际应用当中可能还会涉及到更多细节调整部分,像修改my.ini参数设定等内容项等都需要视具体需求而定。 ```python # 示例 Python 脚本用于验证 MySQL 连接 (仅作参考用途) import mysql.connector try: connection = mysql.connector.connect( host='localhost', user='root', password='' ) if connection.is_connected(): db_Info = connection.get_server_info() print(f"Connected to MySQL Server version {db_Info}") except Exception as e: print("Error while connecting to MySQL", e) finally: if 'connection' in locals() and connection.is_connected(): cursor.close() connection.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值