Linux 下安装配置部署MySql8.0

一 . 准备工作

MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.34

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

本次linux机器使用的是阿里云ECS实例

二 . 开始部署

1. 将安装包上传至服务器 解压到当前文件夹

bash 复制代码
tar -zxvf mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz

2. 移动解压后的目录到目标安装目录

bash 复制代码
sudo mv mysql-8.0.34-linux-glibc2.28-x86_64 /usr/local   

3. 文件名太长,改成 mysql-8.0.34

bash 复制代码
mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql-8.0.34

4. 增加用户组 mysql,在用户组下增加用户 mysql

bash 复制代码
# 增加用户组 mysql
sudo groupadd mysql
# 在用户组下增加用户 mysql
sudo useradd -r -g mysql mysql

5. 检查用户组、用户是否存在

bash 复制代码
groups mysql

若存在则显示 mysql : mysql ;若不存在,则显示 groups: mysql: No such user

6. 将安装目录 /usr/local/mysql-8.0.34/ 的所有者及所属组改为 mysql

bash 复制代码
chown -R mysql:mysql /usr/local/mysql-8.0.34/

7. 在/etc下创建 my.cnf配置文件

bash 复制代码
touch /etc/my.cnf

8. 编辑my.cnf配置文件

bash 复制代码
vim /etc/my.cnf

加配置,设置编码格式及忽略大小写:

mysqld

basedir=/usr/local/mysql-8.0.34

datadir=/usr/local/mysql-8.0.34/data

port=3306

socket=/tmp/mysql.sock

character_set_server=utf8

lower_case_table_names=1

log-error=/usr/local/mysql-8.0.34/data/mysql.log

pid-file=/usr/local/mysql-8.0.34/data/mysql.pid

mysql

default-character-set = utf8

9. 初始化

在 mysql-8.0.11 目录下创建一个 data 文件夹

bash 复制代码
cd /usr/local/mysql-8.0.34/
mkdir data

初始化

bash 复制代码
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.34/ --datadir=/usr/local/mysql-8.0.34/data/

若出现以上报错,尝试用如下解决方案

执行以下命令后重试
yum install libaio
yum -y install numactl

将mysql加入到可控制启动服务的文件夹内,并命名mysql(service可控制的服务名)

目的:可用 service mysql start命令来控制启动 mysql

bash 复制代码
cd support-files
cp mysql.server /etc/init.d/mysql

10. 配置profile环境变量

vim /etc/profile

在底部添加以下内容:

export MYSQL_HOME="/usr/local/mysql-8.0.34"

export PATH="PATH:MYSQL_HOME/bin"

让修改的profile文件立即生效

source /etc/profile

11. 启动并登录 mysql

启动mysql

service mysql start

初始密码可以查看 /usr/local/mysql-8.0.34/data/mysql.log 日志文件,在前面几行中找到生成的密码,如下所示:

登录 mysql

mysql -u root -p

修改密码

bash 复制代码
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
mysql> flush privileges;

11. 远程连接mysql数据库

1.查询访问权限

select user,host from mysql.user;

root用户的localhost表示只允许本机访问,要实现远程连接,可以将用户的host改为%,表示允许任意主机访问,如果需要设置只允许特定ip访问,则应改为对应的ip。

  1. 修改root用户的host字段为%

update mysql.user set host="%" where user="root";

  1. 刷新配置

flush privileges;

4.开放端口号

如果是物理服务器:

查询3306端口是否开放

firewall-cmd --query-port=3306/tcp

没有开放则添加3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

添加端口后刷新防火墙

firewall-cmd --reload

如果是云服务器:

配置实例入方向的访问规则,增加3306端口号。

5. 使用客户端连接数据库

本机使用的阿里云ecs所以我们的数据库主机选云服务器公网IP。

客户端测试连接

完结。。。

相关推荐
Janspran1 小时前
监控系统4 - LVGL | sqlite3 | mqtt
linux·sqlite3·嵌入式实时数据库
敲上瘾1 小时前
Docker镜像构建指南:Dockerfile语法与docker build命令全解析
linux·服务器·docker·微服务·容器
YC运维5 小时前
Dockerfile实战案例详解
运维·docker·容器
一个响当当的名号6 小时前
一些主要应用和NAT
运维·服务器·网络
@小博的博客6 小时前
【Linux探索学习】第二篇Linux的基本指令(2)——开启Linux学习第二篇
linux·运维·学习
openHiTLS密码开源社区8 小时前
【密码学实战】openHiTLS passwd命令行:专业密码哈希生成工具
linux·密码学·哈希算法·ldap·密码策略·随机盐值
筵陌8 小时前
深入理解 Reactor 反应堆模式:高性能网络编程的核心
服务器
WTCLLB8 小时前
netgear r6220 路由器,刷openwrt后,系统备份还原
linux·网络·智能路由器·openwrt
迎風吹頭髮9 小时前
UNIX下C语言编程与实践38-UNIX 信号操作:signal 函数与信号捕获函数的编写
linux·c语言·unix
做运维的阿瑞9 小时前
Linux系统性能监控与故障定位实战:CPU/内存/I/O/网络
linux·运维·网络