Linux配置MySQL环境(三)

Linux配置MySQL环境

  • 一、下载
    • 1. 官网下载MySQL
    • 2. 百度网盘快速下载MySQL
  • 二、安装
    • 1、通过 Xftp 将 MySQL 安装包拷贝到 Linux
    • 2、解压缩
    • 3、安装 common、libs、client、server
    • 4、初步连接
  • 三、卸载
  • 四、常用设置
    • 1. 修改 root 用户密码
  • 五、使用新密码登录
  • 六、开启远程访问
  • 七、开放 3306 端口
  • 八、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时

一、下载

1. 官网下载MySQL

官网:https://www.mysql.com/

进入官网之后点击 DOWNLOADS

Linux配置MySQL环境(三)_第1张图片

进入页面 ( 在这里我们选择社区版) ,点击 MySQL Community (GPL) Downloads »

Linux配置MySQL环境(三)_第2张图片

这里选择 Download Archives

Linux配置MySQL环境(三)_第3张图片

进入页面,选择 MySQL Community Server

Linux配置MySQL环境(三)_第4张图片

根据你服务器的配置选择,我服务器是 CentOS 7 所以 Operating System 选择 Red Hat Enterprise Linux / Oracle Linux ,OS Version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit),选择第一个点击 Download 下载。

Linux配置MySQL环境(三)_第5张图片


2. 百度网盘快速下载MySQL

以下我也提供了 MySQL 的安装包供大家使用:
链接:MySQL 8 Linux 百度网盘下载
提取码:1ef8


二、安装

1、通过 Xftp 将 MySQL 安装包拷贝到 Linux

cd 到 local 文件夹

cd  /usr/local

创建mysql文件夹

mkdir mysql

然后上传之前下载好的 Linux 下 MySQL 的安装包,使用 rz 命令(有些终端工具是可以直接上传文件的,比如 FinalShell)

