介绍
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"