centos7系统安装mysql8.0完整步骤
ドラゴンボールのLong Lv4

centos7系统安装mysql8.0完整步骤


官网下载安装包

官网地址

选择版本及下载 https://dev.mysql.com/downloads/mysql/

选择下载 MySQL 的 Linux 系统版本

Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7

选择要下载的 MySQL 版本

这里选择 RPM Bundle(x86) 点击 Download 下载

正式安装

通过shell上传到centos7

rpm -qa | grep mariadb 命令查看 mariadb 的安装包

1
2
[root@orc tmp]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64

卸载 mariadb

mariadb 这个是 Linux 系统自带的数据库系统,跟 MySQL 冲突,所以一般先卸载这个没用的数据库。

1
2
3
4
# 卸载 mariadb 命令
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps 命令装卸 mariadb
# 再次确认是否卸载干净。
rpm -qa | grep mariadb

创建MySQL 安装目录

安装目录创建在 /use/local 下

  • 通过 cd /usr/local/ 命令进入根目录下的usr目录下的local目录,这个目录是放一些本地的共享资源的

  • 通过 ll 命令查看一下当前目录下的目录结构

创建 MySQL 目录

1
2
#命令 在当前目录下创建一个名为 mysql 的目录
mkdir mysql
  • 通过 ll 命令查看一下当前目录下的目录结构,刚创建的 mysql 目录有了

  • 通过 cd mysql 命令进入 mysql 目录

  • ftp 协议来把刚下载好的 mysql 安装包传输到 CentOS7 系统中

解压 MySQL 安装包

1
2
3
#命令解压 tar 包
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
注意,命令中的 mysql-8.0.xx-xxxxxx 需要替换成自己下载下来的版本号为准。

安装及初始化

注意,MySQL 的安装需要有准确的顺序,上图解压出来的红框的大部分都需要安装,所以安装顺序很重要。

开始安装 MySQL

安装顺序:COMMON –> LIB –> LIB-COMPAT –> CLIENT –> SERVER

按以上顺序以此安装

1.安装 mysql-community-common

1
2
# 命令安装 common
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm --nodeps --force

2.安装 mysql-community-libs

1
2
3
4
# 命令安装 libs
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm --nodeps --force
# 命令安装 libs-compat
rpm -ivh mysql-community-libs-compat-8.0.32-1.el7.x86_64.rpm --nodeps --force

3.安装mysql-community-client

1
2
# 命令安装 client
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm --nodeps --force

4.安装mysql-community-server

1
2
# 命令安装 server
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm --nodeps --force

安装完成后, 通过 rpm -qa | grep mysql 命令查看 mysql 的安装包

1
2
3
4
5
6
[root@orc mysql]# rpm -qa | grep mysql
mysql-community-common-8.0.32-1.el7.x86_64
mysql-community-libs-compat-8.0.32-1.el7.x86_64
mysql-community-client-8.0.32-1.el7.x86_64
mysql-community-server-8.0.32-1.el7.x86_64
mysql-community-libs-8.0.32-1.el7.x86_64

初始化 MySQL

完成对 mysql 数据库的初始化和相关配置

1
2
3
4
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

查看数据库默认随记密码

通过命令查看数据库的密码

1
cat /var/log/mysqld.log | grep password

登录 MySQL

  • 通过敲回车键进入数据库登陆界面
1
mysql -uroot -p
  • 输入刚刚查到的密码,进行数据库的登陆,复制粘贴就行,MySQL 的登陆密码也是不显示的

修改 MySQL 密码

  • 通过 sql 命令来修改密码 ,注意是在MySQL登录状态下
1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
  • 通过 exit; 命令退出 MySQL,然后通过新密码再次登陆

授权远程访问

  • 通过以下 sql 命令,进行远程访问的授权
1
2
3
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

修改加密规则

部分可视化工具,不支持最新版本 mysql 8.0 加密规则,导致无法链接,可以修改下。

  • 1.通过一下 sql 命令修改加密规则
  • 2.flush privileges; 命令刷新修该后的权限
1
2
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
flush privileges;

设置密码永不过期

mysql8 数据库,密码默认有期限,可以设置成永不过期

1
2
3
4
# 修改root密码永不过期,输入命令:
# alter user 'root'@'localhost' password expire never;

alter user 'root'@'%' identified by 'root123' password expire never;

防火墙配置

关闭防火墙

  • 通过以下命令,关闭 firewall
1
2
3
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;

安装防火墙

  • 通过 yum -y install iptables-services 命令安装 iptables 防火墙

  • 通过以下命令启动设置防火墙

1
systemctl enable iptables;systemctl start iptables;
  • 通过 vim /etc/sysconfig/iptables 命令编辑防火墙,添加端口

  • 点击 i 键进入插入模式

  • 在相关位置,写入以下内容

1
2
3
4
5
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
  • 输入 wq 敲回车键保存退出,: 为英文状态下的

  • 通过 systemctl enable iptables.service 命令设置防火墙开机启动

验证数据库链接

通过 ifconfig 命令查看 ip

使用navicat来连接数据库

在CentOS7下查看并修改MySQL数据存放目录

查看数据存放目录

1
2
3
4
5
# 使用命令
SHOW VARIABLES LIKE '%datadir%';

# 或者
SELECT @@datadir;

得到默认存放目录:/var/lib/mysql

移动数据

停止mysql服务

1
systemctl stop mysqld

新建数据存放目录

1
mkdir -p /u01/mysql/data

复制数据

将mysql目录复制到/data01/mysql/data目录下

1
cp -a /var/lib/mysql /u01/mysql/data

给目录添加权限

1
2
chown -R mysql:mysql /u01/mysql/data/mysql 
chown -R mysql:mysql /u01/mysql/data

修改配置my.cnf

打开/etc/my.cnf文件, 找到[mysqld]关键字,修改datadir和socket的值

1
2
3
[mysqld]
datadir=/u01/mysql/data/mysql
socket=/u01/mysql/data/mysql/mysql.sock

重启mysql服务

1
systemctl start mysqld

问题

错误现象

重启后,项目可正常访问数据库,但是使用命令行访问数据库会报错:

1
2
3
4
mysql -uroot -p
......
Can't connect to local MySQL server through socket '/var/lib/mysql'
......

解决

修改/etc/my.cnf, 找到[client]段,添加配置

socket字段有可能不存在,添加即可。

1
2
3
4
[client]
default-character-set=utf8mb4
port=3306
socket=/u01/mysql/data/mysql/mysql.sock
  • 本文标题:centos7系统安装mysql8.0完整步骤
  • 本文作者:ドラゴンボールのLong
  • 创建时间:2019-07-06 02:22:02
  • 本文链接:https://zhongshenglong.xyz/2019/07/06/Centos7安装mysql-8.0/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论