【MySQL系列文章】Linux环境下安装部署MySQL

前言

本次安装部署主要针对Linux环境进行安装部署操作,系统位数64

复制代码
getconf LONG_BIT
64

MySQL版本:v5.7.38

一、下载MySQL

MySQL下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

二、上传MySQL压缩包到Linuxx环境,并解压

2.1、将压缩包上传到指定目录

这里上传到 /usr/local 下

2.2、解压MySQL压缩包
复制代码
tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
2.3、修改目录名称为mysql
复制代码
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql

三、创建MySQL用户组、组名

复制代码
#创建MySQL用户组
groupadd mysql

#添加MySQL用户并添加到MySQL用户组
useradd -r -g mysql mysql

四、创建数据目录并开启权限

4.1、在 /usr/local/mysql 目录下创建data文件夹
4.2、授权属主属组为mysql用户
复制代码
chown -R mysql:mysql /usr/local/mysql/

五、配置 my.cnf 文件

5.1、编辑my.cnf文件
复制代码
vi /etc/my.cnf
5.2、my.cnf文件配置模板
复制代码
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用"mysql_native_password"插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

六、初始化MySQL

6.1、在/usr/local/mysql/bin目录下用mysqld命令
复制代码
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize

命令说明:

--defaults-file:默认配置文件地址

--datadir:是刚刚创建的data数据目录(自己进行定义的!)

--basedir:是MySQL安装目录(自己进行定义的!)

--user:刚刚创建的mysql用户

红色标注的为mysql登录密码,请记住,并在后续进行修改为自己的。

七、启动MySQL修改初始密码、授权远程连接

7.1、启动服务
复制代码
/usr/local/mysql/support-files/mysql.server start
7.2、修改初始密码
复制代码
# 切换目录
cd /usr/local/mysql/bin
# 登录命令
./mysql -u root -p
#修改密码
set password for root@localhost=password('我的密码');
#刷新权限
FLUSH PRIVILEGES;

也可以采用下列简单方式设置密码:

设置密码

SET PASSWORD = PASSWORD('ok');

设置用户的访问密码用不过期

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

#刷新权限

FLUSH PRIVILEGES;

7.3、授权远程连接
复制代码
# 访问mysql库
use mysql
# 修改root用户能在任何host访问(授权远程连接)
update user set host = '%' where user = 'root';
# 刷新
FLUSH PRIVILEGES;

八、开启自启动

8.1、依次执行下面命令进行软连接
复制代码
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
 
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
 
service mysql restart
8.2、赋予权限、添加服务、显示服务列表
复制代码
#赋予权限
chmod +x /etc/init.d/mysql
 
#添加服务
chkconfig --add mysql
 
#显示服务列表
chkconfig --list

如果2/3/4/5都处于开启状态则成功,不是请运行如下命令:

chkconfig --level 2345 mysql on

8.3、验证是否可以自启动
复制代码
#查看mysql进程
ps -aux | grep mysql

#kill进程
kill -9 xxxx

#再次查看是否自启动
ps -aux | grep mysql

九、关于远程连接数据库出现2002处理方法

连接时候出现2002错误代码,可能是防火墙没有开启2002端口

可以将防火墙关闭(不建议),或者开放2002端口:

复制代码
# 开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看已经开放的端口
firewall-cmd --list-ports

十、关于防火墙的命令

复制代码
1.查看防火墙状态
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld  
关闭防火墙 systemctl stop firewalld
开启防火墙 service firewalld start 
         若遇到无法开启
         先用:systemctl unmask firewalld.service 
         然后:systemctl start firewalld.service
 
2.查看对外开放的端口状态
         查询已开放的端口 netstat  -ntulp | grep 端口号:可以具体查看某一个端口号
         查询指定端口是否已开 firewall-cmd --query-port=666/tcp
           提示 yes,表示开启;no表示未开启。
 
3.对外开发端口
       查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
       添加指定需要开放的端口:firewall-cmd --add-port=123/tcp --permanent
       重载入添加的端口:firewall-cmd --reload
       查询指定端口是否开启成功:firewall-cmd --query-port=123/tcp
       移除指定端口:firewall-cmd --permanent --remove-port=123/tcp
相关推荐
Dxy123931021612 分钟前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql
Yana.nice1 小时前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月1 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon2 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq3 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux