前面的几篇文章我们学会了克隆以及安装配置jdl,安装zookeeper集群。今天我们来学习一下在虚拟机中安装Mysql。

下载相关安装包

根据你的系统版本到 官网 下载对应的包,这里我的系统是centos 7 mini 64bit版本,所以我选择Red Hat 7 x86 版本

mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar

点击download跳转后,点击底部的 No thanks, just start my download.

注:如果很慢的话可以考虑搜一下百度网盘进行下载

安装

1.rz命令上传到服务器

2.解压安装包

[root@localhost ~]# tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-devel-8.0.18-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm
mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-test-8.0.18-1.el7.x86_64.rpm
mysql-community-server-8.0.18-1.el7.x86_64.rpm
mysql-community-client-8.0.18-1.el7.x86_64.rpm

3.文件安装顺序:common --> libs --> client --> server --> devel。(devel可不装)

[root@localhost ~]# rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm 
警告:mysql-community-libs-8.0.18-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
    mariadb-libs 被 mysql-community-libs-8.0.18-1.el7.x86_64 取代

当提示“mariadb-libs 被 mysql-community-libs-8.0.18-1.el7.x86_64 取代”,是lib和系统自带的冲突,删除后继续:

[root@localhost ~]# yum remove mysql-libs -y
.......skip.....
作为依赖被删除:
  postfix.x86_64 2:2.10.1-7.el7                                                                                                                       
完毕!

[root@localhost ~]# rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm 
警告:mysql-community-libs-8.0.18-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-8.0.18-1.el7################################# [100%]
[root@localhost ~]# rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm

当执行下述命令又会遇到相应的依赖缺失:net-toolsperl

[root@localhost ~]# rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 
警告:mysql-community-server-8.0.18-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
    /usr/bin/perl 被 mysql-community-server-8.0.18-1.el7.x86_64 需要
    net-tools 被 mysql-community-server-8.0.18-1.el7.x86_64 需要
    perl(Getopt::Long) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要
    perl(strict) 被 mysql-community-server-8.0.18-1.el7.x86_64 需要

我装的centos 7是mini-install所以默认没有安装net-tools,标准版是有的

[root@localhost ~]# yum install net-tools -y
[root@localhost ~]# yum install -y perl

依赖安装完毕后再执行

[root@localhost ~]# rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 
警告:mysql-community-server-8.0.18-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-server-8.0.18-1.e################################# [100%]

这个步骤可能会稍微久一点点~

至此,Mysql 8安装完毕

启动服务并配置root用户

启动mysql

systemctl start mysqld

##找到临时密码
cat /var/log/mysqld.log

日志输出内容大致如下:

2019-12-19T15:42:45.021787Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.18) initializing of server in progress as process 1870
2019-12-19T15:42:46.740991Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 6e0cDfFWkO;K
2019-12-19T15:42:48.982727Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1918
2019-12-19T15:42:49.936565Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-12-19T15:42:49.957226Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.
2019-12-19T15:42:49.999079Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060

我们关注到临时密码是:6e0cDfFWkO;K 。我们使用临时密码来进入mysql命令行并修改root密码

[root@localhost ~]# mysql -u root -p
skip......
mysql>

出现如上情况就说明进入mysql了

注意:在Mysql 8版本,root密码需要包括大小写字母,特殊字符和数字。以下是反例

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123#@!';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

正确:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Abc123#@!';
Query OK, 0 rows affected (0.00 sec)

为了能够使用navicat登录到我们的数据库,我们创建一个新用户来操作,当然你也可以继续使用root用户。

mysql> CREATE USER 'cly'@'%' IDENTIFIED BY 'Abc123#@!';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to 'cly'@'%';
Query OK, 0 rows affected (0.00 sec)

注:这里的赋权太暴力了,建议按需开放权限,因为是虚拟机环境,所以暴力一些也无妨,但是线上机器切勿如此操作!

语法:

mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';

注意:

  • hostname可以是ip,localhost, 127.0.0.1
  • database_name/table_name ,可以指定库名,表名,如果是 *代表全部
  • hostname如果是*则代表所有主机都可以连接

刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
##退出
mysql> quit
Bye

检查防火墙

查看防火墙是否是开启的

[root@localhost ~]# firewall-cmd --state
running
##关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service

注:如果是真实的服务器直接关闭防火墙是不安全的,建议通过开放端口的方式来处理。

navicat连接

完成上述的操作后我们就可以使用navicat来操作数据库了!

测试连接
测试连接