【Linux】MySQL安装配置

目录

一、官网下载MySQL

[1.首先,查看服务器glibc版本,来选择 MySQL 的安装版本](#1.首先,查看服务器glibc版本,来选择 MySQL 的安装版本)

官方下载地址:MySQL官网

二、准备工作

1.检查是否已经安装MySQL

2.将安装包上传至目录并进行解压

3.创建用户组

4.创建mysql数据存储目录

[5.修改MySQL配置文件信息 vim /etc/my.cnf (若没有则新建一个该文件)](#5.修改MySQL配置文件信息 vim /etc/my.cnf (若没有则新建一个该文件))

6.初始化数据库

三、MySQL配置

1.创建MySQL自启动服务

2.配置全局环境变量

3.登入mysql修改密码

4.配置外部访问规则

3.防火墙配置

4.MySQL用户管理

[1. 创建用户并授权](#1. 创建用户并授权)

[2. 撤销权限(REVOKE)](#2. 撤销权限(REVOKE))


一、官网下载MySQL

1.首先,查看服务器glibc版本,来选择 MySQL 的安装版本

bash 复制代码
rpm -qa|grep glibc

官方下载地址:MySQL官网

二、准备工作

1.检查是否已经安装MySQL

bash 复制代码
rpm -qa|grep -i mysql

# 若安装了,需要卸载
rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps

2.将安装包上传至目录并进行解压

bash 复制代码
# 将文件上传至/data/resource/msyql目录


# 创建安装目录 /data/mysql/mysql-8.0.42目录
mkdir /data/mysql/

# 将文件解压到mysql-8.0.42 目录
tar -xzvf /data/resource/msyql/mysql-8.0.42-linux-glibc2.17-x86_64.tar.xz -C /data/mysql/

# 将文件名重命名
mv mysql-8.0.42-linux-glibc2.17-x86_64/ mysql-8.0.42/

3.创建用户组

bash 复制代码
groupadd mysql     #创建用户组

# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql

chown -R mysql:mysql mysql/ # 将文件的所有属性改为 mysql 用户 # 将组属性改为 mysql 组

4.创建mysql数据存储目录

bash 复制代码
# 创建MySQL数据目录mysql-data

mkdir mysql-data

# 目录更改权限
chown -R mysql:mysql mysql-data
chmod -R 755 mysql-data

5.修改MySQL配置文件信息 vim /etc/my.cnf (若没有则新建一个该文件)

bash 复制代码
#配置文件内容
[mysqld]
bind-address=0.0.0.0
#MySQL监听端口
port=3306
user=mysql
#MySQL安装目录
basedir=/data/mysql/mysql-8.0.42
#MySQL数据存储目录
datadir=/data/mysql/mysql-data
#MySQL客户程序与服务器之间的本地通信指定一个套接字文件
socket=/tmp/mysql.sock
# 数据库日志文件
log-error=/data/mysql/mysql-data/mysql.err
#数据库进程文件目录
pid-file=/data/mysql/mysql-data/mysql.pid
#数据库或数据表的默认字符集
character_set_server=utf8mb4
#符号连接,如果设置为1,则mysql数据库和表里的数据支持储存在datadir目录之外的路径下,默认都是0(较新版本的mysql下默认是1);
symbolic-links=0
explicit_defaults_for_timestamp=true
#MySOL不区分大小写
lower_case_table_names=1

6.初始化数据库

参数: --basedir 为mysql解压目录,--datadir 为mysql数据存放目录。(注意安装路径是否一致)

bash 复制代码
cd /data/mysql/mysql-8.0.42/bin


./mysqld --defaults-file=/etc/my.cnf --basedir=/data/mysql/mysql-8.0.42/ --datadir=/data/mysql/mysql-data --user=mysql --initialize

三、MySQL配置

1.创建MySQL自启动服务

bash 复制代码
# 首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。
cp /data/mysql/mysql-8.0.42/support-files/mysql.server /etc/init.d/mysqld

# 通过chkconfig命令将mysqld服务加入到自启动服务项中。
chkconfig --add mysqld

# 注意服务名称mysqld就是我们将mysql.server复制到/etc/init.d/时重命名的名称。
# 查看是否添加成功
chkconfig --list mysql

# 启动服务
service mysql start

# 查看启动状态
service mysql status

2.配置全局环境变量

编辑/etc/profile文件,使用vim /etc/profile命令,在profile文件中添加如下两行配置,使用:wq命令保存后退出。

bash 复制代码
export PATH=$PATH:/data/mysql/mysql-8.0.42/bin:/data/mysql/mysql-8.0.42/lib

# 设置环境变量立即生效使用source /etc/profile命令。
source /etc/profile

3.登入mysql修改密码

bash 复制代码
# 查看默认密码
cat /data/mysql/mysql-data/mysql.err

# 使用默认密码登录
mysql -uroot -p
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';

4.配置外部访问规则

bash 复制代码
# 选择数据库
use mysql;

# 最后授权 MySQL,允许远程用户登录访问 MySQL
update user set host = '%' where user = 'root';

# 刷新权限
flush privileges;

3.防火墙配置

bash 复制代码
# 查看防火墙状态
systemctl status firewalld

# 永久开放端口
firewall-cmd --list-ports --permanent

# 开放指定端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 

# 重载防火墙
firewall-cmd --reload

命令含义:
--zone #作用域
--add-port=3306/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

# 或者 -> 允许 MySQL 端口的流量
sudo ufw allow 3306

4.MySQL用户管理

1. 创建用户并授权

sql 复制代码
# 创建全权限用户(谨慎使用)
CREATE USER 'test_user'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'%';
FLUSH PRIVILEGES;

# 创建只读用户
CREATE USER 'readonly'@'%' IDENTIFIED BY '123456';
GRANT SELECT ON *.* TO 'readonly'@'%';
FLUSH PRIVILEGES;

-- 仅授权部分数据库
GRANT SELECT, SHOW VIEW ON your_database.* TO 'tys_user'@'%';
GRANT ALL PRIVILEGES ON data_gateway.* TO 'tys_user'@'%';
FLUSH PRIVILEGES;

2. 撤销权限(REVOKE)

sql 复制代码
-- 撤销所有权限
REVOKE ALL PRIVILEGES ON *.* FROM 'tys_user'@'%';

--  撤销特定权限
REVOKE SELECT ON your_database.* FROM 'tys_user'@'%';


-- 彻底删除用户
DROP USER 'tys_user'@'%';
相关推荐
姜鱼问生6 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*7 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP8 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_8 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时9 小时前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
广州浮点FLOATLIC10 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
程序员Sunday10 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来
数据库·mysql
IT研究所10 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK10 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化