🍈作者:王甜甜(dabing)

# 在服务器安装 mysql8

参考:炎总的用户中心部署笔记 第四步有一个安装 mysql 的笔记

# 一、mysql 安装

  1. 直接使用 yum 软件包管理器进行安装
yum install mysql
yum install mysql-server
yum install mysql-devel

遇到 Is this ok [y/d/N]: 键入 y 回车。

会发现 mysql 和 mysql-devel 都成功了,但是 mysql-server 没有成功:

image-20221109155246235

是由于 Centos7 版本的数据库不再默认安装 mysql 了,而是改成了 mariadb。CentOS 7 为什么放弃了 MySQL,而改使用 MariaDB? - 知乎

这个上面参考的文章炎总的用户中心部署笔记也有说明,又两种方法,一就是安装 mariadb,二就是去官网下来 mysql 源。我也没接触过 mariadb 所以我也暂时先选择 mysql

  1. 下载并安装 mysql-server

官网地址:MySQL :: Download MySQL Yum Repository

可以在官网上找到对应的版本,我这个是 Centos7 的 MySQL8 版本。

wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm	#下载
rpm -ivh mysql80-community-release-el7-7.noarch.rpm	#安装源
yum install mysql-community-server	#安装 mysql

安装成功~

image-20221109161349450

知识点补充:

linux 中的 rpm -ivhrpm 命令是什么 - 开发技术 - 亿速云 (yisu.com)

centos 如何安装 rpm 包 - CentOS-PHP 中文网

# 二、启动 mysql 服务

  1. 启动
systemctl start mysqld
  1. 查看启动状态
systemctl status mysqld

image-20221109162409739

  1. 开启开机自启动
systemctl enable mysqld
  1. 其他 mysql 命令
systemctl disable mysqld #停止 mysq1 服务开机自启动
systemctl status mysqld #查看 mysql 服务当前状态
systemctl restart mysqld #重启 mysql 服务
systemctl stop mysqld #停止 mysql 服务
  1. 取 root 账户的初始密码

/var/log/mysqld.log 文件下有 root 的初始密码

image-20221109164429785

  1. 登录修改密码:🔗修改 mysql 密码版本不同
mysql -u root -p	#回车之后会让你输入密码,输入刚刚的初始密码
set password for 'root'@'localhost'=password('你的root密码'); #mysql8 之前的版本
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';	#mysql8 的版本
  1. 创建用户并授权

    你可以创建一个数据库,然后创建一个用户,把这个数据库的权限授予这个用户。

    但是我不创建数据库了,我直接全部授权,之后就不用 root 登录了,用我这个新创建的用户进行登录。

#mysql8.0 以上版本命令:
mysql> create database database_name;  #创建数据库
mysql> create user 'user_name'@'%' identified by 'user_password'; #创建用户 
mysql> grant all privileges on database_name.* to 'user_name'@'%' with grant option;	#授权特定数据库给特定用户
mysql> grant all privileges on *.* to 'user_name'@'%' with grant option;	#授权所有权限给用户
mysql> FLUSH PRIVILEGES;	#刷新权限使操作生效
# mysql8.0 以下版本:
mysql> create user 'user_name'@'%' identified by 'password' with grant option;
或者
mysql> create user 'user_name'@'%'identified with mysql_native_password by 'password';
  1. 远程连接设置

把在所有数据库的所有表的所有权限赋值给位于所有 IP 地址的(你刚新创建的用户):这个其实前面就设置过了,就是这句。

#授权所有权限给用户
grant all privileges on *.* to 'user_name'@'%' with grant option;

这时候可以尝试在 windows 本机的客户端连接服务器的数据库试试,是会连接失败的,因为服务器的防火墙没开放 3306 端口呢。

我用的这个小宝宝:

image-20221109175233331

# 三、服务器防火墙开放 3306 端口

我的是腾讯云的服务器,登录腾讯云,进入服务器,我的是轻量级服务器,可能跟云服务器有点区别。

按以下设置即可,我就设置仅限制我自己 ip 可以登录。公司一个 IP,在家一个 IP,就不怕别人登录我的了。(怎么查自己的公网 IP,直接百度搜: IP地址查询

image-20221109175026969

可以再次尝试远程登录,成功~~~

原文章还有一步修改配置文件的编码格式,我这里先不修改,感兴趣的可以看看

image-20221109175429163

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Dabing-He 微信支付

微信支付