Centos7安装配置Mysql8

1.前言

本篇博客将演示Centos7的环境下安装Mysql8,下面是本篇博客演示的环境,上一篇博客Centos7安装Mysql5.7可谓是让小编吃尽了苦头Centos7安装配制Mysql5.7,一直碰壁,好在在小编的坚持下硬是写出了一篇没毛病的文章,但是远程连接的问题暂时还是没有处理好,有知道这个bug的读者朋友可以在评论区解答一些小编这个问题,感谢!!!

// 演示环境
VMware Workstation  16.2.1  // 虚拟机软件
CentOS-7-x86_64-Minimal  // 系统版本
mysql-8.0.13 // mysql版本

2.环境准备

(1)冲突问题

有些版本的Centos会自带一个数据库 mariadb 会跟mysql冲突,有点话要先删除,可以执行以下命令检查系统中是否存在mariadb 的相关安装包(有多少删多少)。

rpm -qa|grep mari

在这里插入图片描述
如果有的话(如上)则执行以下命令进行卸载

rpm -e --nodeps mariadb-libs

(2)依赖准备

在后面mysql启动的过程中可能会出现以下报错

// 报错信息
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

原因是因为缺少了 libaio 这个依赖库,所以我建议小伙伴们在安装前就安装好这个依赖库,没有安装的小伙伴可以执行以下命令进行安装。

yum install -y libaio

(3)安装包准备

除了小编接下来要使用的wget的安装方式,还可以前往官网下载再上传到虚拟机 点击跳转官网
首先执行以下命令 在 /usr/local 目录下新建一个 mysql 文件夹

mkdir /usr/local/mysql

进入 /usr/local/mysql 目录

cd /usr/local/mysql

使用以下命令 进行安装包的下载 使用前要确保系统已经安装了wget 如果没有则执行
yum -y install wget 进行安装

 wget https://cdn.mysql.com//archives/mysql-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

3.开始安装

上一步我们已经将安装包下载到 /usr/local/mysql 目录下 接下来我们执行以下命令解压安装包

(1) 解压安装包

tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

(2) 配置环境变量

执行以下命令,修改系统环境配置文件

vi /etc/profile

将以下内容添加到文件末尾

export PATH=$PATH:/usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/bin
export PATH=$PATH:/usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/support-files

增加完退出后 执行以下命令使修改的内容快速生效

source /etc/profile 

(3) 配置mysql用户组

执行以下命令创建一个用户组

groupadd mysql

设置用户和密码

useradd -g mysql mysql

(4) 授权

执行以下命令对mysql的安装目录进行授权

chown -R mysql.mysql /usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64

(5) 初始化

执行以下命令进行初始化

mysqld --initialize --user=mysql

初始化时可以看到mysql默认帮我们生成的root用户密码,记得记录好,下面要用到
在这里插入图片描述

(7)修改配置文件

先执行以下命令在mysql安装目录下创建一个数据的存放目录

mkdir /usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/data

再执行以下命令修改mysql服务的配置文件 将 mysql安装目录 和数据库存放目录都配置好

vi /usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/support-files/mysql.server

Centos7安装配置Mysql8_第1张图片
可以看到刚开始是没有帮我们配置好的,将这两行替换成下面两行代码,修稿后保存退出

basedir=/usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64
datadir=/usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/data

Centos7安装配置Mysql8_第2张图片
下面是各位用户朋友以后可能会用到的一些配置,小编给大家列出来了,大家可以根据自己的系统环境进行修改。

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 数据库允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

(8)添加为系统服务

将mysql服务添加到系统服务这样更有利于对mysql的运维,执行以下命令将mysql服务文件拷贝到系统服务目录并修改服务名

cp /usr/local/mysql/mysql-8.0.13-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld

自此Mysql的服务名就叫mysqld
为了保险起见执行以下命令将权限也修改一下,加个执行权限

chmod +x /etc/init.d/mysqld

(9)启动服务

经过上面的配置,如果没有别的问题的话就可以执行启动mysqld服务了

systemctl start mysqld

执行以下命令设置mysqld服务开机自启动

systemctl enable mysqld

Centos7安装配置Mysql8_第3张图片
这样就设置完成开机自启动了

(10)一些常用命令

这里小编还给各位读者朋友准备了一些操作mysqld服务的一些常用命令

$ systemctl daemon-reload //重载系统服务
$ systemctl list-unit-files --type service //查看全部服务命令
$ systemctl status mysqld // 查看mysqld服务状态
$ systemctl enable mysqld //设置mysqld开机自启动
$ systemctl disable mysqld // 关闭mysqld开机启动
$ systemctl start mysqld // 启动mysqld服务
$ systemctl stop mysqld // 停止mysqld服务
$ systemctl restart mysqld// 重启mysqld服务

4.登陆Mysql

(1)查看初始化密码

除了初始化时显示出来的密码,还可以执行以下命令查看mysql安装时随机帮我们生成的root用户密码。

// 如果这个方法无法查看那只能回去找初始化时显示的密码了
grep "password" /var/log/mysqld.log

(2)登陆mysql

这里 -u 是指定用户的意思而 -p 就是指定登陆密码的意思,这里密码是依照个人环境而定 这里系统随机生成的密码是: CkphQ0;J>A6o

$ mysql -u root  -p 

在这里插入图片描述
会提示输入密码 这时输入上面查看到的随机密码即可

(3)修改密码

登陆成功后可以执行以下命令,修改登陆时的密码,我这里设置的密码是123456

alter user 'root'@'localhost' identified by '123456';

Centos7安装配置Mysql8_第4张图片
提示设置成功 运行以下命令时密码生效

flush privileges;

在命令行执行以下命令则可以退出客户端 下次登录时就需要我们设置的密码了

exit;

5.设置远程登陆Mysql

(1)权限设置

登陆进入mysql后,依次执行以下命令则可以设置mysql远程登陆
切换到 mysq l数据库

use mysql;

修改user表host的权限为所有ip地址都可以进行登陆

update user set host ='%' where user ='root';

修改完后执行以下命令刷新一下是修改的内容立即生效

flush privileges;

(2)开放端口

Mysql默认远程登录监听的端口是3306所以我们要放行服务器3306的端口,可以执行以下命令放行当前服务器的3306端口

// 放行防火墙8080端口(–permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=3306/tcp --permanent 

执行以上命令放行后,需要重启一下防火墙,使配置立即生效。

// 重启防火墙
firewall-cmd --reload 

(3)防火墙常用命令

这里小编还给大家提供了一些防火墙服务的常用命令

firewall-cmd --state  // 查看防火墙状态
systemctl stop firewalld.service  // 关闭防火墙(不推荐使用)
systemctl disable firewalld.service  // 阻止防火墙开机启动
firewall-cmd --reload // 重启防火墙
firewall-cmd --zone=public --list-ports // 查看防火墙所有开放的端口
firewall-cmd --permanent --zone=public --remove-port=3306/tcp // 关闭3306端口

完成上面的步骤,如果没有别的问题的话,我们就可以使用工具远程连接我们的服务器了

(4)远程连接

密码就是我们上面设置的root用户密码
Centos7安装配置Mysql8_第5张图片

6.结尾

本篇博客就演示到这里了,感觉还是遗漏了很多细节,后续小编会慢慢修改,如果觉得有用各位读者朋友可以给小编点一个免费的赞,后续专栏将会更新更多的优质内容,期待的读者朋友不妨点个订阅,谢谢大家。
Centos7安装配置Mysql8_第6张图片

你可能感兴趣的:(运维,Mysql,mysql,linux,服务器,数据库,centos)