全国大学生大数据技能竞赛 —— 分布式平台搭建(待更)

/该总结中均直接使用压缩包进行解压,并未涉及到yum源

基础部分

一、基础搭建

1、更改主机名

● 更改主机名为master:hostnamectl set-hostname master
在这里插入图片描述
同理修改slave1和slave2的主机名


hostnamectl命令详解

(1)查看主机相关信息:hostnamectl或者hostnamectl status
(2)修改主机名:hostnamectl set-hostname 新主机名

参考文章:
Linux 命令之 hostnamectl – 查看/修改当前主机的信息

2、配置hosts文件(三台机器都要执行)

● 编辑hosts文件:vim /etc/hosts
在这里插入图片描述
编辑etc中的hosts文件
在这里插入图片描述
输入各节点的IP和主机名

3、关闭防火墙

● 关闭防火墙:systemctl stop firewalld
● 查看防火墙状态:systemctl status firewalld
在这里插入图片描述

参考文章:
systemctl命令详解(此处仅用到了防火墙的开关以及状态查看,其余有空可以详细地学习一下)

4、时间同步

4.1 选择时区

● 选择时区:tzselect
在这里插入图片描述
在这里插入图片描述
● 将环境变量写入/etc/profile文件当中:

 echo “TZ='Asia/Shanghai';export TZ" >> /etc/profile
 source /etc/profile
4.2 建立 ntp 时间同步

● 下载 ntp :yum install -y ntp
● 可以使用 rpm 查看是否下载了ntp :rpm -qa | grep ntp
● 将master设置为时钟源:

vim /etc/ntp.conf
把server.centos相关的给注释掉,因为要将master本地作为时钟源
server xxx.xxx.xxx.xxx   #local clock
fudge xxx.xxx.xxx.xxx stratum 10

● 配置好后要重启服务:/bin/systemctl restart ntpd.service
● 在 slave1 和 slave2 上要进行 ntp 同步:ntpdata master
● 制作定时任务:
查看crontab服务是否开启
service crond status Redirecting to /bin/systemctl status crond.service
在这里插入图片描述
写入定时任务:crontab -h

选项作用
-e写入一个定时任务,进入文件编辑,然后做具体指令
-l列出做了哪些任务,可以进行查看
* /30 10-17 * * * /usr/sbin.ntpdata master

参考文章
Linux-rpm命令-查看已安装软件包信息及未安装rpm包信息
crontab 详解


注意:tzselect命令用于选择时区。要注意的是tzselect只是帮我们把选择的时区显示出来,并不会实际生效,也就是说它仅仅告诉我们怎么样去设置环境变量TZ。(TZ = Time Zone)如果你要永久更改时区,按照tzselect命令提示的信息,在.profile或者/etc/profile中设置正确的TZ环境变量并导出。

参考文章:
Linux tzselect --选择时区

(该部分缺少ntp时间同步,整理完全过程再细学一下这里)

5、配置ssh免密

● 在master上生成公私密钥:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
在这里插入图片描述
● 将 master 的公钥写入authorized_keys文件中,并复制到 slave1 进行公钥认证:

cat /root/.ssh/id_dsa.pub > > /root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@slave1:~/.ssh/

或者进行如下命令:
● 将master公钥id_dsa复制到slave1和slave2上,并进行公钥认证(可以通过远程登录进行验证):
ssh-copy-id -i /root/.ssh/id_dsa.pub slave1
ssh-copy-id -i /root/.ssh/id_dsa.pub slave2
● 免密登录slave1:

ssh slave1
exit(退出)

在这里插入图片描述
同理可以将master公钥复制到master上或配置其他免密。


DSA:digital signature Algorithm 数字签名。
RSA:既可以数字签名又可以加密。

ssh-keygen常用参数详解

选项详解
-t指定生成密钥的类型,默认使用SSH2d的rsa
-f指定生成密钥的文件名,默认id_rsa(私钥id_rsa,公钥id_rsa.pub)
-P提供旧密码,空表示不需要密码(-P ‘’)
-N提供新密码,空表示不需要密码(-N ‘’)
-b指定密钥长度(bits),RSA最小要求768位,默认是2048位;DSA密钥必须是1024位(FIPS 1862标准规定)
-C提供一个新注释
-R hostname从known_hosta(第一次连接时就会在家目录.ssh目录下生产该密钥文件)文件中删除所有属于hostname的密钥

