前面的几篇文章我们学会了克隆以及安装配置jdl,安装zookeeper集群。今天我们来学习一下在虚拟机中安装Mysql。
下载相关安装包
根据你的系统版本到 官网 下载对应的包,这里我的系统是centos 7 mini 64bit版本,所以我选择Red Hat 7 x86 版本
点击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-tools
、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
错误:依赖检测失败:
/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来操作数据库了!