同一台Linux同时安装MYSQL5.7和MYSQL8(第二篇)

本文详细描述了如何在Linux系统上安装和配置MySQL8.0.27版本,包括上传安装包、修改my.conf和mysql.server、数据目录设置、初始化数据库、创建软链接以及配置远程连接权限的过程。

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

MYSQL8安装步骤
1、上传安装包 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
2、解押 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz 并修改名称

[root@zonghe21 data]# tar xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[root@zonghe21 data]# mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
[root@zonghe21 data]# ll

3、进入mysql文件夹创建data目录(有点忘记是手动创建还是自动创建了)

[root@zonghe21 mysql]# mkdir data

4、上传my.conf文件和mysql.server

#my.conf所在路径
[root@zonghe21 mysql8]# pwd
/data/mysql8
#mysql.server所在路径
[root@zonghe21 support-files]# pwd
/data/mysql8/support-files

5、my.conf文件内容(从服务器只需要将修改server-id=84)

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
port = 33069
socket = /data/mysql8/mysql.sock
default-character-set=utf8

[mysqld]
#skip-grant-tables
server-id=63
log-bin=/data/mysql8/data/mysql-bin
port = 33069
# datadir=/data/mysql8/data
socket = /data/mysql8/mysql.sock
max_allowed_packet = 20M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
# 最大连接数
max_connections=3000
# 连接等待时间(非交互式)
wait_timeout=1800000
# 连接等待时间(交互式)
interactive_timeout=1800000
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

# 设置最小分词索引长度
ft_min_word_len=1
# 设置查询的单词最小字数
ngram_token_size=1

6、mysql.server只需要修改62行的内容(以下为修改片段)

mysqld_pid_file_path=
if test -z "$basedir"
then
  basedir=/data/mysql8
  bindir=/data/mysql8/bin
  if test -z "$datadir"
  then
    datadir=/data/mysql8/data
  fi
  sbindir=/data/mysql8/bin
  libexecdir=/data/mysql8/bin
else
  bindir="$basedir/bin"
  if test -z "$datadir"
  then
    datadir="$basedir/data"
  fi
  sbindir="$basedir/sbin"
  libexecdir="$basedir/libexec"
fi

7、初始化(由于第一篇文章mysql账号已建立,所以不需要再建账号)

[root@zonghe22 mysql8]# mkdir data
[root@zonghe22 mysql8]# chmod 755 my.cnf
[root@zonghe22 support-files]# chmod 755 mysql.server 
[root@zonghe22 mysql8]# chown mysql:mysql /data/mysql8/
[root@zonghe22 mysql8]# /data/mysql8/bin/mysqld --defaults-file=/data/mysql8/my.cnf --user=mysql --initialize
# 复制注册连接服务文件 这样就可以使用mysql8启动了
cp -rf  /data/mysql8/support-files/mysql.server /etc/init.d/mysql8
# 建立软连接
ln -s /data/mysql8/bin/mysql /usr/bin/mysql8
# 启动
[root@zonghe37 mysql8]# service mysql8 start
[root@zonghe22 bin]# mysql8 -uroot -p -S/data/mysql8/mysql.sock
在日志中找初始密码
注:openEuler不会将密码输出到日志中,可在my.conf中[mysqld]标签下增加
    skip-grant-tables
    配置完成后会免密登陆,然后进行修改密码后,注释掉这一段,然后重启mysql

8、配置mysql8远程连接权限

1. 选择mysql数据库;

use mysql;


2. 修改user表使其root用户可以通过远程连接

update user set host='%'where user='root';


3. 刷新权限,重新连接就ok了

flush privileges;