ssh-copy-id命令详解
(1)作用:ssh-copy-id 将你的公共密钥填充到一个远程机器上的authorized_keys文件中。
(2)语句:ssh-copy-id [-i [公钥在本主机上的路径]] [user@] 远程机器主机名

参考文章:
ssh-keygen常用选项详解
ssh-copy-id命令详解 & 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
ssh命令详解


二、安装JDK

● 解压jdk压缩包至/usr/java中:tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/java(在master执行)
● 修改并生效环境变量(在master执行):
此处并未明白环境变量的详解

pwd(查看jdk路径)
vim /etc/profile
添加内容如下:
export JAVA_HOME=/usr/java/jdk1.8.0_202
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile

在这里插入图片描述
● 查看java版本:java -version
这里出现版本与所安装版本不同的情况,即安装为1.8.0_202版本,而此处显示为1.8.0_131版本
在这里插入图片描述

● 在master中将JDK复制到slave1和slave2中(master执行)
tar -zcvf /usr/java/jdk1.8.0_202.tar.gz jdk1.8.0_202
在这里插入图片描述
scp /usr/java/jdk1.8.0_202.tar.gz root@slave1:/usr
scp /usr/java/jdk1.8.0_202.tar.gz root@slave2:/usr
在这里插入图片描述
● 并在slave1和slave2中解压并配置环境变量,检查java版本是否正确


tar常用选项详解

选项详解
-z是否同时具有gz属性
-x解压缩、提取打包的内容
-c建立一个压缩,打包文档
-v显示压缩或者打包的内容
-f使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边
-C切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录

(1)解压tar.gz文件:tar -zxvf 解压文件路径 -C 解压后存放的路径
(2)压缩文件夹为tar.gz文件:tar -zcvf 打包后生成的文件名全路径 要打包的目录

scp命令常用详解

(1)从远处复制文件到本地目录

单个文件:scp [用户名]@[服务器名或ip]:[远程机器文件的路径] [本地的指定目录]
递归复制整个目录的文件:scp -r [用户名]@[服务器名或ip]:[远程机器文件夹的路径] [本地的指定目录]

(2)上传本地文件到远程机器指定目录

单个文件:scp [本地文件的路径] [用户名]@[服务器名或ip]:[远程机器的指定目录]
递归复制整个目录的文件:scp -r [本地文件夹的路径] [用户名]@[服务器名或ip]:[远程机器的指定目录]

参考文章:
Linux压缩打包命令——tar、zip、unzip
Linux下压缩某个文件夹(文件夹打包)
Linux安装JDK1.8后,java -version仍然显示版本为1.7的问题
Linux scp命令参数详解


三、安装zookeeper

● 解压zookeeper至/usr/zookeeper中:tar -zxvf zookeeper-3.4.5-cdh5.10.0.tar.gz -C /usr/zookeeper
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在zookeeper目录中,创建配置中所需要的zkdata和zkdatalog两个文件夹(在master执行):

cd /usr/zookeeper/zookeeper-3.4.5-cdh5.10.0
mkdir zkdata
mkdir zkdatalog

在这里插入图片描述
在这里插入图片描述
● 配置文件zoo.cfg(在master执行)
将simple配置文件拷贝为默认配置文件:

cd /usr/zookeeper/zookeeper-3.4.5-cdh5.10.0/conf
mv zoo_simple.cfd zoo.cfd

在这里插入图片描述
对 zoo.cfd文件配置如下:vim zoo.cfg

ticktime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.5-cdh5.10.0/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.5-cdh5.10.0/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

在这里插入图片描述

● 进入zkdata文件夹,创建myid文件,用于表示是几号服务器
cd /usr/zookeeper/zookeeper-3.4.5-cdh5.10.0/zkdata
vim myid编辑内容为1,即1号服务器

● 远程发送zookeeper给slave1和slave2,接收后更改myid文件
scp -r /usr/zookeeper root@slave1:/usr
scp -r /usr/zookeeper root@slave2:/usr
在这里插入图片描述
在这里插入图片描述
● 添加zookeeper环境变量:vim /etc/profile

export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.5-cdh5.10.0
export PATH=$PATH:&ZOOKEEPER_HOME/bin

