mysql 离线安装

package download

mysql https://dev.mysql.com/downloads/mysql/

libaio http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm

根据自己服务器选择下载对应的安装包及依赖

删除本机自带mysql相关

powershell 复制代码
# 首先排查服务器自身是否有安装对应mysql or mariadb
rpm -qa | grep mariadb
rpm -e --nodeps {上边显示的}

rpm -qa | grep mysql
rpm -e --nodeps {上边显示的}

whereis mysql
rm -rf {上边显示的}

find / -name mysql
rm -rf {上边显示的}

相关目录处理及解压

powershell 复制代码
# 新建安装目录
mkdir /app/mysql

# 解压对应安装包
tar -xvf *

# 安装依赖libaio
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm

# 创建mysql用户组 (建议创建,否则会有pid等问题)
groupadd mysql
# 创建mysql用户到mysql用户组
useradd -r -g mysql mysql
# 创建mysql-data目录,存放初始化数据
mkdir /app/mysql/data
chown -R mysql /app/mysql/
chgrp -R mysql /app/mysql/
powershell 复制代码
# 新建配置文件
vi /etc/my.cnf
# 创建mysql日志目录及日志文件
mkdir /app/mysql/logs
vi mysqld.log
chmod 777 mysqld.log
chown mysql:mysql /app/mysql/
# 创建mysqld.pid文件路径
mkdir /app/mysql/run
vi mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql /app/mysql/

配置文件

powershell 复制代码
# 给配置文件/etc/my.cnf
[mysqld]
port=3306
user=mysql
basedir=/app/mysql
datadir=/app/mysql/data
socket=/app/mysql/data/mysql.sock   # 这个先配置 初始化后再新建 否则会导致报错 这段注释不要
log-error=/app/mysql/logs/mysqld.log
pid-file=/data/mysql/run/mysqld.pid
bind-address=0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server=utf8mb4
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_general_ci
max_connections = 10000  # 最大连接数视情况而配置   这段注释不要 
lower_case_table_names=1  # 是否区分表名大小写视情况而配置  1 不区分 0 区分 这段注释不要
 
[client]
port = 3306
socket=/app/mysql/data/mysql.sock
default-character-set = utf8mb4
 
[mysql]
default-character-set = utf8mb4

初始化操作

powershell 复制代码
# 初始化命令
./mysqld_safe --user=mysql --defaults-file=/etc/my.cnf --basedir=/app/mysql --datadir=/app/mysql/data --pid-file=/app/mysql/run/mysqld.pid --socket=/app/mysql/data/mysql.sock --port=3306

# 记得复制初始化密码

# 创建mysql.sock
cd /app/mysql/data
vi mysql.sock
chmod 777 mysql.sock
chown mysql:mysql /app/mysql/

# 创建后重启服务
/app/mysql/support-files/mysql.server restart

# 登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD EXPIRE NEVER;
flush privileges;

# 开放远程连接
use mysql;
grant all privileges on *.* to 'root'@'%' identified by '新密码' with grant option;
# or
update user set user.Host='%' where user.User='root';
flush privileges;

# 查看配置是否生效
select host,user from user;

可选操作

powershell 复制代码
# 添加软链接,方便快捷启动
ln -s /app/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /app/mysql/bin/mysql /usr/bin/mysql

# 启动服务
systemctl start mysql
service mysql start
# 查看服务状态
systemctl status mysql
service mysql status
# 停止服务
systemctl stop mysql
service mysql stop
# 重启服务
systemctl restart mysql
service mysql restart
powershell 复制代码
# 设置开机自启动
# 将服务文件拷贝到init.d下,并重命名为mysql
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
# 赋予可执行权限
chmod 777 /etc/init.d/mysqld
# 添加服务
chkconfig --add mysqld
# 查看开机自启动服务
chkconfig --list
powershell 复制代码
# 添加环境变量
vim /etc/profile
export PATH=/app/mysql/bin:$PATH
source /etc/profile

  • 出现无法创建.pid等文件相关信息
  • 初始化出现并不是指定的目录进行的初始化

解决方案

这俩个问题如果是mysql用户 安装的,那么大概率是因为对应目录与文件并没有给于mysql用户相应的权限,赋予相应的权限后重新尝试
如果是root用户安装的,首先需要排除因为对应目录与文件并没有给与root用户相应的权限,赋予相应的权限后重新尝试,如果还是不行,则需要编辑 /support-files/mysql.server 将对应目录配置齐全,如下图


相关推荐
自不量力的A同学9 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.9 小时前
Mysql
数据库·mysql
全栈前端老曹10 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG86310 小时前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
阿钱真强道10 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
逍遥德11 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
笨蛋不要掉眼泪11 小时前
Redis哨兵机制全解析:原理、配置与实战故障转移演示
java·数据库·redis·缓存·bootstrap
Coder_Boy_11 小时前
基于SpringAI的在线考试系统-整体架构优化设计方案
java·数据库·人工智能·spring boot·架构·ddd
fen_fen19 小时前
Oracle建表语句示例
数据库·oracle
砚边数影21 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库