【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
相关推荐
可涵不会debug1 分钟前
Git在码云上的使用指南:从安装到推送远程仓库
linux·运维·服务器·c++·git
hunandede14 分钟前
Linux中的nc命令是网络工具中的一种,用于进行网络连接和数据传输。下面是nc命令的使用方法和实例:
linux·运维·服务器
苹果酱05671 小时前
前端框架: Vue3组件设计模式
java·vue.js·spring boot·mysql·课程设计
零星_AagT1 小时前
Vulnhub-Tr0ll靶机笔记
linux·笔记·vulnhub靶机
Zfox_2 小时前
【Linux】Socket编程-TCP构建自己的C++服务器
linux·服务器·c语言·c++·tcp/ip
EutoCool2 小时前
Linux:SystemV通信
linux·运维·服务器
檀越剑指大厂2 小时前
【Linux系列】查看服务器是否使用了 SSD 的多种方法
linux·运维·服务器
李迟2 小时前
几个Linux系统安装体验(续): 中标麒麟服务器系统
linux·运维·服务器
李迟2 小时前
几个Linux系统安装体验(续): 中科方德服务器系统
linux·运维·服务器
计算机学姐2 小时前
基于微信小程序的健身房预约管理系统
java·vue.js·spring boot·后端·mysql·微信小程序·小程序