Centos 7.6 安装 mysql 8 小记
Centos 7.6 安装 mysql 8 小记
背景
国庆期间,由于发现之前的评论系统好像被墙了,然后萌生了换一个评论系统的想法(不涉及数据迁移,因为根本就没有数据:))。经过比较,最终的方案是独立部署 waline到自己的腾讯云服务器。因此需要在服务器上装一个 MySQL 数据库,发现原文作者安装数据库的步骤写的甚是详细,因此转载到博客~~
本文转载于Linux:CentOS7安装MySQL8(详),对作者表示感谢。正文开始
基于 Linux 的
CentOS 7
安装MySQL 8
,包含以下步骤
- 安装工作:卸载 MariaDB,下载资源包,检查旧版本 MySQL,解压安装。
- 配置工作:基本设置,创建用户组和用户,数据目录。
- 初始化 MySQL:配置文件,初始化。
- 启动 MySQL:启动服务,登录,修改密码,创建远程连接用户,退出和关闭。
安装工作
卸载 MariaDB
MariaDB 是 MySQL 的一个分支,主要由开源社区维护。
CentOS 7+
不再默认使用 MySQL 数据库,而是 MariaDB 数据库。- 直接安装 MySQL 会与 MariaDB 的文件冲突。
卸载
查看版本:有则需要卸载。
1
rpm -qa | grep mariadb
卸载:复制文件名,执行以下指令。
1
rpm -e --nodeps 文件名
确认卸载:
1
rpm -qa | grep mariadb
下载资源包
Hint:将 MySQL 资源包放在
/usr/local/
下
2 种下载方式
方式一:官网下载
- 官网下载:
Linux - Generic (glibc 2.12) (x86, 64-bit)
- 上传到服务器:
/usr/local/
目录下。
方式二:wget 下载
wget 指令:在
/usr/local/
下执行,下载资源包。1
2# 格式:wget 资源地址
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
检查旧版本 MySQL
指令:
1 rpm -qa | grep mysql
没有输出:说明当前系统没有安装 MySQL,开始安装。
有输出:显示的 MySQL 不是想要的版本,则卸载。
1
2
3
4
5# 停止服务
systemctl stop mysqld
# 卸载
rpm -e --nodeps mysql文件名
解压安装
解压:tar 指令。
1
2
3
4
5# .tar.gz 后缀
tar -zxvf 文件名
# .tar.xz 后缀
tar -Jxvf 文件名解压完成:
/usr/local/
下会生成 MySQL 文件夹。
Hint:将 MySQL 安装在
/usr/local/
下若没有安装在该目录下,通过
mv
指令移动到该目录。
配置工作
基本设置
文件夹重命名
重命名 MySQL 文件夹(或创建软链接 👉文件管理 2.5)
通常命名为
mysql版本号
1
2
3
4
5# 重命名(也可通过Xftp修改)
mv 原文件夹名 mysql8
# 软链接
ln -s 文件夹名 mysql8
PATH 环境变量
临时生效:export 命令(连接会话关闭后失效,通常用于测试环境)
1
export PATH=$PATH:/usr/local/mysql8/bin
永久生效:修改配置文件。
1
2
3vim ~/.bashrc
# 然后修改 PATH 变量,保存退出
source ~/.bashrc
确认安装
查看版本
确定 MySQL 安装成功后,可删除压缩包。
创建用户组、用户
注:需要进入
/usr/local
创建用户组:
groupadd
创建用户:
useradd
(-r
创建系统用户,-g
指定用户组)1
2groupadd mysql
useradd -r -g mysql mysql
数据目录
创建目录:
1
mkdir -p /data/mysql8_data
赋予权限:
1
2
3
4
5更改属主和数组
chown -R mysql:mysql /data/mysql8_data
更改模式
chmod -R 750 /data/mysql8_data
初始化 & 启动
配置文件
在
/usr/local/etc/
下创建my.cnf
配置文件,用于初始化 MySQL 数据库
配置内容:
1 | [mysql] |
初始化
Hint:需要进入
/usr/local/mysql/bin
,若添加了 PATH 变量可忽略。
初始化命令:注意文件夹名称。
--defaults-file
:指定配置文件(要放在—initialize 前面)--user
: 指定用户--basedir
:指定安装目录--datadir
:指定初始化数据目录--intialize-insecure
:初始化无密码(否则生成随机密码)
1 | mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure |
启动 MySQL
查看 MySQL 的
/bin
下是否包含mysqld_safe
, 用于后台安全启动 MySQL
启动服务
安全后台启动 MySQL
1 | # 完整命令 |
确认启动:第二条即 MySQL 服务。
1 | ps -ef | grep mysql |
登录
- 无密码:若以
--initialize-insecure
初始化,首次登录时跳过密码。
1 | mysql -u root --skip-password |
- 有密码:若初始化时设置了随机密码,在
/data/mysql8_data/mysql/mysql.log
查看
1 | mysql -u root -p |
登录后进入 MySQL 命令行:
以下报错,说明 MySQL 服务没开启
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
修改密码
首次修改
MySQL 初始化的 root 用户、新创建的用户,都需要设置首次密码。
建议使用本地密码插件
mysql_native_password
。
1 | # 修改密码 |
日常修改
2 种方式
- Linux 命令行
1 | mysqladmin -u 用户名 -p 旧密码 password 新密码 |
- MySQL 命令行
1 | # 设置密码 |
远程连接 MySQL
创建远程链接用户
选择 mysql 数据库,查看当前用户
1
2USE mysql;
SELECT user,host,plugin,authentication_string FROM user;host 字段
表示可访问当前数据库的主机,目前仅本地可访问。
- 创建用户,任意远程访问
1 | # 创建用户 |
- 查看用户:已创建一个可被任意远程主机访问的 root 用户。
远程链接 MySQL
非原文:腾讯云服务器要开放 3306 端口
Navicate 远程链接
结束~