Linux CentOS 7离线安装MySQL 5.7

Posted nanke_yh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux CentOS 7离线安装MySQL 5.7相关的知识,希望对你有一定的参考价值。

————————————————
本文为转载博文,原文链接:https://blog.csdn.net/u012052268/article/details/103923056

目录

0 前言

1 下载

2 安装

2.1 创建用户

2.2 解压缩

2.3 创建配置文件

2.4 初始化文件

2.5 启动数据库

2.6 配置环境变量

2.7 登陆,修改密码

3 使用mysql

3.1 用户建立

3.2 创建数据库

参考文献:


0 前言

网上已经有那么多的关于CentOS 7如何安装mysql的文章了,但是很多都是在线安装;由于很多时候,在生产环境进行部署时,生产机器都是不可能直接连公网的,导致网上很多的文章没有借鉴意义;

1 下载

在有网的环境下载 mysql 的安装包:

http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x 86_64.tar.gz

把 安装包mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 拷贝到 离线生产环境/usr/local目录下。

2 安装

2.1 创建用户

为了方便数据库管理,对于安装的MySQL数据库,生产上我们都会建立一个mysql用户和mysql用户组:

# 添加mysql用户组
groupadd mysql

# 添加mysql用户
useradd -g mysql mysql -d /home/mysql

# 修改mysql用户的登陆密码
passwd mysql

2.2 解压缩

在/usr/local/中解压压缩包,并改名为mysql

cd /usr/local/

tar -xzvf /data/software/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz (我的下载目录为 data/software)

# 改名为mysql
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql

并赋予用户读写权限(此处也可以换位你的用户)

chown -R mysql:mysql mysql/

2.3 创建配置文件

vim /etc/my.cnf

复制以下内容:

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000

default-time_zone = '+8:00'

2.4 初始化文件

初始化log文件,防止没有权限。

#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/log/

vim mysqld.log
:wq

chmod 777 mysqld.log
chown mysql:mysql mysqld.log

初始化pid文件,防止没有权限。

#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/run/
mkdir mysqld
cd mysqld
vi mysqld.pid
:wq
# 给权限
cd ..
chmod 777 mysqld
chown -R mysql:mysql /mysqld

初始化数据库
# 初始化数据库,并指定启动mysql的用户,否则就会在启动MySQL时出现权限不足的问题
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

初始化完成后,在my.cnf中配置的datadir目录(/var/log/mysqld.log)下生成一个error.log文件,里面记录了root用户的随机密码。

cat /var/log/mysqld.log
执行后记录最后一点:root@localhost: xxxxx 。 这里的xxxxx就是初始密码。

2.5 启动数据库

启动数据库

#源目录启动:
/usr/local/mysql/support-files/mysql.server start

并设置开机自启动服务:

# 复制启动脚本到资源目录
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# 增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld

# 将mysqld服务加入到系统服务
chkconfig --add mysqld

# 检查mysqld服务是否已经生效
chkconfig --list mysqld

# 切换至mysql用户,启动mysql,或者稍后下一步再启动。
service mysqld start

从此就可以使用service mysqld命令启动/停止服务:

su mysql

service mysqld start/stop/restart

2.6 配置环境变量

为了更好的操作mysql,配置环境变量。

# 切换至mysql用户
su mysql

vi .bash_profile     

#这一步可能不顺利,需要权限操作,可找到文件直接添加,或者使用:w !sudo tee %去保存退出
# 修改配置文件,增加export PATH=$PATH:/usr/local/mysql/bin

# 立即生效
source .bash_profile

2.7 登陆,修改密码

必须修改初始的随机密码:

# 系统默认会查找/usr/bin下的命令;建立一个链接文件。
ln -s /usr/local/mysql/bin/mysql /usr/bin

# 登陆mysql的root用户
mysql -uroot -p
# 输入2.4生成的 随机密码    

# 在mysql内修改root用户密码为123456  #注意命令结尾的分号;
set password for root@localhost=password("123456");

3 使用mysql

3.1 用户建立

以下命令只需要改动 用户名 和密码:

grant all privileges on *.* to '新用户名'@'%' identified by '新密码';

flush privileges;

其中通配符%表示让该用户可以从任意远程主机登陆。

3.2 创建数据库

登陆用户后:

# 查询现有的数据库:
show databases;

# 创建
CREATE DATABASE 数据库名;

# 进入数据库:
use 数据库名;

# 查看所有的表
show tables;

# 退出:
exit

参考文献:

1、《CentOS 7离线安装MySQL 5.7》https://www.jellythink.com/archives/14
2、《linux 安装MySql 5.7.20 操作步骤【亲测】》https://segmentfault.com/a/1190000012703513

以上是关于Linux CentOS 7离线安装MySQL 5.7的主要内容,如果未能解决你的问题,请参考以下文章

Centos7.6 离线安装mysql-5.7.26

centos7 离线安装mysql-5.7.21

Centos7离线安装MySQL

Centos7离线安装MySQL

centos7下使用mysql离线安装包安装mysql5.7

centos7下 mysql5.7离线安装