CentOS下安装及配置MySQL

时间:2024-11-15 13:29:10

开头动画

大家好,我是中国码农 摘星人

最近准备做一个系列的常见环境搭建、软件安装及配置教程。

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS 应用软件之一。

网上关于 MySQL 的安装及配置参差不齐,且文章粗制滥造、华而不实。经过多次仔细考究、操作之后,摘星人 完成了《 CentOS 下安装及配置 MySQL》,欢迎分享/收藏/赞/在看!

欢迎关注我的个人微信公众号:康元路8号!

1 检查系统 MySQL 相关信息

检查系统中是否有安装 mariadb,是否自带了 MySQL 以及相关安装包。

如果有的话则应先将其卸载: rpm -e --nodeps xxx

mysql -V
rpm -qa | grep mysql
rpm -qa | grep mariadb
  • 1
  • 2
  • 3

在这里插入图片描述

2 下载并安装 MySQL

当前我的服务器镜像版本是:CentOS 7.6

我想要装:MySQL 5.7

在 usr/local 目录下新建 mysql 目录

mkdir /usr/local/mysql
ll /usr/local
  • 1
  • 2

在这里插入图片描述

在该目录下,下载并安装 MySQL 官方的 Yum Repository(这里下载的是5.7版本的)

MySQL Yum Repository

wget /get/
ll
yum -y install 
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述

安装 MySQL 服务器

yum -y install mysql-community-server
  • 1

在这里插入图片描述
在这里插入图片描述

安装完成,启动 MySQL 服务,并查看运行状态

systemctl start 
systemctl status 
  • 1
  • 2

在这里插入图片描述

找到初始密码,并登录数据库

grep "password" /var/log/
mysql -uroot -p
  • 1
  • 2

在这里插入图片描述

修改密码为:root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
  • 1

在这里插入图片描述

可以看到因密码过于简单而报出警告,我们先设置一个符合要求的密码:Root_123

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root_123';
  • 1

顺带提一下,出现:Your password does not satisfy the current policy requirements,都是密码不符合密码策略,解决方法是要么符合该策略,要么修改密码策略。

查看 MySQL 初始的密码策略

SHOW VARIABLES LIKE 'validate_password%';
  • 1

在这里插入图片描述

分别执行如下命令修改策略,修改后查看是否成功

set global validate_password.check_user_name=OFF
set global validate_password.length=4;
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.policy=LOW;
set global validate_password.special_char_count=0;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

MySQL 密码策略相关参数

  1. validate_password.dictionary_file 指定密码验证的文件路径

  2. validate_password.length 固定密码的总长度

  3. validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数

  4. validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数

  5. validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM

  • LOW:只验证长度
  • MEDIUM:验证长度、数字、大小写、特殊字符
  • STRONG:验证长度、数字、大小写、特殊字符、字典文件
  1. validate_password_special_char_count 整个密码中至少要包含特殊字符的个数

现在可以修改密码为:root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
  • 1

在这里插入图片描述

3 远程访问 MySQL

3.1 授权

当前服务器只能访问其本地数据库,远程是连接不上的,因此要进行授权

*.* 可以使用所有数据库的所有数据表

'root'@'%' 任意 IP 可以使用 root 用户

IDENTIFIED BY 'xxx' 这里的 xxx 表示 root 用户登录 MySQL 的密码

flush privileges; 刷新,立即生效

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root_123' WITH GRANT OPTION;
flush privileges;
  • 1
  • 2

在这里插入图片描述

3.2 开放端口

开放服务器 3306 端口

在这里插入图片描述

3.3 测试连接

Navicat 新建连接,输入相关信息测试连接
在这里插入图片描述

这里附上今后可能会用到的配置信息

[mysqld]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql的安装目录
basedir=D:Javamysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:Javamysql-8.0.12-winx64data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

4 卸载 MySQL

停止 MySQL 服务,查看已下载的 MySQL 相关信息,并使用命令依次卸载

systemctl stop 

rpm -qa | grep mysql

rpm -e --nodeps mysql-community-client-plugins-8.0.27-1.el8.x86_64
rpm -e --nodeps 
rpm -e --nodeps mysql-community-client-8.0.27-1.el8.x86_64
rpm -e --nodeps mysql-community-common-8.0.27-1.el8.x86_64
rpm -e --nodeps mysql-community-server-8.0.27-1.el8.x86_64
rpm -e --nodeps mysql-community-libs-8.0.27-1.el8.x86_64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

5 查看 MySQL 版本的四种方法

5.1 mysql -V

mysql -V
  • 1

在这里插入图片描述

5.2 mysql --help | grep MySQL

mysql --help | grep MySQL
  • 1

在这里插入图片描述

5.3 msql> status;

mysql> status;
  • 1

在这里插入图片描述

5.4 mysql> select version();

mysql> select version();
  • 1

在这里插入图片描述

结尾动画

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。