步骤一:挂载镜像安装依赖
由于MySQL安装过程需要依赖net-tools、numactl-libs、libaio、perl四个包,所以先从iso镜像中安装这四个包。
注意:在预赛和决赛竞赛环境中时,net-tools、numactl-libs、libaio、perl等依赖会提前安装在环境中。
注意:在训练阶段的容器环境中操作该步骤时,可以直接联网yum或dnf来安装这些依赖。
1. 使用XShell通过SSH连接到master节点:
ssh root@192.168.157.200
输入密码连接。
2. 输入以下命令创建两个文件夹:
mkdir /mnt/iso
mkdir /opt/centosDVD
一个用来存放iso镜像,一个用来挂载镜像。
3. 在Windows工作机上打开PowerShell,输入执行以下命令:
scp E:\BigData\Component\CentOS-7-x86_64-DVD-1804.iso root@192.168.157.200:/mnt/iso/
输入master节点的密码,等待将iso镜像包传输到master节点上。
4. 在XShell中执行以下命令:
mount -t iso9660 /mnt/iso/CentOS-7-x86_64-DVD-1804.iso /opt/centosDVD/
这会将镜像挂载到/opt/centosDVD/路径下。
5. 执行以下命令备份Yum源配置文件:
mkdir /opt/backup
mv /etc/yum.repos.d/* /opt/backup/
6. 执行以下命令创建本地Yum源文件:
vi /etc/yum.repos.d/local.repo
输入以下内容:
[local]
name=local
baseurl=file:///opt/centosDVD
enabled=1
gpgcheck=0
保存并退出VI编辑器。
7. 执行以下命令更新Yum缓存:
yum clean all
yum makecache
关于在安装yum包时卡住问题解决方案
# 清理旧的 RPM 数据库缓存
rm -rf /var/lib/rpm/__db*
# 重建 RPM 数据库
rpm --rebuilddb
# 再次验证
yum check
8. 执行以下命令用本地Yum源安装依赖包:
yum -y install net-tools numactl-libs libaio perl
9. 执行以下命令卸载镜像:
umount /opt/centosDVD/
步骤二:安装MySQL
1. 在Windows工作机上打开PowerShell,输入执行以下命令:
scp E:\BigData\Component\mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar root@192.168.157.200:/root/software/
输入master节点的密码,等待将MySQL包传输到master节点上。
2. 使用XShell通过SSH连接到master节点:
ssh root@192.168.157.200
输入密码连接。
3. 解压MySQL包
tar xvf /root/software/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar -C /root/software/
4. 依次执行以下命令安装MySQL:
注意:在Docker容器中时,先执行:
yum install libncurses*
注意:在预赛和决赛竞赛环境中时,该依赖会提前安装在环境中。
rpm -ivh /root/software/mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh /root/software/mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh /root/software/mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh /root/software/mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh /root/software/mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh /root/software/mysql-community-server-5.7.25-1.el7.x86_64.rpm
步骤三:配置MySQL
1. 初始化 MySQL 数据库:
mysqld --initialize
这将创建**/var/lib/mysql/**目录,并生成一个初始密码。
2. 从日志文件中查看生成的初始密码:
grep password /var/log/mysqld.log
看到类似如下内容:
[Note] A temporary password is generated for root@localhost: gDoNyqt2tw?r
冒号后面的内容即为初始密码。
3. 设置目录权限:
chown -R mysql:mysql /var/lib/mysql/
这确保 /var/lib/mysql/ 目录以及其所有父级目录对 MySQL 用户有适当的权限。通常,这些目录的所有者应该是 MySQL 用户,组也应该是 MySQL 组。
4. 设置SELinux 安全上下文:
chown -R mysql:mysql /var/lib/mysql/
这将根据系统默认的 MySQL 数据目录设置 SELinux 安全上下文。
5. 启动 MySQL 服务
systemctl start mysqld
注意:在容器环境中时执行以下命令来启动:
nohup /usr/sbin/mysqld --defaults-file=/etc/my.cnf &
6. 使用以下命令登录 MySQL:
mysql -uroot -p
输入刚才的初始密码。
7. 修改 root 用户密码为 123456:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
8. 允许 root 用户从任何主机连接,可以使用以下命令:
use mysql;
update user set user.Host='%' where user.User='root';
9. 刷新权限:
FLUSH PRIVILEGES;
10. 退出 MySQL:
exit
11. 使用新密码登录 MySQL:
mysql -u root -p
输入新密码 123456,如果成功登录,则表示密码修改成功。
12. 验证配置,执行以下SQL:
select USER,HOST from mysql.user;
应该输出以下内容:
+---------------+-----------+
| USER | HOST |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
再次执行以下SQL:
show grants for 'root'@'%';
应该输出以下内容:
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)