暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 渐进之路(基础篇)

晟数学苑 2022-01-05
776

点击蓝字 阅读更多干货

第一章 MySQL 安装

  MySQL 安装有三种方式,基于二进制,源码和 rpm 方式安装。其中 rpm 安装可以使用 yum 命令和 rpm 命令进行安装。

1.1 使用源码安装

 

下载源码包,地址:
https://dev.mysql.com/downloads/mysql/


1. 上传源码包到 /opt/software 目录下

[root@server1 software]# ls
mysql-boost-8.0.27.tar.gz
[root@server1 software]#

2. 解压安装包

[root@server1 software]# tar -zxf mysql-boost-8.0.27.tar.gz 
[root@server1 software]# ls
mysql-8.0.27 mysql-boost-8.0.27.tar.gz

3. 切换到解压目录

[root@server1 software]# cd mysql-8.0.27/
[root@server1 mysql-8.0.27]#


4. 源码安装条件

· Cmake

· make

make 版本高于3.75 版本可以通过如下命令查看

[root@server1 mysql-8.0.27]# make --version
GNU Make 3.82
Built for x86_64-redhat-linux-gnu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[root@server1 mysql-8.0.27]#

· MySQL 8.0.27 版本使用 C++17 的特性,以下系统编译版本需要满足

Linux: GCC 7.1 或者 Clang 5

macOS: Xcode 10

Solaris: GCC 10

Windows: Visual Studio 2019 Update 4

· MySQL 中使用的C api 需要 C++ 或者 C99 编译器提供

· 加密连接需要使用openssl库

· Boost C++ 库请求,下载的Boost MySQL源码包已自带

· ncurses 库请求

· 足够的内存,MySQL 编译期间,需要足够的内存,如果内存不够,使用Swap内存,那么编译速度会很慢

· 如果需要运行测试脚本,那么需要安装 Perl

· tar unzip rpm 命令(操作系统选择了development tools ,那么都已安装好)

· bison 2.1 以上


以下为检查结果:

[root@server1 mysql-8.0.27]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


[root@server1 mysql-8.0.27]# bison --version
bison (GNU Bison) 3.0.4
Written by Robert Corbett and Richard Stallman.


Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@server1 mysql-8.0.27]#


[root@server1 mysql-8.0.27]# free -m
total used free shared buff/cache available
Mem: 16027 731 13733 11 1563 14976
Swap: 16383 0 16383


[root@server1 mysql-8.0.27]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@server1 mysql-8.0.27]#


[root@server1 mysql-8.0.27]# rpm -qa ncurses
ncurses-5.9-14.20130511.el7_4.x86_64


  MySQL 在编译过程中会寻找调用API 时使用的头文件,因此,确保 ncurses bison openssl 的devel 包已经安装。

[root@server1 mysql-8.0.27]# yum install -y ncurses-devel openssl-
devel bison-devel cmake3 scl-utils policycoreutils-python-2.5-
34.el7.x86_64 libzstd editline-devel openldap-devel openldap-devel
libedit-devel lz4-devel libicu-devel protobuf-devel libcurl-devel
re2-devel unixODBC-devel libudev-devel perl-IPC-Cmd systemd-devel

这里需要注意的是 libevent 需要使用2.1版本以上,使用源码编译

libicu库的版本至少是55,使用源码编译安装

protobuf 版本至少是3.5以上需要源码编译

zlib 版本至少是 1.2.11,需编译安装

libtirpc 版本至少是1以上,需编译安装

系统自带openssl 版本低,不支持 zlib 命令,选择编译安装

5. 添加 mysql 操作系统用户


6. 切换到源码解压构建源码文件

[root@server1 ~]# cd /opt/software/mysql-8.0.27/
[root@server1 mysql-8.0.27]# mkdir bld
[root@server1 mysql-8.0.27]# cd bld/


7. 源码配置选项

   在执行 cmake3 之前,需要先安装以下包,可从网站下载 https://cbs.centos.org/koji/

devtoolset-10-binutils-2.35-5.el7.3.x86_64.rpm    devtoolset-10-
libstdc++-devel-10.2.1-11.2.el7.x86_64.rpm mysql-boost-8.0.27.tar.gz
devtoolset-10-gcc-10.2.1-11.2.el7.x86_64.rpm devtoolset-10-
runtime-10.1-0.el7.x86_64.rpm devtoolset-10-gcc-c++-10.2.1-
11.2.el7.x86_64.rpm

执行安装

[root@server1 software]# for pkg in `ls *.rpm`;do rpm -ivh $pkg;done


[root@server1 bld]# cmake3 ../ -DWITH_BOOST=/opt/software/mysql-
8.0.27/boost


8. 执行编译

1 [root@server1 bld]# make -j16

编译结果如下则表示编译成功


9. 执行安装

[root@server1 bld]# make install -j16

出现如下结果表明编译安装成功

10. 检查安装目录

1.2 MySQL 安装目录概览

软件安装完成后,会在安装目录下生成以下目录


其中bin 目录可执行程序的含义:

bin:MySQL 可执行程序的目录


mysqld: SQL 守护进程,换句话说,就是MySQL 服务器守护进程。客户端访问数据库必须保证该守护进程运行。

mysqld_safe:服务器启动脚本。

mysql_secure_install:安装MySQL数据库集簇以增强安全性的程序,具体表现如下:

· 可以设置 root 账户密码

· 移除 root 账户通过 localhost 访问权限

· 移除匿名用户账户

· 移除test 数据库

mysql_ssl_rsa_setup:配属数据库使用SSL 或者 RSA进行安全连接。

mysqlimport: 是 LOAD DATA SQL语句的外部客户端工具

mysqldump: 数据库对象的逻辑导出客户端工具,导出的文件默认为平文本

mysqlpump: 数据库对象逻辑导出的并行客户端工具

mysqlshow: 用来显示数据库、表、列、索引信息的客户端工具

mysql_config_editor: 用来生成免密登录 MySQL 数据库的相关凭证

mysqldumpslow: 用来解析 MySQL 慢日志的工具客户端

perror: 用来显示MySQL 错误代码的工具

zlib_decompress: 用来解压使用 mysqlpump 工具备份时使用 zlib 压缩的文件的客户端工具

mysqlbinlog: 用来读取 binlog 日志的客户端工具

myisampack: 用来将 MyISAM 表压缩生成更小的只读表的客户端工具

myisamlog: 用来处理 MyISAM 日志文件内容的客户端工具

1. 配置 MySQL 环境变量

2. 编辑配置文件my.cnf

2. 创建配置文件中必要的目录和授权

3. 修改系统服务配置文件中的 MYSQLD_OPTS变量

4. 初始化MySQL 数据库集簇

5. 配置安全连接

6. 启动 MySQL 实例

7. 查看默认初始化密码


8. 使用默认密码登录

9. 配置系统服务

使用 systemctl 启动 MySQL 实例

  这里需要注意一下,目前原因不明,就是在启动的时候,所有的插件共享库会从数据目录下去寻找相关库,而编译安装的插件共享库在 /usr/local/mysql/lib/plugin/ 目录下。因此将编译安装目录下的插件库拷贝到 /data1/mysql/目录下

然后重新启动MySQL 数据库实例

10. 修改MySQL 用户的默认密码

   首次使用MySQL 数据库实例,需要修改默认密码才可以使用,否则会出现如下信息:

  修改默认密码

  修改密码完成后可以使用新密码进行登录

期待你的

分享

点赞

在看


文章转载自 晟数学苑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论