【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'@'%';
相关推荐
hnxaoli2 小时前
统信小程序(八)归档目录自动调整
linux·python
鸠摩智首席音效师2 小时前
如何确定 Linux 下的文件系统类型 {Ext3, Ext4, XFS} ?
linux·运维·服务器
比奇堡鱼贩2 小时前
python第二次作业--函数
linux·运维·windows
Arbori_262152 小时前
clickhouse 实现mysql GROUP_CONCAT() 函数
数据库·mysql·clickhouse
RisunJan2 小时前
Linux命令-lilo(安装核心载入开机管理程序)
linux·运维·服务器
飞凌嵌入式2 小时前
1块集成了4核Cortex-A7高性能CPU、1颗RISC-V MCU、多种高速总线、还兼容树莓派的T153低成本开发板
linux·arm开发·嵌入式硬件·risc-v
舰长1152 小时前
ubuntu16 在防火墙禁止“允许Traceroute探测”
linux·运维·服务器
蓝田~3 小时前
Nginx集群与相关服务配置说明
运维·nginx
一只自律的鸡3 小时前
【Linux驱动】Ubuntu基础 下篇
linux·ubuntu