目录
一、概述
二、下载
三、安装
四、卸载
五、常用设置
1、修改 root 用户密码(密码效验规则)
2、创建用户与权限分配
六、可能遇到的问题
MySQL是一种关系型数据库(存放数据库的仓库,数据存放在一张张表中,表与表之间存在一定的关系)管理系统,所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择MySQL作为网站数据库。
官网:https://www.mysql.com/
进入官网点击DOWNLOADS
选择
选择
MySQL Community Server
根据服务器的配置选择,我的服务器是Centos7 所以 Operating System 选择 Red Hat Enterprise Linux / Oracle Linux ,OS Version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit)
,选择第一个点击 Download
下载。(也可选择)
连上Linux服务器,可以先创建一个mysql的文件夹来存放安装包。
# 在 /soft 目录下创建一个空的文件夹 mysql
mkdir /soft/mysql
# 进入这个新建的文件夹下
cd /soft/mysql
然后上传之前下载好的 Linux 下 MySQL 的安装包,使用 rz
命令
在该目录下在创建一个文件夹,并且将安装包解压到该文件夹中
# 在当前目录下(mysql)下创建一个 mysql-8.0.26 文件夹
mkdir mysql-8.0.26
# 解压安装包到该目录下
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.26
解压完成之后cd到 mysql-8.0.26
目录下并查看解压之后的文件
这里解压之后的文件都是rpm文件,所以需要用到rpm包资源管理器相关的指令来安装这些rpm的安装包
在安装执行rpm安装包之前先下载 openssl-devel 插件,因为mysql里面有些rpm安装包的安装依赖于该插件
yum -y install openssl-devel
安装完该插件后,依次执行以下命令安装这些rpm包
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
在 Linux 中安装好了MySQL之后系统会自动的注册一个服务,服务名称叫做 mysqld
,所以可以通过以下命令操作 MySQL:
这里先启动 MySQL 服务
systemctl start mysqld
rpm安装 MySQL 会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找密码
cat /var/log/mysqld.log | grep "temporary password"
A temporay password is generated for root
@localhost: 密码
账号是root,有了账号和密码之后就可以连接 MySQL 了。
# 连接 MySQL
mysql -u root -p
到此 Linux 上安装 MySQL 基本结束。
卸载 MySQL 前需要先停止 MySQL
停止 MySQL 之后查询 MySQL 的安装文件:rpm -qa | grep -i mysql
卸载查询出来的所有的 MySQL 安装包
删除 MySQL 的数据存放目录
rm -rf /var/lib/mysql/
删除 MySQL 的配置文件备份
rm -rf /etc/my.cnf.rpmsave
如果你觉得 MySQL 自动生成的密码太难记忆的话,可以连接 MySQL 之后进行修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '自定义密码';
这里可能会提示 Your password does not satisfy the current policy requirements
,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。
在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR。
官网上能查到这个密码效验的规则,文档中搜索:validate_password
所以可以将这个限制密码位数设小一点,复杂度类型调底一点
# 将密码复杂度校验调整简单类型
set global validate_password.policy = 0;
# 设置密码最少位数限制为 4 位
set global validate_password.length = 4;
就可以设置较为简单的密码了。
默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问。
语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口
# mysql 8.0 以下
create user 'mike'@'%' IDENTIFIED BY 'mike8080';
# mysql 8.0
create user 'mike'@'%' IDENTIFIED WITH mysql_native_password BY 'mike8080';
创建完用户之后还需要给用户分配权限,这里我将 mike
这个用户分配了所有的权限
grant all on *.* to 'mike'@'%';
Failed to start mysqld.service: Unit not found.
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙的状态
firewall-cmd --state
# 禁止firewall开机启动
systemctl disable firewalld.service
或者为了安全,只开放特定的端口号,MySQL 默认端口是 3306
# 关闭防火墙
systemctl stop firewalld.service
# 3306 端口对外开放
firewall-cmd --remove-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload