参考过网上很多关于离线安装MySQL的文章,但是大多数都是标题党,对于很多内网的项目是没有网络的只能通过离线去安装,并且网上大部分文章安华给你的过程动不动就缺少环境依赖很烦,下面详细介绍一下离线安装的两种安装方式重点介绍tar包安装方式yum离线源安装请参考我的yum离线源有关文章
1_第一种是部署离线yum源的方式
2_第二种是tar包安装方式
这篇文章只介绍tar包安装方式
本人的安装环境为CentOS Linux release 7.5.1804 (Core)最小化安装,桌面版可参考其他文章
1 到mysql官网(https://dev.mysql.com/downloads/mysql/)下载5.7.25版本
2 查看系统中是否存的mariadb,如果存在,将其删除,即可以如下操作:
rpm -qa | grep mariadb
3 将mysql-5.7.25-linux-glibc2.12-x86_64.tar安装包上传到opt目录下,并依次执行如下的解压命令:(目录依照自己只需要更改相应的路径即可)
tar -xvf mysql-5.7.25-linux-glibc2.12-x86_64.tar
4 那么此时在opt目录就会mysql-5.7.25-linux-glibc2.12-x86_64目录,将该目录修改成mysql-5.7.25,即:
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql-5.7.25
5 创建mysql用户和组
groupadd mysql
useradd -g mysql mysql
6 设置密码
passwd mysql
依据提示设置密码
7 、创建数据库的数据目录、日志目录和临时目录,即:
# 数据目录
mkdir /opt/mysql-5.7.25/data
# 日志目录
mkdir /opt/mysql-5.7.25/log
# 临时目录
mkdir /opt/mysql-5.7.25/tmp
8 将mysql-5.7.25目录及子目录的所属用户及组都设置为mysql,即:
chown -R mysql:mysql /opt/mysql-5.7.25
9 在etc目录下创建my.cnf配置文件,即:
touch /etc/my.cnf
my.cnf的配置内容为:
[client]
port = 3306
socket = /opt/mysql-5.7.25/tmp/mysql.sock
[mysqld]
port = 3306
basedir = /opt/mysql-5.7.25
datadir = /opt/mysql-5.7.25/data
tmpdir = /opt/mysql-5.7.25/tmp
socket = /opt/mysql-5.7.25/tmp/mysql.sock
pid-file = /opt/mysql-5.7.25/log/mysql.pid
log_error = /opt/mysql-5.7.25/log/error.log
slow_query_log_file = /opt/mysql-5.7.25/log/slow.log
10 初始化数据库:
/opt/mysql-5.7.25/bin/mysqld --initialize --user=mysql
11 设置开机自启动mysql服务:
cp /opt/mysql-5.7.25/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
12 启动MySQL
systemctl start mysqld.service
13 为mysql用户配置mysql的环境变量,即:
vi ~/.bash_profile
##添加如下内容
export PATH=$PATH:/opt/mysql-5.7.25/bin
##刷新配置文件
source ~/.bash_profile
14 获取mysql初始密码:
grep 'temporary password' /opt/mysql-5.7.25/log/error.log
##localhost后即为临时密码
##进入mysql
mysql -u root -p
#输入临时密码进入mysql控制台并修改密码
set password for 'root'@'localhost'=password('密码');
#退出mysql
exit
15 给root用户赋权并开启root的远程登陆权限
#赋予root用户远程权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'0.0.0.0' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
#刷新权限
flush privileges;
#开启远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码';
#再次刷新权限
flush privileges;
#创建数据库并指定utf-8字符集
CREATE DATABASE test(数据库名称) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use test;
#创建表
create table demo(id int(5),name varchar(20));
#添加数据
insert into demo(id,name) values(1,'张三');
#至此结束 通过navicat远程连接