一、本章内容
本章,介绍如何搭建学习环境:
- 搭建CentOS 7操作系统
- 安装MySQL 5.7
- 配置MySQL 5.7
二、搭建CentOS 7操作系统
2.1 先安装VMware Workstation 虚拟机
如果没有Linux服务器,或没有没有Linux电脑,应该先搭一个Linux操作系统,比如CentOS7。
那么,如何在Window操作系统中,安装CentOS 这个Linux操作系统呢?一台电脑两者能同时运行吗?
通过VMware Workstation 虚拟机,在Windows操作系统上,模拟出一台(或多台)独立的全新的电脑,来安装CentOS 。这样,两者就在“不同的电脑”上运行了。
具体的
- 先安装VMware Workstation 虚拟机
- 再安装CentOS 7 操作系统
的步骤,见《20.1 Linux基础 》。
注意:
之前的是直接在自己window系统中,安装的官网MySQL的windows版本。
2.2 再在虚拟机中安装CentOS 7操作系统
虚拟机的安装跟之前一样。但是本次CentOS 7操作系统的安装,跟之前就不太一样。
所以,把步骤记录如下:
1.初步安装
点自定义:
下一步:
点击“稍后安装操作系统”:
下一步:
起个名字:
imooc:只是虚拟机的名称,方便区分不同的虚拟机
root:CentOS 7操作系统的账户名、密码
下一步:
下一步:
网络直接使用NAT即可,可以保证虚拟机之间相通,是在一个局域网里面的。
宿主机(即windows系统)是当作虚拟机的网关。比如:虚拟机访问外网时,也可以通过宿主机访问出去。
下一步:
下一步:
点击完成即可:
2.插入下载的镜像
因为之前没有插入下载的镜像,所以这里点击下面的CD/DVD:
选择之前的CentOS7的镜像文件:
接下来,是图形化界面的安装:很简单,可以参考之前的《20.1 Linux基础》。
(这里的图形化界面安装里,其中会让你设置一个CentOS 7系统的用户名、密码,我的是root、root)
综上所述,CentOS 7操作系统,在虚拟机中已经安装成功。
2.3 通过本地Xshell远程连接工具,建立与远程CentOS 7系统的连接
1.工具选择
上述CentOS 7操作系统在虚拟机中安装完后,老师用的顺手的远程操作工具是:Moba
但是,我使用的是:(很多人也使用)
因为这个是之前就已经使用过了:
具体使用Xshell建立与远程CentOS系统的连接,见《20.1 Linux基础 》
2.进入虚拟机,拿到虚拟主机的IP地址
获取上述虚拟主机的IP地址:
应用程序|终端,进入终端的命令行:
192.168.199.132
(最新的是192.168.199.133
)
这个命令,也行:
3.在本地Xshell中,建立会话,成功连接
成功的使用Xshell,连接到了远端的Linux服务器:
使用root的账号、密码登录:
不是使用imooc:
三、安装MySQL软件
这里是,将MySQL安装在上节的Linux操作系统中。
以前,MySQL是安装在自己电脑Windows中,用cmd弄的。
3.1 找到官网及版本等信息
- 下载的版本是社区版(即免费开源):
- 虽然最新版是8,但是现在很多公司还在用5.6、5.7是最多的。所以,这里以5.7为主。
- 最好去
archives
(即归档)中找:
可以下载到本地的windows宿主机上,也可以右键复制下载链接,在虚拟机里wget下来。这里采用后者:
Bundle:
聚合,下面的都包含
拓展:Xcode事件
开发者最好去官网下载程序,避免在第三方平台,安全隐患。
3.2 右键复制下载链接,在虚拟机里wget下来
wget:下载下来
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
tar命令,解压
tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
3.3 先装common,用rpm(CentOS自带的一个包管理工具)安装
rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm
3.4 再装libs,就是一些库
尝试安装libs:
rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm
因为CentOS7操作系统会自带一个Mariadb的libs,所以会报错。需要将其卸掉:
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
Mariadb:
是MySQL的一个分支,一个强分支。
卸载了Mariadb的libs后,尝试安装MySQL的libs:
因为签名校验原因,仍出错。此时直接强制安装即可。
rpm -ivh --force --nodeps mysql-community-libs-5.7.33-1.el7.x86_64.rpm
3.5 安装client客户端
平时的MySQl命令,用的就是这个client客户端:
rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm
3.6 安装server
也会因为签名校验原因,出错。此时直接强制安装即可。
rpm -ivh --force --nodeps mysql-community-server-5.7.33-1.el7.x86_64.rpm
3.7 安装成功
mysql
which mysql
四、配置MySQL软件
4.1 更改自己指定的用户名密码
1.
先去掉所有的校验密码,再进去改密码:(线上公网不要这样做,易被攻击)
- 通过
vim /etc/my.cnf
打开配置文件 - 在配置文件中,增加
skip-grant-tables
- 保存并退出
:wq
2.
启动MySQL的服务;
systemctl start mysqld.service;
进入MySQL客户端;
客户端client,就相当于Windows上的Navicat,只不过这里是命令行形式的客户端:
mysql
注意:
下面之所以不能进入mysql客户端,是因为之前的配置文件没能生效。
解决:重启虚拟机。
3.
因为此时,是没有任何校验的时候连接上MySQL客户端的,不安全,所以此时在已进入MySQL客户端后,设置一个自己的密码:
update mysql.user set authentication_string=password('123456') where user='root';
flush privileges
以上,就将一个默认的随机密码,改成自己指定的密码了。
4.
退出MySQL客户端:exit
关闭mysql的服务:systemctl stop mysqld.service;
然后将之前的不校验配置,注释掉:vim /etc/my.cnf
然后,通过之前自己设置的用户名、密码进行登录:mysql -uroot -p123456
注意:
如果想将MySQL服务开机启动,可以:
systemctl enable mysqld.service
即注册上去了。
4.2 更改密码复杂程度、最短长度:
1.
把密码校验的复杂程度,改为low:方便自己开发,可以使用123456.(线上不要这么做)
set global validate_password_policy=LOW;
设置密码的有效最短长度:
set global validate_password_length=4;
设置密码:
set password=password('123456');
2.
显示MySQL当前工作的状态,比如事务、性能等:
show status;
以上,mysql的就已经启动好了。
4.3 让宿主机的Navicat(本地局域网),能远程连接MySQL
1.问题
以上,是在虚拟机的里面,即CentOS操作系统里,使用MySQL。
那么,如果,想在宿主机上,即虚拟机的外面,连接里面CentOS系统的mysql server。这会连接不上:
2.原因及解决
这是因为CentOS操作系统是有防火墙的,上述的3306端口没有开放。
所以,先退出MySQL数据库,再将CentOS操作系统的3306端口永久打开即可:
eixt
firewall-cmd --zone=public --add-port=3306/tcp --permanent
将防火墙重启生效:
firewall-cmd --reload
3.原因及解决
另外,一个原因是MySQL的账号密码没有远程登陆的权限,只能本地登录。
开启远程登录,MySQL的:
mysql -uroot -p123456
-------------- 进入MySQLgrant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
----------------- 开启远程登录的权限
4.远程连接成功
打开宿主机的Navicat:
远程连接成功
以上,虚拟机就开放了一个MySQL服务,在本地的局域网里。
不管是在别的虚拟机,还是Windows的宿主机上,都可以用上述用户名密码来登录MySQL。
Comments | NOTHING