生效:source /etc/profile
在这里插入图片描述
在这里插入图片描述
● 启动zookeeper集群
● 开启服务:zkServer .sh start(三台机器均执行)
● 查看状态:zkServer .sh status(显示一个leader两个follower)
在Zookeeper启动的时候出现了报错,可能是先前的zookeeper是直接对电脑进行强制关机所导致的。
报错代码:Starting zookeeper ... already running as process 5688.,使用kill -9 杀死线程后,开启及状态均正常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

● zookeeper的基本操作
进入Zookeeper客户端:zkCli.sh
1.创建序列化(有序)节点:create -s /hello_node 'hello'
2.创建临时节点:create -e /world_node 'world'
3.获取节点:get /world_node
4.修改节点。
(1)修改节点数据:set /world_node 'hello zookeeper'
(2)再次获取节点数据:get /world_node,则节点数据更改为'hello zookeeper'
5.删除节点。
(1)删除此节点:delete /world_node
(2)再次获取此节点:get /world_node
(3)使用ls命令列出根节点下的所有节点:ls /,“/world_node”节点已被删除。
6.退出Zookeeper客户端:quit

● jps查看进程:
在这里插入图片描述


zoo.cfg文件配置详解

参数详解
tickTime基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。
dataDir存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit这个配置项是用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
syncLimit这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
server.A = B:C:DA 表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader

参考文章:
ZooKeeper配置文件zoo.cfg详解
Zookeeper启动报错 Starting zookeeper … already running as process 5688.

四、安装hadoop

4.1解压 hadoop 安装包

● 解压hadoop至/usr/hadoop中(在master中进行):tar -zxvf hadoop-2.7.7.tar.gz -C /usr/hadoop
● 添加并生效 hadoop 环境变量(三台机器执行):

vim /etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.7
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/bin

source /etc/profile

在这里插入图片描述

4.2配置 hadoop 各组件

● 编辑 hadoop-env.sh 配置文件

cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh
修改java环境变量:export JAVA_HOME=/usr/java/jdk1.8.0_202

● 编辑 core-site.xml 文件

<configuration>
<!-- 定义文件系统的实现,默认是file:///本地文件系统  需要我们改成 hdfs://分布式文件存储系统   -->
<property>
	<name>fs.default.name</name>
	<value>hdfs://master:9000</value>
</property>
<!-- 临时数据存放的位置(Hadoop安装目录下的临时文件) -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/usr/hadoop/hadoop-2.7.7/hdfs/tmp</value>
	<description>A base for other temporary derectories.</description>
</property>
<!--  缓冲区大小,实际工作中根据服务器性能动态调整 -->
<property>
	<name>io.file.buffer.size</name>
	<value>131072</value>
</property>
<!-- fs.checkpoint.period 同步检查时间,缺省是3600秒1小时。测试时设为20秒 -->
<property>
	<name>fs.checkpoint.period</name>
	<value>60</value>
</property>
<!-- fs.checkpoint.size 当edit 日志文件大于这个字节数时,即使检查时间没到,也会触发同步 -->
<property>
	<name>fs.checkpoint.size</name>
	<value>67108864</value>
</property>
</configuration>

*master:在主节点的 ip 或者映射名。
*9000:主节点和从节点配置的端口都是9000。
● 编辑 hdfs-site.xml

<configuration>
<!-- 配置系统自动数据备份数量为2份(默认是3份) -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- NameNode 元数据存放位置(初始化时name文件夹才会生成) -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/software/hadoop-2.7.7/hdfs/name</value>
<final>true</final>
</property>
<!-- DataNode在本地磁盘存放block的位置(在开启整个集群后,data文件夹才会生成) -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/software/hadoop-2.7.7/hdfs/data</value>
<final>true</final>
</property>
//后面部分缺少详解,且第一部分讲解时并未填写如下参数
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.hosts</name>
<value>/usr/software/hadoop-2.7.7/conf/datanode-allow.list</value>
<description>允许加入集群的节点列表</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/software/hadoop-2.7.7/conf/datanode-deny.list</value>
<description>拒绝加入集群的节点列表</description>
</property>
</configuration>

● 修改 yarn-env.sh

写入 java 的环境变量:export JAVA_HOME=

● 修改 yarn-site.xml

