MySQL8.0安装
- 格式:pdf
- 大小:888.23 KB
- 文档页数:9
1MySQL安装
在MySQL官⽹下载对应的版本,常⽤的安装包是⼆进制包(Linux-Generic)和源码包(SourceCode)
glibc 指的是编译MySQL的glibc版本,可以通过 ldd 命令查看 下载MySQL
$ ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35
Copyright (C) 2022 ⾃由软件基⾦会。
这是⼀个⾃由软件;请⻅源代码的授权条款。本软件不含任何没有担保;甚⾄不保证适销性
或者适合某些特殊⽬的。
由 Roland McGrath 和 Ulrich Drepper 编写。1
2
3
4
5
6Bash
2MySQL8.0⼆进制包的安装 基于⼆进制包的安装
创建操作系统⽤户
解压⼆进制包,建⽴软链接
编辑配置⽂
件
$ sudo groupadd mysql
$ sudo useradd -g mysql mysql1
2
3Bash
# 解压到指定的⽬录下
$ sudo tar xvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz -C /usr/local
# 建⽴软链接
$ sudo ln -s mysql-8.0.33-linux-glibc2.28-x86_64/ mysql1
2
3
4
5Bash
3创建数据⽬录
初始化实例
$ sudo vim /etc/my.cnf
#######################
[client]
# 套接字
socket = /data/mysql/3306/data/mysql.sock
[mysqld]
# mysql安装⽬录
basedir = /usr/local/mysql
#
数据
⽬录datadir = /data/mysql/3306/data
# 运⾏⽤户
user = mysql
# 监听端⼝
port = 3306
socket = /data/mysql/3306/data/mysql.sock
# 错误⽇志
log_error = /data/mysql/3306/data/mysqld.err
# 设置⽇志时间戳的时区,默认是UTC,这⾥设置system,使⽤系统的时区设置
log_timestamps = system
#######################1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Bash
$ sudo mkdir -p /data/mysql/3306/data
$ sudo chown mysql.mysql /data/mysql/3306/data/1
2
3Bash
4报错 /usr/local/mysql/bin/mysqld: error while loading shared libraries:
libaio.so.1: cannot open shared object file: No such file or directory
启动实例
$ sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initializ
e
# --defaults-file 参数⽂件的路径
# --initialize 初始化实例并
⽣
成密码
# --initialize-insecure 初始化实例但不⽣成密码1
2
3
4
5Bash
# ubuntu
$ sudo apt install libaio-dev
# centos
yum install libaio1
2
3
4
5Bash
5启动失败定位步骤
数据⽬录中的⽂件
$ sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
# 查看启动是否成功⽅式⼀
$ sudo cat /data/mysql/3306/data/mysqld.err
.....
2023-06-16T21:22:52.334364+08:00 0 [System] [MY-010931] [Server] /usr/loca
l/mysql/bin/mysqld: ready for connections. Version: '8.0.33' socket: '/da
ta/mysql/3306/data/mysql.sock' port: 3306 MySQL Community Server - GPL.
# 查看启动是否成功⽅式⼆
$ ps aux | grep mysqld
root 213152 0.0 0.0 2888 1872 pts/1 S 21:22 0:00 /bin/s
h /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
mysql 213303 1.9 10.0 1752060 398360 pts/1 Sl 21:22 0:02 /usr/lo
cal/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysq
l --datadir=/data/mysql/3306/data --plugin-dir=/usr/local/mysql/lib/plugi
n --user
=
mysql --log-error=/data/mysql/3306/data/mysqld.err --pid-file=Doc
ker.pid --socket=/data/mysql/3306/data/mysql.sock --port=3306
1
2
3
4
5
6
7
8
9
10
11
12Bash
# 1. 查看错误⽇志,常⻅错误
# 端⼝被占⽤
# 参数名写错
# 参数在当前版本不⽀持
# 2. 通过mysqld启动
$ sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &
# 3. 通过mysqld启动,指定必要参数。使⽤--no-defaults避免读取默认位置配置⽂件
$ sudo /usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysq
l --datadir=/data/mysql/3306/data/ --user=mysql1
2
3
4
5
6
7
8
9
10Bash
6$ ll /data/mysql/3306/data/
总计 90592
drwxr-xr-x 7 mysql mysql 4096 6⽉ 16 21:22 ./
drwxr-xr-x 3 root root 4096 6⽉ 16 15:27 ../
-rw-r----- 1 mysql mysql 56 6⽉ 16 21:15 auto.cnf # 记录实例的ser
ver-uuid
-rw-r----- 1 mysql mysql 157 6⽉ 16 21:22 binlog.000001
-rw-r----- 1 mysql mysql 16 6⽉ 16 21:22 binlog.index
-rw------- 1 mysql mysql 1680 6⽉ 16 21:15 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 6⽉ 16 21:15 ca.pem
-rw-r--r-- 1 mysql mysql 1112 6⽉ 16 21:15 client-cert.pem # 与RSA相
关的证书⽂件及私钥⽂件,⽤于开启SSL加密连接
-rw------- 1 mysql mysql 1680 6⽉ 16 21:15 client-key.pem
-rw-r----- 1 mysql mysql 7 6⽉ 16 21:22 Docker.pid
-rw-r----- 1 mysql mysql 196608 6⽉ 16 21:24 '#ib_16384_0.dblwr'
-rw-r----- 1 mysql mysql 8585216 6⽉ 16 21:15 '#ib_16384_1.dblwr'
-rw-r----- 1 mysql mysql 5632 6⽉ 16 21:16 ib_buffer_pool # ⽂本⽂
件,记录了缓冲池中数据⻚的地址(space_id和page_no)。数据库在启动后,可直接将指定的数据
⻚加载到缓冲池中,避免了较⻓的预热时间
-rw-r----- 1 mysql mysql 12582912 6⽉ 16 21:22 ibdata1 # 系统表空间,主要
包括数据字典信息、双写缓冲区(doublewrite buffer)和插⼊缓冲区(insert buffer)等。My
SQL8.0.20开始,双写缓冲区会存储在'#ib_16384_0.dblwr'和'#ib_16384_1.dblwr'中
-rw-r----- 1 mysql mysql 12582912 6⽉ 16 21:22 ibtmp1 # 全局级别的临时表空
间,主要⽤于存储⽤户创建的临时表所做变更的回滚段
drwxr-x--- 2 mysql mysql 4096 6⽉ 16 21:22 '#innodb_redo'/
drwxr-x--- 2 mysql mysql 4096 6⽉ 16 21:22 '#innodb_temp'/ # 会话级别
的临时表空间,主要⽤于存储⽤户创建的临时表和SQL在执⾏过程中产⽣的磁盘临时表
drwxr-x--- 2 mysql mysql 4096 6⽉ 16 21:15 mysql/ # mysql库,主要包括
⼀些系统表,如授权相关的表(user/db/tables_priv/columns_priv/procs_priv/proxies
_priv)、⽇志相关的表(general_log/slow_log)、复制相关的表(slave_master_info/sla
ve_relay_log_info)。MySQL8.0开始,除了⽇志相关的表,其他表放在单独的共享表空间中(my
sql.ibd)
-rw-r----- 1 mysql mysql 1473 6⽉ 16 21:22 mysqld.err # 错误⽇志
-rw-r----- 1 mysql mysql 25165824 6⽉ 16 21:22 mysql.ibd
srwxrwxrwx 1 mysql mysql 0 6⽉ 16 21:22 mysql.sock=
-rw------- 1 mysql mysql 7 6⽉ 16 21:22 mysql.sock.lock
drwxr-x--- 2 mysql mysql 4096 6⽉ 16 21:15 performance_schema/ # 采集
了MySQL运⾏过程中的性能数据
-rw------- 1 mysql mysql 1680 6⽉ 16 21:15 private_key.pem
-rw-r--r-- 1 mysql mysql 452 6⽉ 16 21:15 public_key.pem