centos7.6离线安装mysql

环境说明
安装环境:CentOS7 64位

MySQL数据库版本:MySQL5.7

安装方式:离线安装(服务器环境没有外部网络)

这里需要说明一下安装方式,很多人为了方便可能直接使用yum源,省去了很多步骤,但是对于公司内部的服务器是不能连接外网的,因此这里就只能自己上传安装包安装啦。

数据库下载
MySQL 5.7 Linux安装包下载:https://dev.mysql.com/downloads/mysql/5.7.html

这个地址进入后就是5.7.x版本,如果需要最新的版本,就要点击右侧的Looking for the latest GA versions?。

另外需要注意的是下载的时候需要注册oracle账号,如果有直接登录,没有就自己注册。版本选择如下:

使用Red Hat Enterprise Linux
Select Version:5.7.35
Select Operating System:Red Hat Enterprise Linux / Oracle Linux
Select OS Version:Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
列表中下载:
Compressed TAR Archive:(mysql-5.7.35-el7-x86_64.tar.gz)
使用Linux - Generic
Select Version:5.7.35
Select Operating System:Linux - Generic
Select OS Version:Linux - Generic (glibc 2.12) (x86, 64-bit)
列表中下载:
Compressed TAR Archive:(mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz)【本文中使用的是这个版本5.7.30】

查询并卸载系统自带的数据库:Mariadb

# 找到数据库mariadb,如果有会给出一个结果,结果是mariadb名称
rpm -qa | grep mariadb
# 如果存在就卸载
rpm -e --nodeps [mariadb名称]

创建用户和用户组

# 先检查mysql用户和用户组有没有被使用
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
# 添加mysql用户组
groupadd mysql
# 添加mysql用户并加入用户组
useradd -g mysql mysql
# 修改mysql用户的登陆密码(这里根据需要设置,可以略过)
passwd mysql
123456

上传安装文件至/usr/local、获取安装包和修改名称

cd /usr/local
# 解压安装包,解压后会有一个mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz包
tar -xvf mysql-5.7.35-linux-glibc2.12-x86_64.tar
# 解压mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz包
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
# 此时会生成一个目录mysql-5.7.30-linux-glibc2.12-x86_64,将其改名为mysql
mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql

目录授权操作

# 按照下面的操作执行

cd /usr/local/
chown -R mysql mysql/
chgrp -R mysql mysql/
cd mysql/
mkdir data
chown -R mysql:mysql data

配置文件的创建和配置信息
默认这个配置文件是不存在的,需要创建,并且填入配置信息

# 在/usr/local/mysql/目录下创建文件并编辑(使用vi或者vim)
vi my.cnf

具体配置信息:

[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
socket=/var/lib/mysql/mysql.sock
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
explicit_defaults_for_timestamp=true
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
explicit_defaults_for_timestamp=true

[mysql.server]
user=mysql
basedir=/usr/local/mysql

mysql账户 安装数据库
进入/usr/local/mysql/目录下,执行安装操作。

# 进入目录
cd /usr/local/mysql/
# 执行安装命令
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

安装成功输出的日志如下

 A temporary password is generated for root@localhost: O?lu-g+/-0ei

安装成功后设置文件及目录权限:


# 此时root用户 还是在mysql目录下执行
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 my.cnf
chmod +x /etc/init.d/mysqld
# 启动脚本
/etc/init.d/mysqld restart

可能出现的问题一:

MySQL server PID file could not be found![FAILED]
Starting MySQL.Logging to '/usr/local/mysql/data/CDH-141.err'.
..The server quit without updating PID file (/usr/local/mysql/data/CDH-141.pid).[FAILED]

解放方案:

此时需要检查是否有进程占用

# 如果执行此命令后没有对应的占用应用,就无需操作,如果有就需要将其杀死
ps aux|grep mysql
# 杀死占用的进程后重新启动
/etc/init.d/mysqld restart

可能存在的问题二:

Starting MySQL.Logging to '/usr/mysql/mysql-5.7.35/data/localhost.localdomain.err'.
2021-08-13T01:01:52.896471Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/usr/mysql/mysql-5.7.35/data/localhost.localdomain.pid).

如果/usr/mysql/mysql-5.7.35/data/localhost.localdomain.err这个文件存在,就进去看一下具体原因,如果没有就按照以下步骤执行。(我在安装的时候这个文件就是不存在的)

# 创建 /var/lib/mysql/
cd /var/lib/
mkdir mysql
# 提供读写的权限
chmod 777 /var/lib/mysql

配置环境变量

# 修改配置文件/etc/profile,增加export PATH=$PATH:/usr/local/mysql/bin
vim /etc/profile
# 立即生效
source /etc/profile

修改密码和存在的问题解决方案

mysql -uroot -p
# 此时输入密码后可能出现下面的问题
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
# 解决方案如下:
# 首先保证在my.cnf文件中socket的配置如下:
[mysqld]
socket = /var/lib/mysql/mysql.sock
# 然后对/tmp/mysql.sock和/var/lib/mysql/mysql.sock建立软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

上面的问题解决后重新输入用户名密码即可进入到mysql,可以将密码修改成自己的。

-- 执行语句如下
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
-- 操作结束后,通过exit命令退出,然后重新登录,验证修改的密码是否生效

添加远程访问权限

-- 登录数据
-- 切换到mysql数据库
use mysql;
-- 更新权限
update user set host='%' where user = 'root';
-- 查询一下是否修改成功
select host,user from user;
-- 结果如下表示成功,root用户的host已经修改为'%'
--+-----------+---------------+
--| host      | user          |
--+-----------+---------------+
--| %         | root          |
--| localhost | mysql.session |
--| localhost | mysql.sys     |
--+-----------+---------------+
-- 上面的修改结束后,退出数据库,重启数据库服务生效
/etc/init.d/mysqld restart

参考文档:
添加链接描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值