<configuration>
<!-- RM对客户端暴露的地址,客户端通过该地址向RM提交应用程序等 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<!-- RM对AM暴露的地址,AM通过地址想RM申请资源,释放资源等 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<!-- RM对外暴露的web  http地址,用户可通过该地址在浏览器中查看集群信息 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<!-- RM对NM暴露地址,NM通过该地址向RM汇报心跳,领取任务等 -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<!-- 管理员可以通过该地址向RM发送管理命令等 -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
<!-- 指定reduce获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--  -->
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapreduce.ShuffleHandler</value>
</property>
</configuration>

● 编辑 mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
添加如下:
<!-- 指定mapreduce运行在yarn集群上面 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

● 修改 master 和 slaves 文件:

vim master
master
vim slaves
slave1
slave2

或者:
编辑 slaves 和 master 文件:
删除localhost,添加slave1slave2到slaves文件,添加 master到 master 文件

echo master >master && echo slave1 >slaves && echo slave2 >slaves

● 远程发送zookeeper给slave1和slave2(别忘记配置 hadoop 环境变量)

scp -r /usr/hadoop root@slave1:/usr
scp -r /usr/hadoop root@slave2:/usr

记得修改并生效 slave1 和 slave2 的环境变量

4.3格式化 hadoop 并开启 hadoop 集群

● 在master(主节点)格式化一下hadoop namenode -format(此时主节点的暂存目录已经生成了)
出现Exiting with status 0的时候,表示格式化成功(格式化后生成NameNode元数据存放目录)
在这里插入图片描述
在这里插入图片描述

● 开启 hadoop 集群(仅在master上开启),回到 hadoop 目录:sbin/start-all.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后续这张图没搞懂
视频中 id 部分因广告挡住没听懂


hadoop中常用文件夹及作用简介

文件夹名称作用
binshell脚本
sbinshell脚本,如启动hdfs需要用到
etc/hadoop所有配置文件的路径
lib/native本地的C程序库

hadoop六个配置文件详解

配置文件作用
core-site.xml核心配置文件,主要定义了我们文件访问的格式 hdfs://
hadoop-env.sh主要配置我们的java路径
hdfs-site.xml主要定义配置我们的hdfs的相关配置
mapred-site.xml主要定义我们的mapreduce相关的一些配置
slaves控制我们的从节点在哪里 datanode nodemanager在哪些机器上
yarm-site.xml配置我们的resourcemanager资源调度

参考文章:
详解Hadoop六个配置文件的作用
namenode崩溃的数据恢复测试
yarn-site.xml参数配置详解

五、安装hbase

(现在master上进行操作,然后再复制到子节点slave1和slave2上)
● 1、创建/usr/hbase,下载并解压至工作路径。
● 2、进入hbase配置目录conf,修改配置文件hbase-env.sh,添加配置变量

cd /usr/hbase/hbase-1.2.4/conf
vim hbase-env.sh
export HBASW_MANAGES_ZK=false
export JAVA_HOME=/usr/java/
export HBASE_CLASSPATH=/usr/Hadoop/Hadoop-2.7.3/etc/Hadoop

解释:一个分布式运行的hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeeper集群,即Hbase默认自带一个zookeeper集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目中通常自己管理一个zookeeper集群更便于优化配置提高集群工作效率,但需要配置Hbase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper。在本实验中,我们采用独立运行zookeeper集群的方式,故将其属性值改为false。
● 3、配置conf/hbase-site.xml文件

<configuration>
<--这个目录是region server的共享目录,用来持久化Hbase-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<--Hbase的运行模式。false是单机模式,true是分布式模式-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://master:6000</value>
</property>
<--在这里列出zookeeper集群的地址列表,用逗号分隔-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<--zookeeper的zoo.conf中的配置-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/zookeeper/zookeeper-3.4.5-cdh5.10.0</value>
</property>
</configuration>

● 4、配置conf/regionservers,添加子节点
在这里列出了希望运行的全部HRegionServer,一行写一个host(就像Hadoop里面的slaves一样)。列在这里的server会随着集群的启动而启动,集群的停止而停止。

● 5、hadoop配置文件拷入hbase的目录下(当前目录为/usr/hbase/hbase-1.2.4/conf)

cp /usr/Hadoop/Hadoop-2.7.3/rtc/Hadoop/hdfs-site.xml
cp /usr/Hadoop/Hadoop-2.7.3/rtc/Hadoop/core-site.xml

