MySQL单节点部署

2024-08-09 18:26:15 浏览数 (1)

介绍

MySQL 是一个开源的关系型数据库管理系统,用于存储和管理数据。通俗来说,MySQL 就像一个电子表格或一个大型的文件柜,帮助我们组织、存储和检索信息。

例子:

想象一下一个图书馆。

数据存储:图书馆有很多书籍,每一本书都有标题、作者、出版日期等信息。图书馆的管理员将这些信息记录在一个系统中,这就类似于 MySQL 存储数据。

数据管理:当有人想借书时,管理员可以快速查询系统,查看这本书是否可借,或者当新书到货时,管理员可以将新书的信息添加到系统中。这就像 MySQL 让用户能够方便地管理和查询数据。

数据安全:图书馆可能会限制某些特定区域的访问,比如只允许工作人员进入的书库,确保只有授权人员能够修改书籍信息。这相当于 MySQL 的权限管理功能,保护数据的安全性。

部署

代码语言:shell复制
# 切换到 /opt/software 目录下,创建一个mysql文件夹
# 将以下安装包和jar包上传至mysql文件夹
mysql-community-client-8.0.31-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm
mysql-community-common-8.0.31-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
mysql-community-libs-8.0.31-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm
mysql-community-server-8.0.31-1.el7.x86_64.rpm
mysql-connector-j-8.0.31.jar

cd /opt/software 
mkdir mysql

# 创建一个部署脚本
vim install_mysql.sh

#!/bin/bash
set -x
[ "$(whoami)" = "root" ] || exit 1
[ "$(ls *.rpm | wc -l)" = "7" ] || exit 1
test -f mysql-community-client-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-common-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-libs-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm && 
test -f mysql-community-server-8.0.31-1.el7.x86_64.rpm || exit 1

# 卸载MySQL
systemctl stop mysql mysqld 2>/dev/null
rpm -qa | grep -i 'mysql|mariadb' | xargs -n1 rpm -e --nodeps 2>/dev/null
rm -rf /var/lib/mysql /var/log/mysqld.log /usr/lib64/mysql /etc/my.cnf /usr/my.cnf

set -e
# 安装并启动MySQL
yum install -y *.rpm >/dev/null 2>&1
systemctl start mysqld

#更改密码级别并重启MySQL
sed -i '/[mysqld]/avalidate_password.length=4nvalidate_password.policy=0' /etc/my.cnf
systemctl restart mysqld

# 更改MySQL配置
tpass=$(cat /var/log/mysqld.log | grep "temporary password" | awk '{print $NF}')
cat << EOF | mysql -uroot -p"${tpass}" --connect-expired-password >/dev/null 2>&1
set password='000000';
update mysql.user set host='%' where user='root';
alter user 'root'@'%' identified with mysql_native_password by '000000';
flush privileges;
EOF


# 添加权限
chmod 777 ./install_mysql.sh

# 启动部署脚本
sh install_mysql.sh

测试

代码语言:shell复制
# 登录mysql
mysql -uroot -p000000

# 查看当前用户状态
mysql> select user , host , plugin from mysql.user;
# 检查是否有 root  %  mtsql_native_password 这行数据,有就是加载成功
# 没有执行以下语句
mysql> alter user 'root'@'%' identified with mysql_native_password by '000000';

出现以下结果表示部署成功

导入练习数据(可选)

代码语言:shell复制
source "/opt/data/gmall.sql"

0 人点赞