<think>我们正在回答用户关于在CentOS 7上手动安装MySQL的问题。根据引用内容,我们可以参考CentOS 7安装MySQL的步骤,特别是手动安装(即不使用yum等包管理器,而是下载rpm包或源码编译安装)。但是,用户要求的是手动安装,而引用中提到了使用rpm包安装的方法(引用[3]),这通常被视为手动安装的一种,因为用户需要自己下载rpm包并安装,而不是使用yum仓库自动解决依赖。 然而,用户可能期望的是更彻底的手动安装,比如从源代码编译安装。但考虑到引用中提供的是rpm安装方式,且rpm安装也是手动安装的一种常见形式(特别是当用户从官网下载rpm包时),我们将按照rpm安装的方式来指导。 注意:引用[3]中提到了安装MySQL 8.0.27的具体rpm包列表,我们可以参考。 步骤概览: 1. 下载所需的rpm包 2. 安装依赖(如libaio等) 3. 按顺序安装rpm包 4. 初始化MySQL并启动服务 但是,引用[3]中提到的安装方法有两种,其中第一种是按照官方文档安装。我们参考官方文档的步骤,结合手动安装的要求。 详细步骤: 1. 下载MySQL的rpm包 前往MySQL官网下载页面(https://dev.mysql.com/downloads/mysql/),选择“Red Hat Enterprise Linux / Oracle Linux”版本(因为CentOS与RHEL兼容),选择对应的版本(如8.0.27操作系统版本(el7对应CentOS7)。下载以下rpm包(根据引用[3]列出的包): - mysql-community-client-8.0.27-1.el7.x86_64.rpm - mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm - mysql-community-common-8.0.27-1.el7.x86_64.rpm - mysql-community-devel-8.0.27-1.el7.x86_64.rpm (可选,开发用) - mysql-community-embedded-compat-8.0.27-1.el7.x86_64.rpm (可选) - mysql-community-libs-8.0.27-1.el7.x86_64.rpm - mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm - mysql-community-server-8.0.27-1.el7.x86_64.rpm - mysql-community-test-8.0.27-1.el7.x86_64.rpm (可选,测试用,可省略) 注意:实际安装时,建议下载最新版本,而不是特定的8.0.27。 2. 安装前准备 确保系统没有安装MariaDB或其他MySQL版本,如果有,请先卸载。 安装依赖包libaio: sudo yum install libaio 3. 安装rpm包 将下载的rpm包放在同一目录下,然后使用rpm命令安装。注意安装顺序,因为包之间有依赖关系。通常的安装顺序是: common -> libs -> libs-compat -> client-plugins -> client -> server 其他包(如devel、embedded-compat、test)可以按需安装。 例如: sudo rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm sudo rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm 如果遇到依赖问题,可以使用yum localinstall来安装,它会自动解决依赖(但需要网络下载依赖包): sudo yum localinstall mysql-community-*.rpm 4. 启动MySQL服务 sudo systemctl start mysqld 5. 获取临时密码 sudo grep 'temporary password' /var/log/mysqld.log 6. 运行安全设置(可选,但推荐) mysql_secure_installation 按照提示操作,包括修改root密码、删除匿名用户、禁止远程root登录、删除测试数据库等。 7. 设置开机启动 sudo systemctl enable mysqld 注意:如果用户希望从源代码编译安装,步骤会复杂很多,需要安装编译工具依赖,然后下载源码编译。但引用中没有提供源码安装的步骤,所以我们按照rpm包安装的方式指导。 另外,引用[4]中提到了使用scripts/mysql_install_db进行初始化,这是MySQL 5.7之前的方式,在MySQL 8.0中已经不再使用。在8.0中,安装rpm包后,第一次启动服务时会自动初始化。 因此,我们按照上述步骤进行。 生成相关问题: 1. 如何验证MySQL安装成功? 2. 如何修改MySQL的root用户密码? 3. 如何配置MySQL远程访问?</think>### CentOS 7 手动安装 MySQL 指南 #### 一、安装前准备 1. **卸载旧版本**(避免冲突): ```bash sudo yum remove mariadb* mysql* sudo rm -rf /var/lib/mysql/ sudo rm -rf /etc/my.cnf* ``` 2. **安装依赖**: ```bash sudo yum install -y libaio ncurses-compat-libs ``` #### 二、下载 MySQL RPM 包 1. 访问 [MySQL 官方仓库](https://dev.mysql.com/downloads/repo/yum/) 获取最新 RPM 包链接(以 8.0 版为例): ```bash wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm ``` 2. **导入仓库**(非直接安装): ```bash sudo rpm -ivh mysql80-community-release-el7-11.noarch.rpm ``` #### 三、手动安装核心组件 ```bash # 安装必备组件(需按顺序) sudo yum install --downloadonly --downloaddir=./mysql-rpms \ mysql-community-common \ mysql-community-client-plugins \ mysql-community-libs \ mysql-community-client \ mysql-community-icu-data-files \ mysql-community-server # 手动安装下载的 RPM 包 cd mysql-rpms sudo rpm -ivh *.rpm # 忽略依赖检查(已确保顺序) ``` > **关键说明**: > - `--downloadonly` 仅下载不安装,实现手动控制[^3] > - 必须按顺序安装:`common → plugins → libs → client → server`[^2] #### 四、初始化与启动 1. **初始化数据库**: ```bash sudo mysqld --initialize --user=mysql sudo grep 'temporary password' /var/log/mysqld.log # 获取初始密码 ``` 2. **启动服务**: ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` #### 五、安全配置 ```bash sudo mysql_secure_installation # 按提示操作:重置 root 密码、移除匿名用户、禁止远程 root 登录等[^4] ``` #### 六、验证安装 ```bash mysql -u root -p # 输入新密码 > SELECT VERSION(); # 显示版本号即成功 ``` #### 常见问题解决 - **权限错误**: ```bash sudo chown -R mysql:mysql /var/lib/mysql ``` - **端口冲突**: 检查 `/etc/my.cnf` 中 `port=3306` 是否被占用 > **注意**: > - 默认开启密码强度验证,需使用 8+ 字符含大小写/数字/符号的组合 > - 防火墙需放行 3306 端口:`sudo firewall-cmd --add-port=3306/tcp --permanent` --- ### 相关问题 1. 如何修改 MySQL 8 的默认密码策略? 2. 怎样配置 MySQL 的远程访问权限? 3. CentOS 7 安装 MySQL 时出现依赖冲突如何解决? 4. MySQL 8 与旧版本在身份验证插件上有何区别? [^1]: [MySQL 官方安装指南](https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-yum-repo.html) [^2]: [MySQL 组件安装顺序说明](https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-rpm.html) [^3]: [CentOS 7 手动 RPM 安装实践](https://dev.mysql.com/doc/refman/8.0/en/installing.html) [^4]: [MySQL 安全初始化文档](https://dev.mysql.com/doc/refman/8.0/en/mysql-secure-installation.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值