centos7 安装 MySQL 及配置 innodb_ruby

内容说明:阿里云服务器 centos 7 系统上安装 MySQL 并配置 innodb_ruby

参考资料:

尚硅谷-p99 Linux 下安装MySQL 5.7 版本

黑马-p65 MySQL安装Linux版本

CentOS7安装ruby2.6.3

Try to install GPG v2 and then fetch the public key:

1. centos7 安装 MYSQL

1.1 下载地址及版本

MySQL Community Server 5.7.38

Centos 选择 Red Hat
centos7 安装 MySQL 及配置 innodb_ruby_第1张图片
版本选择:

rpm package, rpm bundle ,Compressed TAR Archive

其中:rpm bundle 版本是所有包的集合,包括 server, client 等

Compressed TAR Archive 源码安装,需要编译

1.2 安装流程

① 下载 tar 包后,上传到 MobaXterm 上,使用 -xvf 解压

tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar

② 通过 ls列出解压目录下的.rpm文件

按照如下顺序分别进行安装

rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.38-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.38-1.el7.x86_64.rpm

yum install openssl-devel

rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm

安装 mysql-community-lib的时候,可能会报错

error: Failed dependencies:
        mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.38-1.el7.x86_64
        mariadb-libs is obsoleted by mysql-community-libs-5.7.38-1.el7.x86_64

再重新安装 mysql-community-common还会同样报错

执行 yum remove mysql-libs后再次从 mysql-community-common开始执行即可

③ 通过 mysqld启动MySQL 服务器

systemctl start mysqld

④ 通过 mysql客户端连接MySQL

mysql -u root -p

输入上述命令后,需要输入密码,但此时还未设置密码,可在mysqld.log中查看密码

⑤ 通过 mysqld.log查看初始密码

cat /var/log/mysqld.log

cat用于查看mysqld.log日志,日志内容中root@localhost:后面部分即为初始密码

输入初始密码后,可成功连接 MySQL,接下来还要修改为自己设置的密码

⑥ 修改密码验证属性

直接说结论:MySQL的密码强度有一定要求,因此需要修改修改两个属性

validate_password_policyvalidate_password_length

这个地方有个坑,那就是5.7版本和8.0版本此处有细微差别

MySQL5.7版本:

set global validate_password_policy=0;
set global validate_password_length=1;

MySQL8.0版本:最后那个_换成了.

set global validate_password.policy=0;
set global validate_password.length=1;

可根据 show variables like 'validate_password%';查看这两个属性的具体写法
centos7 安装 MySQL 及配置 innodb_ruby_第2张图片
⑦ 通过 alter设置登录密码

 alter user 'root'@'localhost' identified by 'xxxxxx';

修改完密码后,exit当前连接,用新密码验证是否能成功登录

⑧ 开放云服务器的 3306 端口

⑨ 创建一个可远程连接的 root 用户

root@localhost仅支持本机连接

create user 'root'@'%' identified with mysql_native_password by 'xxxxxx';

2. 安装 innodb_ruby

innodb_ruby 暂时还不了解,先两篇链接

innodb文件分析工具 innodb_ruby

深入理解MySQL–innodb_ruby工具

若有ruby2.2版本以上环境,执行下面一条语句即可完成安装

gem install --user-install innodb_ruby

innodb_space --help # 测试一下可以显示一堆帮助不

若直接安装报错

[root@xxxx ~]# sudo gem install innodb_ruby
sudo: gem: command not found

本菜菜也不了解,ruby

上一个可靠的链接,亲测有效,客官可移步链接

centos7 安装 ruby 2.6.3

2.1 安装 ruby

① 查看ruby版本,并检验是否安装

ruby -v

② 安装 ruby

yum -y install -y ruby

complete!即安装成功

2.2 ruby 版本升级

上述安装 ruby 后,还是要先进行版本升级,否则还会报错

[root@xxxx ~]# sudo gem install innodb_ruby
Fetching: bindata-2.4.10.gem (100%)
Successfully installed bindata-2.4.10
Fetching: rake-13.0.6.gem (100%)
ERROR:  Error installing innodb_ruby:
        rake requires Ruby version >= 2.2.

① 安装 ruby 依赖包

yum install gcc-c++ patch readline readline-devel zlib zlib-devel \
 libyaml-devel libffi-devel openssl-devel make \
 bzip2 autoconf automake libtool bison iconv-devel sqlite-devel

② 添加阿里云的 gem 源

gem sources -a http://mirrors.aliyun.com/rubygems/    --添加阿里云镜像地址

③ 获取密钥

这里获取密钥没有成功,可能与原博主前面安装的时候有点小区别

Try to install GPG v2 and then fetch the public key:

按照github上wtmitchell3 commented on 3 Sep 2021用户的评论顺利解决

之后的就接上了

④ 安装 rvm

curl -sSL https://get.rvm.io | bash -s stable

出现下面的图片,即安装成功
centos7 安装 MySQL 及配置 innodb_ruby_第3张图片
⑤ 使rvm.sh生效

source /etc/profile.d/rvm.sh

rvm list known列出可用的 ruby 版本

centos7 安装 MySQL 及配置 innodb_ruby_第4张图片
⑦ 安装 ruby 2.7 版本

rvm install 2.7

最后出现:Install of ruby-2.7.2 - #complete即安装成功

⑧ 安装 innodb_ruby

gem install innodb_ruby

⑨ 验证是否安装成功

innodb_space --help

总结:本来计划源码安装 MySQL 的,结果安装的时候没搞明白,加之对调试源码的目标暂不明确

另外真的很佩服和感谢本文引用的centos7 安装 ruby 2.6.3的作者

安装 innodb_ruby 是想试试能够用来分析下 redo_log,再不然分析下 .ibd 文件,

但安装中遇到问题却在思考为了那个不甚明确的方案,值不值得因为安装失败继续花费时间

找了很多博客后,开篇看到作者说解决问题花了3天的时间,脑子一下子清醒了,值不值不重要,解决问题很重要

最近学习MySQL,看到MySQL是怎样运行的作者自嘲并非能力很出众,却为了搞清楚MySQL的问题,

辞职写作,从序中推断这段时间大概至少两年

看书的过程中,就能深深体会到作者提到的为了讲出来,讲明白,不停地在地上来回走的那种呕心沥血的感觉

真的,这里有最纯粹的精神追求

你可能感兴趣的:(MySQL,mysql,开发语言)