【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
相关推荐
tgethe2 分钟前
MySQL 进阶攻略
数据库·mysql
老王熬夜敲代码3 分钟前
IP和MAC的深入理解
linux·网络·笔记·网络协议
亮子AI5 分钟前
【node.js MySQL】node.js 如何连接 MySQL?
数据库·mysql·node.js
开开心心就好9 分钟前
版本转换工具,支持Win双系统零售批量版
linux·运维·服务器·pdf·散列表·零售·1024程序员节
秋深枫叶红12 分钟前
嵌入式第三十八篇——linux系统编程——IPC进程间通信
linux·服务器·网络·学习
MediaTea17 分钟前
思考与练习(第十章 文件与数据格式化)
java·linux·服务器·前端·javascript
Albert Edison21 分钟前
【MySQL】用户管理
mysql·adb
Dovis(誓平步青云)23 分钟前
《Linux生态下HTTP协议解析+进阶HTTPS证书:抓包、拆解与问题排查实战》
linux·运维·http
QT 小鲜肉24 分钟前
【Linux命令大全】001.文件管理之diff命令(实操篇)
linux·运维·chrome·笔记
Zeku32 分钟前
20251127 - 韦东山Linux - 通用Makefile解析
linux·驱动开发·嵌入式软件·linux应用开发