179 lines
4.2 KiB
Markdown
179 lines
4.2 KiB
Markdown
---
|
||
title: "安装 Mysql"
|
||
date: 2019-10-30T13:00:28+08:00
|
||
lastmod: 2022-03-28T19:00:00+08:00
|
||
tags: ["centos", "yum", "mysql"]
|
||
categories: ["database"]
|
||
---
|
||
|
||
## CentOS7 yum 安装 Mysql5.7
|
||
### 环境
|
||
- CentOS 7.4 x86_64 最小安装
|
||
- MySQL 5.7.20
|
||
|
||
### 安装 mysql yum 源
|
||
- 下载 rpm 包
|
||
```bash
|
||
# repo 地址: https://repo.mysql.com/
|
||
cd /root/
|
||
curl -O https://repo.mysql.com/mysql57-community-release-el7.rpm
|
||
```
|
||
|
||
- 安装 mysql 源
|
||
```bash
|
||
rpm -ivh /root/mysql57-community-release-el7.rpm
|
||
```
|
||
|
||
- 更新 yum 缓存
|
||
```bash
|
||
yum clean all
|
||
yum makecache fast
|
||
```
|
||
|
||
### 安装 mysql
|
||
- yum 安装 mysql 包
|
||
```bash
|
||
yum install mysql-community-server
|
||
```
|
||
|
||
- 启动 mysql
|
||
```bash
|
||
systemctl start mysqld
|
||
```
|
||
|
||
- 查找 mysql 默认 root 密码
|
||
```bash
|
||
grep 'temporary password' /var/log/mysqld.log
|
||
```
|
||
|
||
- 修改 root 密码
|
||
```bash
|
||
mysqladmin -uroot -p password 'Pass-1234'
|
||
# 输入查找到的密码
|
||
```
|
||
|
||
## CentOS7 安装 MySQL8 通用二进制包
|
||
### 环境
|
||
- CentOS 7.9 x86_64 最小安装
|
||
- MySQL 8.0.28 多实例
|
||
- 普通用户 mortal
|
||
|
||
### 安装 mysql
|
||
- 创建普通用户 mortal,切换到 mortal 用户下
|
||
```bash
|
||
useradd -m mortal
|
||
su - mortal
|
||
```
|
||
|
||
- 下载 MySQL8 通用二进制包
|
||
```bash
|
||
cd ~
|
||
curl -LO https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
|
||
```
|
||
|
||
- 解压
|
||
```bash
|
||
cd ~
|
||
tar xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
|
||
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql
|
||
```
|
||
|
||
- 创建三个实例的目录
|
||
```bash
|
||
cd ~
|
||
mkdir -p instance-{1..3}/{file,log}
|
||
```
|
||
|
||
- 创建各实例的配置文件 instance-{1..3}/my.cnf
|
||
```bash
|
||
cd ~
|
||
for i in {1..3}; do
|
||
cat > instance-$i/my.cnf <<-EOF
|
||
[mysqld]
|
||
mysqlx = OFF
|
||
port = 330$i
|
||
basedir = /home/mortal/mysql
|
||
datadir = /home/mortal/instance-$i/db
|
||
socket = /home/mortal/instance-$i/mysqld.sock
|
||
pid-file = /home/mortal/instance-$i/mysqld.pid
|
||
secure-file-priv = /home/mortal/instance-$i/file
|
||
log-timestamps = SYSTEM
|
||
log-error = /home/mortal/instance-$i/log/error.log
|
||
slow-query-log = TRUE
|
||
slow-query-log-file = /home/mortal/instance-$i/log/slow.log
|
||
character-set-server = utf8mb4
|
||
default-storage-engine = innodb
|
||
#default-authentication-plugin = mysql_native_password
|
||
authentication_policy = mysql_native_password
|
||
lower-case-table-names = 1
|
||
|
||
[client]
|
||
socket = /home/mortal/instance-$i/mysqld.sock
|
||
EOF
|
||
done
|
||
```
|
||
|
||
### 初始化基础数据
|
||
- 初始化每个实例的数据目录
|
||
```bash
|
||
cd ~
|
||
mysql/bin/mysqld \
|
||
--defaults-file=/home/mortal/instance-1/my.cnf \
|
||
--initialize-insecure
|
||
mysql/bin/mysqld \
|
||
--defaults-file=/home/mortal/instance-2/my.cnf \
|
||
--initialize-insecure
|
||
mysql/bin/mysqld \
|
||
--defaults-file=/home/mortal/instance-3/my.cnf \
|
||
--initialize-insecure
|
||
```
|
||
|
||
### 启动 mysql
|
||
- 启动每个实例的 mysql
|
||
```bash
|
||
cd ~
|
||
mysql/bin/mysqld_safe \
|
||
--defaults-file=/home/mortal/instance-1/my.cnf \
|
||
&>> instance-1/log/mysqld_safe.out
|
||
mysql/bin/mysqld_safe \
|
||
--defaults-file=/home/mortal/instance-2/my.cnf \
|
||
&>> instance-2/log/mysqld_safe.out
|
||
mysql/bin/mysqld_safe \
|
||
--defaults-file=/home/mortal/instance-3/my.cnf \
|
||
&>> instance-3/log/mysqld_safe.out
|
||
```
|
||
|
||
### 设置 root 密码
|
||
- 设置 mysql root 账户的密码
|
||
```bash
|
||
cd ~
|
||
mysql/bin/mysqladmin \
|
||
--defaults-file=/home/mortal/instance-1/my.cnf \
|
||
password
|
||
mysql/bin/mysqladmin \
|
||
--defaults-file=/home/mortal/instance-2/my.cnf \
|
||
password
|
||
mysql/bin/mysqladmin \
|
||
--defaults-file=/home/mortal/instance-3/my.cnf \
|
||
password
|
||
```
|
||
|
||
### 客户端链接
|
||
- 使用本机客户端链接 mysql
|
||
```bash
|
||
cd ~
|
||
mysql/bin/mysql \
|
||
--defaults-file=/home/mortal/instance-1/my.cnf \
|
||
-uroot \
|
||
-p
|
||
mysql/bin/mysql \
|
||
--defaults-file=/home/mortal/instance-2/my.cnf \
|
||
-uroot \
|
||
-p
|
||
mysql/bin/mysql \
|
||
--defaults-file=/home/mortal/instance-3/my.cnf \
|
||
-uroot \
|
||
-p
|
||
```
|
||
|