【SQL】有效避坑!新centos linux分分钟安装好mysql8,详解安装过程(含密码安全等级说明、安装路径)

写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。更多内容请点进👉我的博客K。👈阅览。

现在网路上对安装MySQL这件事的教程文章或千篇一律,或软件版本老旧。MySQL到目前为止最新版为8,本文根据官方文档安装指南为主线,详细说明mysql8的安装过程。

本文操作环境:centos7、阿里云服务器、使用rpm包安装、社区版MySQL

1. 下载哪个安装文件

下载地址:MySQL官网

本文示例用系统为centos7的云服务器。

  1. 系统选择红帽系,centos的版本号与Redhat版本号一致,所以选择x86架构64位(云服务器非ARM架构)的系统版本。

选择系统

选择系统版本

  1. 点击第一个下载,这是一个组合包(Bundle),里面包含了所有它下面的组件。我们是从零开始安装,所以选择此文件下载。

选择Bundle进行下载

  1. 点击下载按钮,会跳转到一个页面,中间有两个硕大的登录和注册按钮。不要管它俩,右击下面蓝绿色小字(No thanks, just start my download.),复制下载地址。

  2. 连接服务器,自己切换到你想保存这些rpm包的目录(示例用/root/目录)。使用wget命令下载。

# 不要复制这个代码
# 使用你自己复制的下载地址下载
wget https://dev.mysql.com/get/Downloads/MySQL-X.0/mysql-X.X.X-X.XXX.XXXXXX.rpm-bundle.tar

wget是从互联网上下载文件到当前目录。

  1. 下载好后得到以mysql开头,后缀为.tar的文件,使用tar -xvf解包。
# 先在当前目录创建mysql(示例)文件夹
mkdir ./mysql
# 再解包
tar -xvf mysql-X.X.X-X.XXX.XXXXXX.rpm-bundle.tar -C ./mysql/

tar命令是与文件打包解包有关的程序。-x选项表示现在要解包,-v选项表示显示所有过程,-f选项表示指定文件为XXX.tar,-C表示切换到某目录后再解包(示例用当前目录中的mysql文件夹)

解包得到各rpm包

2. 这些rpm包的作用

MySQL Community Edition的RPM软件包(本表摘抄自官方安装指南)

各包名摘要
mysql-community-clientMySQL客户端应用程序和工具
mysql-community-common服务器和客户端库的通用文件
mysql-community-develMySQL数据库客户端应用程序的开发头文件和库
mysql-community-embedded-compatMySQL服务器作为嵌入式库,与使用库版本18的应用程序兼容
mysql-community-libsMySQL数据库客户端应用程序的共享库
mysql-community-libs-compat以前的MySQL安装的共享兼容性库
mysql-community-server数据库服务器和相关工具
mysql-community-server-debug调试服务器和插件二进制文件
mysql-community-testMySQL服务器的测试套件
mysql-communityRPM源代码看起来类似于mysql-community-8.0.22-1.el7.src.rpm,具体取决于所选的OS

我们只安装两个部分的5个rpm包(已加粗),1. client、server和他们公用的东西common;2. 库文件libs和老版本的库文件libs-compat。

使用yum安装,yum会处理包之间的依赖关系,如果用rpm -qpl的话,可能会存在隐含的依赖关系,导致安装不成功。

sudo yum install mysql-community-{server,client,common,libs}-*

yum在当前文件夹有rmp包时,会安装本地的rpm包而不是联网下载安装。使用通配符,使5个文件一起安装(libs-*同时指代了两个库文件,他们都是以libs-开头)。

不推荐单个单个安装,这5个文件之间也有依赖关系,使用通配符一起安装会省很多事。

并且在安装过程中,会自动删除掉系统中本来有的mariadb的东西

至此MySQL已经安装成功,初次使用请接着看下文。

3. 安装到哪儿了

MySQL安装布局(本表摘抄自官方安装指南)

各包名摘要
客户端程序和脚本/usr/bin
mysqld服务器/usr/sbin
配置文件/etc/my.cnf
数据目录/var/lib/mysql
错误日志文件/var/log/mysqld.log
secure_file_priv值/var/lib/mysql-files
System V初始化脚本/etc/init.d/mysqld
系统服务mysqld
PID文件/var/run/mysql/mysqld.pid
套接字文件/var/lib/mysql/mysql.sock
Keyring目录/var/lib/mysql-keyring
man手册/usr/share/man
包含(头)文件/usr/include/mysql
库文件/usr/lib/mysql
其他支持文件(例如,错误消息和字符集文件)/usr/share/mysql

下节用到的初始密码放在错误日志文件/var/log/mysqld.log中。

4. 第一次使用

  1. 启动服务
systemctl start mysqld

centos7(含)以上版本,使用systemctl管理系统服务,这里是开启mysqld服务。

  1. 查看初始密码

从MySQL5.7开始,MySQL会在第一次安装后为管理员提供初始密码。

grep 'temporary password' /var/log/mysqld.log
# 或者
cat /var/log/mysqld.log | grep 'temporary password'

该初试密码放在/var/log/mysqld.log中,利用grep工具查找'temporary password'所在的行。

默认密码仅供第一次登录MySQL使用,登陆成功后必须马上更改密码,否则不能进行其他任何操作。

  1. 登录系统,更改密码
mysql -uroot -p

之后将提示输入密码(输入密码时无任何字符回显),进入数据库管理系统后,更改密码。若不立即更改密码,执行其他操作时会提示You must reset your password using ALTER USER statement before executing this statement.

ALTER USER 'root'@'localhost' IDENTIFIED BY '_A-Za-z0-9';

用户名为root,主机名为localhost,必须这样写!若只写个root,默认含义为'root'@'%',会提示错误。

为了保证密码有一定复杂度,新密码必须包含大小写字母、数字和其他符号。否则会提示Your password does not satisfy the current policy requirements

至此安装过程全部完成

5. 其他:密码安全等级

若此MySQL只是自用练习,希望密码改得更简单一点,请看下文。

MySQL的密码验证有三个级别(全局参数validate_password.policy的值)

级别判断项目
0 或 LOW长度
1 或 MEDIUM长度、数字、大小写、特殊字符
2 或 STRONG长度、数字、大小写、特殊字符、字典文件

现在默认是MEDIUM级别。

MySQL中查看validate_password插件是否安装(MySQL5.7(含)以上以默认安装),在MySQL中输入:

SHOW VARIABLES LIKE 'validate_password%';

若未安装,则输出为空。否则,得到下表:

Variable_nameValue
validate_password.check_user_name(检查用户名)ON
validate_password.dictionary_file(字典文件)
validate_password.length(长度)8
validate_password.mixed_case_count(大小写混写)1
validate_password.number_count(数字数)1
validate_password.policy(密码等级)MEDIUM
validate_password.special_char_count(特殊字符数)1

可以看到各个参数,此时validate_password.policy值为MEDIUM,若想修改为LOW,则输入:

set global validate_password.policy=0;

(MySQL8以下版本把.换成_

这样就只判断密码长度了,默认为8个字符长度(参数validate_password.length的值),同时可以发现,此时大小写混写数(.mixed_case_count)、数字数(.number_count)、特殊字符数(.special_char_count)都为1。

事实上,表格里的这几个值都可以通过set global XXX.XXX=X来修改。

修改了.number_count.special_char_count.mixed_case_count中任何一个值,validate_password.length都将进行动态修改。

评论 173
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AK°

佛系接受打赏????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值