内网环境下通过tar包在Linux环境下安装MySQL

1.首先查看自己服务器上是否已经安装过MySQL

rpm -qa | grep mysql

若有返回东西,则通过以下命令删除已安装的MySQL

#xxx为文件名
rpm -e --nodeps xxx

2.去MySQL官网下载对应版本的MySQL tar包

MySQL安装包官网下载

选择自己服务器的Linux版本以及需要部署的MySQL的版本,选择安装包结尾为tar或者tar.gz的即可
内网环境下通过tar包在Linux环境下安装MySQL_第1张图片
内网环境下通过tar包在Linux环境下安装MySQL_第2张图片

3.上传并解压下载的安装包

tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

4.添加用户或用户组

#先测试该服务器上是否已经有新建的用户
groups mysql
#添加用户或用户组
groupadd mysql && useradd -r -g mysql mysql

5.创建MySQL数据存储目录并赋予权限

#确认好自己服务器的挂盘位置,将MySQL数据存储目录放到挂盘的文件夹下
mkdir -p /opt/mysql_data
#将MySQL数据存储目录及子文件夹授权给mysql用户
chown mysql:mysql -R /opt/mysql_data

6.修改MySQL配置文件

#进入MySQL配置文件(若没有则新建一个该文件)
vi /etc/my.cnf

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

7.初始化MySQL

将解压后的整个安装包文件夹移动并重命名到/usr/local/mysql

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

8.查看初始密码

cat /data/mysql/mysql.err

内网环境下通过tar包在Linux环境下安装MySQL_第3张图片

9.启动MySQL

#设置MySQL自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#启动MySQL服务,进入bin目录启动
service mysql start

10.修改密码

(1)开启首次免密登录,修改my.cnf文件,默认在/etc/my.cnf下
vi /etc/my.cnf
#在[mysqld]模块下添加:skip-grant-tables,然后保存退出
(2)重启MySQL服务,使配置生效
service mysql start
(3)登录MySQL服务器
#进入/usr/local/mysql/bin
#因为配置了免密登录,第一次登录MySQL不需要输入密码,直接敲回车
mysql -uroot -p
(4)配置外部访问规则
#进入mysql库
use mysql;
#配置root用户能在任意host访问
update user set host='%' where user='root';
#刷新权限
flush privileges;
(5)修改密码
alter user "root"@"%" identified by "你设置的密码";
flush privileges;
(4)退出MySQL,进入/etc/my.cnf文件把刚刚配置的免密登录配置删除掉,重启MySQL服务,本次登录需要输入刚刚自己设置的密码即可。

11.给root用户授予最高权限

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY “密码”;

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