目录
[1.首先,查看服务器glibc版本,来选择 MySQL 的安装版本](#1.首先,查看服务器glibc版本,来选择 MySQL 的安装版本)
[5.修改MySQL配置文件信息 vim /etc/my.cnf (若没有则新建一个该文件)](#5.修改MySQL配置文件信息 vim /etc/my.cnf (若没有则新建一个该文件))
[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'@'%';