● 6、远程发送hbase到子节点

scp -r /usr/hbase root@slave1:/usr/
scp -r /usr/hbase root@slave2:/usr/

● 7、配置环境变量(三台机器)

vim /etc/profile
配置环境变量Hbase
export HBASE_HOME=/usr/hbase/hbase-
export PATH=$PATH:$HBASE_HOME/bin

生效环境变量:source /etc/profile

● 8、运行和测试,再master上执行(保证hadoop和zookeeper已开启)

bin/start-hbase.sh
jps

六、安装hive

6.1 在 slave2 上安装 MySQL server

● 1、解压安装包
现在已经为大家下载好了 MySQL 5.7.25 的安装包,存放在/root/software目录下。首先进入此目录下,然后进行解压即可使用,命令如下:

cd /root/software/	# 进入目录
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar	# 解压安装包到当前目录下

将其解压到当前目录下,即/root/software中,效果图如下所示:

● 2、 安装 MySQL 组件
使用rpm -ivh命令依次安装以下组件:

(1)首先安装 mysql-community-common (服务器和客户端库的公共文件),使用命令:
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
若是出现“100%”,则表示安装成功:

(2)其次安装 mysql-community-libs(MySQL 数据库客户端应用程序的共享库),使用命令:
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
若是出现“100%”,则表示安装成功:

(3)之后安装 mysql-community-libs-compat(MySQL 之前版本的共享兼容库),使用命令:
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
若是出现“100%”,则表示安装成功:

(4)之后安装 mysql-community-client(MySQL 客户端应用程序和工具),使用命令:
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
若是出现“100%”,则表示安装成功:

(5)最后安装 mysql-community-server(数据库服务器和相关工具),使用命令:
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
若是出现“100%”,则表示安装成功:

● 3、登录 MySQL
(1)初始化 MySQL 的数据库
安装好 MySQL 后,我们需要初始化数据库,初始化和启动数据库时最好不要使用 root 用户,而是使用 mysql 用户启动。命令如下:
/usr/sbin/mysqld --initialize-insecure --user=mysql

对于 MySQL 5.7.6 以后的 5.7 系列版本,MySQL 也可以使用 mysqld --initialize 初始化数据库
该命令会在 /var/log/mysqld.log 文件中生成一个登录 MySQL 的随机密码,而 mysqld --initialize-insecure 命令不会生成随机密码,而是设置 MySQL 的密码为空。

(2)启动 MySQL 服务
使用如下命令开启 MySQL 服务,让其在后台运行(一定要加“&”,脚本才能放到后台运行):
/usr/sbin/mysqld --user=mysql &
执行后,系统会打印出命令执行的PID,如下图所示:
在这里插入图片描述

(3)登录 MySQL,使用 root 用户无密码登录 MySQL:mysql -uroot
在这里插入图片描述

(4)重置 MySQL 密码
在 5.7 版本后,我们可以使用alter user...identified by命令把 root 用户的密码修改为 “123456”,具体命令如下所示:
mysql> alter user 'root'@'localhost' identified by '123456';
在这里插入图片描述

修改完成,使用exit或者quit命令退出 MySQL,重新登录验证密码是否修改成功,具体命令如下所示:
mysql -uroot -p123456在这里插入图片描述

● 4、增加远程登录权限
当我们的帐号不允许从远程登录,只能在 localhost 连接时,这个时候只要在 MySQL 服务器上,更改 mysql 数据库里的 user 表里的 host 项,从 localhost 改成 % 即可实现用户远程登录。
(1)查看 user 表信息
使用如下命令查看 mysql 数据库下的 user 表信息:
mysql> use mysql; # 切换成 mysql 数据库
mysql> select user,host from user; # 查询用户信息
效果如下图所示:
在这里插入图片描述

可以看到在 user 表中已创建的 root 用户。host 字段表示登录的主机,其值可以用 IP 地址,也可用主机名。
(2)实现远程连接(授权法)
将 host 字段的值改为 % 就表示在任何客户端机器上能以 root 用户登录到 MySQL 服务器,建议在开发时设为 %。命令如下:

# 设置远程登录权限 
mysql> update user set host='%' where host='localhost';
# 刷新配置信息
mysql> flush privileges;

提高部分

七、Spark安装

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值