UzumakiItachi
首页
  • JavaSript
  • Vue

    • Vue2
    • Vue3
  • React

    • React_18
  • WebPack
  • 浏览器相关
  • 工程化相关
  • 工作中遇到的问题以及解决方案
  • Git
  • 面试
  • 学习
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 个人产出
  • 实用工具
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

UzumakiItachi

起风了,唯有努力生存。
首页
  • JavaSript
  • Vue

    • Vue2
    • Vue3
  • React

    • React_18
  • WebPack
  • 浏览器相关
  • 工程化相关
  • 工作中遇到的问题以及解决方案
  • Git
  • 面试
  • 学习
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 个人产出
  • 实用工具
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • WebPack

  • 浏览器相关

  • 工程化相关

  • 工作中遇到的问题以及解决方案

  • Git

  • Vite

  • 一些小工具

  • 算法

  • 服务器

    • 在服务器上安装mysql
      • 前言
      • 准备工作
      • 参考文献
  • HTTP

  • 技术
  • 服务器
hanhanbuku
2023-12-19
目录

在服务器上安装mysql

# 前言

最近在学习nest,设计到数据库的安装。考虑到后期服务器上也需要安装,所以干脆本地就不装了,直接在服务器上安装然后本地通过Navicat链接,下面详细记录一下在服务器上安装mysql的步骤以及一些坑

# 准备工作

首先添加一下mysql yum源

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
1

默认启用的是最新版本,如果要启用旧版本需要去手动启用一下,如果使用最新版可以跳过这一步

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
1
2

执行上述两行代码就是关闭80版本开启57版本,执行完可以查看一下状态

yum repolist all | grep mysql
1

image 可以看到8.0版本已经禁用,5.7版本已经开启

安装mysql

yum install -y mysql-server
1

开启mysql服务

开启服务
systemctl start mysqld

查看状态
systemctl status mysqld

1
2
3
4
5
6

image

到这一步数据库就算安装完成了,下面还需要进行修改密码和开启防火墙才能让外面访问到

mysql服务第一次启动的时候,会默认创建一个“超管账户”——‘root’@‘localhost’——就是本地使用root账号登录。 这个账号的默认密码会存在日志里。通过以下命令取出。

sudo grep 'temporary password' /var/log/mysqld.log

1
2

获取到这个密码之后,通过这个密码登录mysql,然后去修改密码

登录

mysql -uroot -p
1
2
3
修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
1
2
3

你的密码需要至少一个大写,一个小写,一个数字,一个特殊字符,长度至少8位,这是mysql官方的校验,注意一下

接下来需要创建远程访问用户

建用户
create user 'root'@'%' identified with mysql_native_password by '你的密码';
赋权限
grant all privileges on *.* to 'root'@'%' with grant option;
刷新用户权限
flush privileges;

1
2
3
4
5
6
7

超管账号那个root@localhost用户只能本地登录,这里创建的用户把超管后面的localhost换成了%,就是可以从任意地址访问的一个用户。

开启防火墙的3306端口

服务器一般是要开防火墙的。所以上面虽然创建了可以远程登录的用户,但是远程想要进来,还需要让防火墙知道怎样的访问允许进来。 mysql服务默认启动在3306端口,所以需要防火墙开启3306端口。

linux的防火墙常见的有两个,个是firewalld,另一个是iptables。

这里我的机器使用的是firewalld

没开启的话先开启服务
systemctl start firewalld
查看状态
systemctl status firewalld 

1
2
3
4
5
开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 
重新载入
firewall-cmd --reload

1
2
3
4
5

顺利的话你会看到输出success

如果使用的是另外一个防火墙,请自行搜索一下如何开启3306端口。

接下来设置一下mysql的默认编码为utf-8

使用vim修改my.cnf文件(纯小白建议先熟悉一下vim操作)
vim /etc/my.cnf

1
2
3

添加如下配置

character_set_server=utf8
init_connect='SET NAMES utf8'

1
2
3

image

这里提一嘴vim的基本操作: 按下i进入编辑模式,这个时候你可以去插入和删除内容。再次按下i会退出编辑模式。 输入:号会进入命令模式,这里你可以输入命令保存vim文件。 编辑好之后:wq即可保存并退出。

重启一下mysql

systemctl restart mysqld
1

然后查看是否生效

先登录mysql,再执行
mysql> show variables like '%character%';

1
2
3

image

到这里 服务器上的操作就全部结束了,接下来需要去云服务器上开启3306端口。

image

我这里使用的是腾讯云,直接去防火墙里添加一个规则,选择mysql的就行了。

一切操作结束之后,就可以在本地通过Navicat连接服务器上的数据库啦。

下面提一嘴我在操作过程中遇到的问题,之前服务器上没有开启防火墙,然后开启了之后因为没有开放http(80端口)和https(443端口)。所以导致之前部署的网站访问不了了,下面还需要开放一下这两个端口。

  • 检查当前的防火墙规则:

sudo firewall-cmd --list-all
1
2
  • 如果没有 http 和 https 服务,则需要添加它们:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
1
2
  • 更新防火墙规则:
sudo firewall-cmd --reload
1

ok,到这里所有的操作就都已经做完了。

# 参考文献

Linux安装MySQL(使用yum) (opens new window)

编辑 (opens new window)
上次更新: 2023/12/19, 16:44:15
动态规划
图解http

← 动态规划 图解http→

最近更新
01
小程序实现全局状态管理
07-09
02
前端检测更新,自动刷新网页
06-09
03
swiper渲染大量数据的优化方案
06-06
更多文章>
Theme by Vdoing | Copyright © 2023-2025 UzumakiItachi | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式