Linux离线安装Mysql5.7

Linux之Mysql安装配置

第一种:Linux离线安装Mysql(提前手动下载好tar.gz包)

第二种:通过yum安装配置Mysql(服务器有网络)

之前在阿里云上采用yum安装过一次(请看这里),这次项目需要就在自己的VMware虚拟机CentOS-7系统上安装一个离线版本。

安装步骤

1、 查看是否已经安装 Mysql,如果没有什么返回信息,说明没有安装 Mysql

rpm -qa | grep mysql

2、下载官方 Mysql 包,官方下载地址。

我用的版本是:mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

  1. 上传到服务器后解压(解压后可删除安装包,节省空间)一般放在在/usr/local目录下

    解压文件至/usr/local/目录

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

    重命名为 mysql

    mv /usr/local/mysql-5.7.36-linux-glibc2.12-x86_64/ /usr/local/mysql

4、创建用户组

复制代码
groupadd mysql     #创建用户组
# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql

##分配用户组

chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组

5、创建数据目录并赋予权限

复制代码
mkdir -p /data/mysql #数据目录
chown mysql:mysql -R /data/mysql

6、修改配置文件 vim /etc/my.cnf,将这些复制到文件里,保存并退出。

复制代码
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

7.初始化数据库

复制代码
参数: --basedir 为mysql解压目录,--datadir 为mysql数据存放目录。(注意安装路径是否一致)

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

8、查看初始密码,执行完第7步后,记得记录一下最初的root密码,后面有用。

cat /data/mysql/mysql.err

9、加入到系统服务并启动mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql -- 加入到系统服务

service mysql start -- 启动服务

10、登录mysql,一定要开启服务后才能登陆

/usr/local/mysql/bin/mysql -u root -p ---登录成功后会提示你重置密码

11、修改密码,SQL语句后面的分号不能丢

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345'; #修改密码
FLUSH PRIVILEGES;       #刷新
quit #退出

12、验证密码

重启服务 service mysql restart

再次登陆 /usr/local/mysql/bin/mysql -u root -p //输入刚修改的密码12345敲回车键

到此mysql已经安装完成了

13、工具连接,在用工具连接mysql时提示

MySQL 异常: "Host 'xxx' is not allowed to connect to this MySQL server"

解决:登录mysql,刷新规则允许外部访问,host修改成%表示,所有主机都可以通过root用户访问数据库

use mysql      #选择访问mysql库

update user set host = '%' where user = 'root';      #使root能再任何host访问

FLUSH PRIVILEGES;       #刷新

14、如果工具连接时,navicat连接MySQL 报2003

复制代码
--- 查询某个端口是否开放,如是no,那你就开放一下端口
firewall-cmd --query-port=3306/tcp
--- 开放指定端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
--- 重启防火墙
firewall-cmd --reload
相关推荐
九皇叔叔5 小时前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构
贝锐5 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20046 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
愤怒的苹果ext8 小时前
MySQL Shell备份恢复数据库
数据库·mysql·备份恢复·mysqlsh
天远Date Lab8 小时前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074688 小时前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.9 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫9 小时前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器
考虑考虑10 小时前
kubectl命令
运维·后端·自动化运维
NJCloud10 小时前
Docker 容器技术入门:部署、核心概念与基础命令
运维·docker·容器