【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
相关推荐
嵩山小老虎10 分钟前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模35 分钟前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a413244739 分钟前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
az44yao1 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
一只自律的鸡2 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)3 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen3 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
秦老师Q3 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
REDcker3 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
蒹葭玉树3 小时前
【C++上岸】C++常见面试题目--操作系统篇(第二十八期)
linux·c++·面试