(PS : 本文中,我就是使用FinalShell把文件拖入到mysql文件夹中的

Linux配置MySQL环境(三)_第6张图片
ls查看

在这里插入图片描述

2、解压缩

在该目录下再创建一个 mysql-8.0.26 文件夹,并且将安装包解压到该文件夹中

# 在当前目录下(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

PS: 为什么命令没有加’z',写成‘tar -zxvf’ ; 是因为这个文件不是gz压缩包。

解压后如图:

Linux配置MySQL环境(三)_第7张图片

解压完成之后可以切换到 mysql-8.0.26 目录下查看解压后的文件

Linux配置MySQL环境(三)_第8张图片

3、安装 common、libs、client、server

删除自带的 mariadb
先查看系统有没有mariadb。 (PS:如果自带的没有删除直接安装,后面安装common、libs、client、server可能会报错)

rpm -qa | grep mariadb

在这里插入图片描述

输入如下指令删除

rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

输入如下安装命令行,安装common、libs、client、server


rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm  --nodeps --force

rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh  mysql-community-devel-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force

如下图所示:

Linux配置MySQL环境(三)_第9张图片

PS注意: 如果有冲突,命令后面加上这个命令:

--nodeps 表示不检查依赖关系,即忽略依赖关系进行升级。
--force 表示强制进行升级,即强制覆盖原有软件包。
例如:
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force

4、初步连接

输入如下代码, 初始化MySQL。注意是mysqld

mysqld --initialize

rpm 安装 MySQL 会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码

在这里插入图片描述

  1. 授权防火墙
    按顺序输入如下指令
1.目录授权
chown mysql:mysql /var/lib/mysql -R; 

2.启动mysql服务
systemctl start mysqld.service;

3.设置MySQL服务在系统重启后自动启动
systemctl enable mysqld;

在这里插入图片描述

6、查看数据库的初始化密码
输入指令

# 获取MySQL临时密码 (本次我使用的这个)
grep 'temporary password' /var/log/mysqld.log    
或者
cat /var/log/mysqld.log | grep password

在这里插入图片描述

7、登录数据库
输入指令

mysql -uroot -p

然后再复制上面的密码

Linux配置MySQL环境(三)_第10张图片

注意:写了密码后密码是不显示的,不要以为自己没有写入



三、卸载

卸载 MySQL 前需要先停止 MySQL

停止命令:

systemctl stop mysqld

停止 MySQL 之后查询 MySQL 的安装文件:

rpm -qa | grep -i mysql

Linux配置MySQL环境(三)_第11张图片

卸载上述查询出来的所有的 MySQL 安装包

rpm -e mysql-community-client-5.7.27-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-plugins-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-devel-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-8.0.32-1.el7.x86_64 --nodeps

删除MySQL的数据存放目录

rm -rf /var/lib/mysql/

删除MySQL的数据存放目录

rm -rf /etc/my.cnf.rpmsave


四、常用设置

1. 修改 root 用户密码

如果你觉得 MySQL 自动生成的密码太难记忆的话,可以连接 MySQL 之后进行修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

在这里插入图片描述
这里可能会提示 Your password does not satisfy the current policy requirements,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。

在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR

官网上能查到这个密码校验的规则,文档中搜索:validate_password

Linux配置MySQL环境(三)_第12张图片

Linux配置MySQL环境(三)_第13张图片

Linux配置MySQL环境(三)_第14张图片

所以可以将这个限制密码位数设小一点,复杂度类型调底一点

# 将密码复杂度校验调整简单类型
(当validate_password.policy为0时,表示不进行密码复杂度校验,任何长度的密码都可以通过校验。)
set global validate_password.policy = 0;

# 设置密码最少位数限制为 4set global validate_password.length = 4;

Linux配置MySQL环境(三)_第15张图片

PS:注意虽然更改了默认的密码校验难度和长度 (比如默认为8位,改成了4位。难度改成0) ,但是在第一次重新设置密码时候,
可能仍然出现错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,此时必须第一次设置密码长度为8位才不报错,更改密码成功后才能查看validate_password插件的以下参数,当然,validate_password插件必须已经安装,MySQL5.7是默认安装的。

参考:MySQL 8 密码校验设置调整说明

在这里插入图片描述

简单的密码设置成功

在这里插入图片描述

查看MySQL数据库中与密码验证相关的变量 【☆☆☆

SHOW VARIABLES LIKE 'validate_password%';

Linux配置MySQL环境(三)_第16张图片


五、使用新密码登录

退出mysql , 输入exit;命令

exit;

输入指令重新登陆

mysql -uroot -proot

Linux配置MySQL环境(三)_第17张图片

六、开启远程访问

默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问

语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>

# mysql 8.0 以下
create user 'root'@'%' IDENTIFIED BY '2023root';
# mysql 8.0
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '2023root';

按顺序执行如下代码

# 1.创建新的用户 用来远程访问
create user 'root'@'%' identified with mysql_native_password by '2023root';

# 2.授权root用户所有的权限( '并且加上 with grant option ,表示该用户可以授予权限给其他用户 ')
grant all privileges on *.* to 'root'@'%' with grant option; 

(或者输入这个命令, 也是授权所有权限,不过不可给其他用户授权:grant all on *.* to 'root'@'%';)

# 3.使修改的设置生效(并且不需要重启MySQL服务)
flush privileges;

步骤图如下:

PS: mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上 WITH mysql_native_password

在这里插入图片描述

创建完用户之后还需要给用户分配权限,这里我将 root 这个用户分配了所有的权限

在这里插入图片描述

设置生效

在这里插入图片描述

七、开放 3306 端口

先输入 exit; 退出mysql,然后按顺序输入如下代码 【☆☆☆

# 1.用于将 TCP 端口 3306 添加到防火墙的公共区域(public zone),
# 以便允许外部流量访问 MySQL 数据库。--permanent 选项表示修改将永久生效,即使系统重新启动。

firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 2.用于重启防火墙服务,以便使之前的修改立即生效。
systemctl restart firewalld.service

# 3.用于重新加载防火墙配置文件,以便使之前的修改立即生效。它与重启防火墙服务的效果相同,但是不会停止或重新启动防火墙服务。
firewall-cmd --reload

Linux配置MySQL环境(三)_第18张图片

八、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时

先输入mysql -uroot -p 登录数据库,

mysql -uroot -p

再执行如下代码


set global time_zone='+8:00';

Linux配置MySQL环境(三)_第19张图片

Linux配置MySQL环境(三)_第20张图片

你可能感兴趣的:(Linux,linux,mysql,服务器)