内容说明:阿里云服务器 centos 7 系统上安装 MySQL 并配置 innodb_ruby
参考资料:
Try to install GPG v2 and then fetch the public key:
1. centos7 安装 MYSQL
1.1 下载地址及版本
Centos 选择 Red Hat
版本选择:
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_policy
和 validate_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%';
查看这两个属性的具体写法
⑦ 通过 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 暂时还不了解,先两篇链接
若有ruby2.2
版本以上环境,执行下面一条语句即可完成安装
gem install --user-install innodb_ruby
innodb_space --help # 测试一下可以显示一堆帮助不
若直接安装报错
[root@xxxx ~]# sudo gem install innodb_ruby
sudo: gem: command not found
本菜菜也不了解,ruby
上一个可靠的链接,亲测有效,客官可移步链接
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
出现下面的图片,即安装成功
⑤ 使rvm.sh
生效
source /etc/profile.d/rvm.sh
⑥ rvm list known
列出可用的 ruby 版本
⑦ 安装 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的问题,
辞职写作,从序中推断这段时间大概至少两年
看书的过程中,就能深深体会到作者提到的为了讲出来,讲明白,不停地在地上来回走
的那种呕心沥血的感觉
真的,这里有最纯粹的精神追求