学习目标
本教程针对的是Linux服务器方面的知识,适合从事运维或后端开发的人员阅读。
计算机的体系结果硬件和软件两部分组成,系统用来承载应用软件,硬件是操作系统运行的基础。
目前主流的操作系统有:Windows系列、Unix系列、Linux系列、Android系列、IOS系列 …
1991年,林纳斯-托瓦兹。免费了、自由、开源了代码。可以支持多用户、多任务、支持多线程。
32位、64位,Linux都支持。
Linux系统主要特点见下:
系统稳定性非常高(宕机机概率低)
完全开源免费、在安装的时候可以自由的进行定制
纯命令方式来控制(安全性高)、节省资源的开销
Linux社区非常完整,丰富的社区来获取一些一线的资源
Linux最适合做服务的操作系统
Redhat:RedHat公司发行的Linux版本,效率高、扩展性好、高可靠性。目前最大的Linux发行商,功能全面并且稳定,于2018年10月被IBM以340亿美元的价格收购。
CentOS:基于RedHat源码编译而成,是RHEL的克隆版本,可以认为是免费(完全开源)版本的Redhat系统。
DEbian:有很对社区进行维护的非官方版本,商业可用性不高。
Ubuntu:乌班图,基于DEbian的发行,目前最好的Linux桌面版,拥有很人性化的亮丽的交互界面,强大的软件源支持。
SUSE:德国的SUSE公司发行的版本。
如何获取一个Linux操作系统?
直接基于硬件平台进行安装
安装虚拟平台(虚拟机),然后在虚拟机中安装操作系统
租用云端服务器(阿里云)
使用软件模拟出硬件的环境----从计算机中把这一部分的资源剥离出来,共虚拟机独立使用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zIvVD94X-1668132623637)(images/11.png)]
1.下载。下载地址:https://www.vmware.com/cn.html。
2.安装。傻瓜式安装,安装完成之后重启计算机。
3.激活。计算机重启之后,第一次运行vmware时输入序列号进行激活。
1.Windows系统
1.VMware-workstation-full-16.2.2-19200509。直接双击即可安装,全部下一步(你要不要安装在C盘-放在非中文目下)。
2.Mac M1系统
1.VMware Fusion 12.2.3_M1。双击安装包,拖拽到application目录下。傻瓜式安装。
桥接网络和转换网络。
下载地址:https://www.centos.org。下载的是CentOS景像:iso。
按照安装教程通过Vmware软件进行CentOS系统的安装。
1.windows系统
1.CentOS 7 64 位 的克隆解压到任意非中文目录下。
2.选择打开虚拟机,选择到centos安装目录下的.vmx文件(淡绿色)。
3.密码是:11。
2.Mac M1系统
1.双击即可解压(推荐解压到非中文目录下)。
2.VM-File-打开文件-CentOS。
3.右键选择启动。
4.密码:1234。
Linux系统树状目录结构见下:与Windows操作系统最大不同点在于不分磁盘。Linux操作系统作为系统的根目录。
Linux系统目录结构介绍见下:
目录名称 | 功能介绍 |
---|---|
/bin | 存放的是二进制文件 |
/sbin | 存放的是二进制文件,只有root用户可以访问 |
/boot | 系统的核心目录,存放操作系统的程序文件 |
/dev | 存放的是系统的硬件配置文件 |
/etc | 寻访的是系统的配置文件(网络配置) |
/home | 家目录。为每一个用户创建一个独立的目录 |
/lib | 系统的资源文件库 |
/proc | 内存映射目录 |
/var | 临时数据 |
/tmp | 临时文件 |
/root | 超级用户管理员对应的家目录 |
/usr | 通常放安装的程序,共享系统资源 |
采用可视化的GUI桌面来操作系统,功能有局限。通过命令的方式来操作系统,Shell方式。
Shell俗称外壳,提供了一个使用界面的软件,以命令行的形式来操作Linux系统,完成命令的解析。
授权、常规的系统访问,见访问的结果返回给客户端。
Linux命令格式见下:
命令 [-选项] [参数]
cd
pwd
cat
rm -f /home/user/file.txt
命令区分大小写,其中选项和参数是可选的,中间采用空格隔开。
[user@localhost ~]$
[root@localhost user]#
命令 | 功能描述 |
---|---|
ls | list表示西显示文件 |
ls -l 或 ll | 显示文件详情(创建者、创建时间、权限) |
ls -a | 显示全部文件包含隐藏文件 |
ls -al | 显示包含隐藏的文件并以列表展示 |
ls 目录名 | 查看指定目录下对应的内容 |
命令 | 功能描述 |
---|---|
pwd | 获取当前文件的目录结构 |
命令 | 功能描述 |
---|---|
cd … | 往上一级目录 |
cd dirname | 跳转到指定文件夹目录下 |
cd 或 cd ~ | 直接进入到用户的家目录 |
cd / | 进入到系统的根目录下 |
命令 | 功能描述 |
---|---|
whoami | 查看当前用户的名称 |
命令 | 功能描述 |
---|---|
su | 从普通用户切换到root用户 |
su root | 从普通用户切换到root用户 |
su 用户名 | 从root用户切换到指定的普通用户下 |
exit | 退出当前用户 |
注意:最好使用su和exit搭配使用,否则多次使用su指令会导致用户的“叠加”。
必须在root账户下执行:
命令 | 功能描述 |
---|---|
useradd 用户名 | 给当前的系统添加一个新的账户 |
passwd 用户名 | 给当前的用户设置登录密码 |
userdel -r 用户名 | 删除某个指定的用户 |
命令 | 功能描述 |
---|---|
which 命令 | 查看某个指定路径信息 |
命令 | 功能描述 |
---|---|
touch fileName | 创建名字为fileName的文件,创建的文件放在当前目录下 |
touch dir/fileName | 在dir目录下创建名字为fileName的文件 |
echo 内容 > fileName | 把内容覆盖写到文件中,若文件不存在则创建 |
echo 内容 >> fileName | 把内容追加到文件中 |
cat fileName | 打印文件内容到终端 |
more fileName | 分屏查看文件各行内容,不支持回看 |
less fileName | 查看文件各部分内容,支持回看 |
head -n fileName | 查看文件的前n行内容 |
tail -n fileName | 查看文件末尾n行内容 |
wc fileName | 查看文件的行数 |
命令 | 功能描述 |
---|---|
mkdir 目录名 | 创建普通文件夹 |
mkdir -p 目录/目录/目录 | 递归方式创建多级父子文件夹 |
mv dir1 dir2 | 将dir1移动到dir2中 |
mv dir1/dir2 ./ | 将dir1中dir2移动到当前目录下 |
mv dir1 name | 将dir1改名为name |
cp dir1 name | 将dir1拷贝为name |
cp -r dir1 dir2 | 需要设置参数-r(recursive递归)无视目录层次 |
rm 文件 | 删除文件 |
rm -r 目录 | 递归删除目录(无视目录层次) |
rm -rf 文件/目录 | -r force(强制)删除文件/目录 |
命令 | 功能描述 |
---|---|
find / -name passwd | 查找根目录下的passwd文件(passwd为文件完整名称) |
find ./ -name “p*” | 查找文件名中包含"p"的文件 |
find ./ -type f 或 find ./ -type d | 查找所有文件或目录 |
grep 内容 fileName | 从指定文件中查找指定的内容 |
1.chmod命令介绍
Linux的文件有访问级别,有三级划分:
只有文件所有者和超级用户可以修改文件或目录的权限。
2.语法格式
chmod命令语法:
chmod [-cfvR] [--help] [--version] mode file...
mode:权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
其他参数说明:
3.符号模式
使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和permission(权限),每个项目的设置可以用逗号隔开。 命令chmod将修改who指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在who的位置来说明。
who的符号模式表:
who | 用户类型 | 说明 |
---|---|---|
u | user | 文件所有者 |
g | group | 文件所有者所在组 |
o | others | 所有其他用户 |
a | all | 所用用户,相当于ugo |
operator的符号模式表:
Operator | 说明 |
---|---|
+ | 为指定的用户类型增加权限 |
- | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
permission的符号模式表:
模式 | 名字 | 说明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/setgid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
4.八进制语法
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
例如, 765将这样解释:
5.实例
将文件file1.txt设为所有人皆可读取:
chmod ugo+r file1.txt
将文件file1.txt设为所有人皆可读取:
chmod a+r file1.txt
将文件file1.txt与file2.txt设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmod ug+w,o-w file1.txt file2.txt
为ex1.py文件拥有者增加可执行权限:
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取:
chmod -R a+r *
此外chmod也可以用数字来表示权限,语法为:
chmod abc file
其中a、b、c各为一个数字,分别表示User、Group及Other的权限。r=4,w=2,x=1。
# 效果相同
chmod a=rwx file
chmod 777 file
# 效果相同
chmod ug=rwx,o=x file
chmod 771 file
6.更多说明
命令 |
说明 |
---|---|
chmod a+r file | 给file的所有用户增加读权限 |
chmod a-x file | 删除file的所有用户的执行权限 |
chmod a+rw file | 给file的所有用户增加读写权限 |
chmod +rwx file | 给file的所有用户增加读写执行权限 |
chmod u=rw,go= file | 对file的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限) |
chmod -R u+r,go-r docs | 对目录docs和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限 |
chmod 664 file | 对file的所有者和用户组设置读写权限, 为其其他用户设置读权限 |
chmod 0755 file | 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1) 。0没有特殊模式 |
chmod 4755 file | 4设置了设置[用户ID]位,剩下的相当于u=rwx (4+2+1),go=rx (4+1 & 4+1) |
find path/ -type d -exec chmod a-x {} ; | 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用’-type f’匹配文件 |
find path/ -type d -exec chmod a+x {} ; | 允许所有用户浏览或通过目录path/ |
运行一个应用程序,就会启动一个进程。在一个进程中有多个任务,每一个任务可以交给一个线程来完成。进程包含了线程。一个应用程序只能有一个进程,但是可以有多个线程。
命令 | 功能描述 |
---|---|
ps | 查看当前终端窗口里的进程(PID表示进程号) |
ps -aux | 查看系统中的所有进程 |
ps -ef | 查看进程列表 |
kill 进程号 | 杀死指定的进程 |
kill -9 进程号 | 强制杀死指定的进程 |
命令 | 功能描述 |
---|---|
ifconfig | 查看当前系统的IP地址等信息 |
tar -zcvf 压缩文件名.tar.gz 文件路径1 文件路径2 … | 实现一组文件或文件夹的打包 |
tar -zxvf 压缩文件名.tar.gz | 实现解压缩解包 |
man [章节号] 命令/函数名 | 查询指定的命令或函数(如man touch) |
所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。
vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim则可以说是程序开发者的一项很好用的工具。
连vim的官方网站(https://www.vim.org)自己也说vim是一个程序开发工具而不是文字处理软件。
vim键盘图:
vi和vim是Linux系统命令行下的文本编辑器。通常格式为:
vi filename
# 或者
vim filename
基本上vi/vim共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:通过vi或者vim打开某个待要被编辑的文件,此时是不可以输入内容,即此时不可以编辑文件。
输入模式:在命令模式下输入"i"键,即进入到输入模式,此时底部会提示一个“insert”。按下键盘的esc键,又进入到命令模式。
底线模式:如果在命令模式下,输入":wq",“:w”、“:q!”,此命令在底部显示,所以称之为底线模式。
:wq 保存并退出当前文件
:q 退出文件(不会保存)
:q! 强行退出文件(不会保存)
用户刚刚启动vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
命令 | 功能描述 |
---|---|
i | 切换到输入模式,以输入字符 |
x | 删除当前光标所在处的字符 |
: | 切换到底线命令模式,以在最底一行输入命令 |
若想要编辑文本:启动vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
命令 | 功能描述 |
---|---|
字符按键以及Shift组合 | 输入字符 |
ENTER | 回车键,换行 |
BACK SPACE | 退格键,删除光标前一个字符 |
DEL | 删除键,删除光标后一个字符 |
方向键 | 在文本中移动光标 |
HOME/END | 移动光标到行首/行尾 |
Page Up/Page Down | 上/下翻页 |
Insert | 切换光标为输入/替换模式,光标将变成竖线/下划线 |
ESC | 退出输入模式,切换到命令模式 |
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
命令 | 功能描述 |
---|---|
q | 退出程序 |
w | 保存文件 |
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
命令 | 描述 |
---|---|
i | 在当前位置之前插入 |
a | 在当前位置之后插入 |
o | 在当前行下插入 |
命令 | 描述 |
---|---|
x | 删除一个字符 |
dw | 删除当前词 |
3dw | 删除三个词 |
dd | 删除当前行 |
5dd | 删除五行 |
命令 | 描述 |
---|---|
r | 替换一个字符 |
cw | 替换一个单词 |
cc | 替换一行 |
c | 替换从光标至行尾 |
命令 | 描述 |
---|---|
yw | 拷贝词 |
yy | 拷贝行(或Y) |
dd | 剪切行 |
p | 当前行下粘贴 |
u | 撤销 |
ctrl + r | 取消撤销 |
命令 | 描述 |
---|---|
:w | 保存 |
:w newfile | 存成新文件 |
:wq | 存盘退出vim(或ZZ,或:x) |
:q! | 强行退出不存盘 |
:1,2co3 | 拷贝行1,行2在行3之后 |
:4,5mo6 | 移动行4,行5在行6之后 |
:%s /源字符串/目标字符串 | 将源字符串替换成目标字符串 |
:%s /源字符串/目标字符串/g | 将每一行中所有的源字符串替换成目标字符串 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
1.使用vimtutor命令打开vim教程。
vimtutor
2.文件.vimrc可用于对vim做整体配置。
vim ~/.vimrc
3.例如在打开的.vimrc文件中添加显示文件内容的行数的设置。
set nu
1.下载和安装方式。安装方式直接一路点击下一步即可,安装过程选择免费版。
2.使用方式。打开Xshell,通过新建会话来创建一个与CentOS系统的连接会话。
3.网络模式设置。设置网络连接模式为NAT模式。
4.通过VMware的【编辑】-【虚拟网络编辑器】选项,来查看IP、网关、子网掩码等信息。
5.修改配置文件。使用root用户打开/etc/sysconfig/network-scripts/ifcfg-eno16777736文件(文件名不一定是这个),添加内容如下:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.230.128
GATEWAY=192.168.230.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
6.配置文件生效。使用命令使得配置文件生效:
service network restart
注意:
1.如果使用的是MAC电脑切安装的是VMware Fusion软件。 则配置CentOS静态IP的方式参考以下教程。
https://www.freesion.com/article/115136588/
https://www.javatang.com/archives/2021/11/17/00143397.html
2.使用Mac的终端Terminal直接连接Linux系统的命令是:ssh -p 22 [email protected]
1.下载JDK 11版本。下载地址:https://www.oracle.com/java/technologies/javase-downloads.html。
2.将下载好的JDK安装包传输到CentOS系统中。
# 1.将JDK上传至CentOS系统:/usr/
# 1.1 Xftp(Windows)
# 1.2 通过命令方式(MAC、Window)
scp /文件当当前位置.../...jdk.tat.gz root@ip:/上传的位置
scp /文件当当前位置.../...jdk.tat.gz root@ip:/usr
3.使用tar命令将JDK解压文件到指定目录。
# 解压文件到指定的目录下
tar -zxvf 要解压的文件 -C 目标目录
tar -zxvf /usr//...jdk.tat.gz -C /usr/
4.配置JDK环境变量。使用root用户编辑/etc/profile配置文件,向profile文件末尾追加内容如下:
# 目录/etx/profile
export JAVA_HOME=/usr/jdk-11.0.15.1
export PATH=$JAVA_HOME/bin:$PATH
5.保存退出后让profile文件生效。
source /etc/profile
6.测试JDK是否安装成功。
java -version
1.下载和安装方式。
下载地址:https://tomcat.apache.org/download-80.cgi。
安装方式:将下载好的Tomcat安装包通过Xftp工具传输到CentOS系统中,使用tar命令解压即可。
# 1.Windows系统使用Xftp工具或者lrzsz工具将Tomcat安装包上传至CentOS系统
# 2.Mac系统使用scp命令将Tomcat安装包上传至CentOS系统
scp /Users/yuanxin/Downloads/apache-tomcat-8.5.55.tar.gz [email protected]:/home/user
2.将Tomcat解压文件到指定的/usr目录下。
# 解压文件到指定目录
tar -zxvf apache-tomcat-8.5.55.tar.gz -C /usr/
3.启动和关闭方式(目录apache-tomcat-8.5.55/bin)。
./startup.sh
./shutdown.sh
4.开放防火墙端口。
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
5.配置环境变量。使用root用户打开配置文件/etc/profile,向文件末尾追加内容(如果考虑集群则暂时不用配置)。$表示访问的是一个系统中定义的变量。
export TOMCAT_HOME=/usr/tomcat
export PATH = $TOMCAT_HOME/bin:$PATH
6.保存退出后让文件生效并验证是否配置成功。
source /etc/profile
./startup.sh
5.发布Web项目。将Web项目打成war包,通过Xftp工具将war包放在tomcat/webapp目录并启动。
在/usr目录下创建mysql目录,将来用于存放mysql的安装文件。
mkdir /usr/mysql
cd /usr/mysql
Window系统推荐shying在线安装MySQL数据的方式。
1.通过wget指令下载mysql的rpm文件。
[root@user mysql]# pwd
/usr/mysql
[root@user mysql]# ls
aegis bin etc games include lib lib64 libexec sbin share src mysql
[root@theo mysql]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.rpm安装mysql。
[root@user mysql]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm
3.通过yum安装mysql服务。
[root@user mysql]# yum -y install mysql-community-server
1.在windows下载mysql以下两个安装文件。
MySQL-server-5.6.45-1.el7.x86_64.rpm
MySQL-client-5.6.45-1.el7.x86_64.rpm
2.将安装包上传到Linux的/usr/mysql目录下(通过xftp工具上传)。
3.清除CentOS自带的mariaDB包。
[root@theo local]# rpm -qa | grep mariadb
[root@theo local]# rpm -e --nodeps mariadb-libs-...
4.安装mysql的服务和客户端。
[root@theo local]#rpm -ivh MySQL-server-5.6.45-1.el7.x86_64.rpm
[root@theo local]#rpm -ivh MySQL-client-5.6.45-1.el7.x86_64.rpm
1.查看MySQL安装的内容。
rpm -qa | grep -i mysql
2.启动MySQL服务。
[root@user mysql]# systemctl start mysqld
[root@user mysql]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 8430 mysql 17u IPv6 70095 0t0 TCP *:mysql (LISTEN)
或者使用:service mysqld start命令。
3.查看MySQL服务状态。
systemctl status mysqld
4.停止MySQL服务。
[root@theo local]# systemctl stop mysqld
或者使用:service mysqld stop命令。
1.查看自动生成的密码。
# 查找初始密码
# 方式1
[root@localhost usr]# cat /var/log/mysqld.log | grep password
2022-10-30T23:11:22.824013Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mR)0doptahHD
# 方式2
[root@localhost usr]# cat /var/log/mysqld.log | grep root
2022-10-30T23:11:22.824013Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mR)0doptahHD
2.用这个密码登陆mysql (可以直接复制登陆)。
# 2.登录到mysql
[root@theo log]# mysql -u root -p
Enter password:
3.设置密码的检查机制为LOW。
# 设置密码的检查机制为LOW
set global validate_password_policy=LOW
4.重置新密码。
# 方式1
set password=password('123456');
# 方式2
alter user 'root'@'localhost' identified by '123456';
5.授权远程登录。将root账号的连接host设置为全部,否则只能本地连接。
# 方式1
GRANT ALL PRIVILEGES on *.* to 'root'@'%' IDENTIFIED by '123456' WITH GRANT OPTION;
flush PRIVILEGES; # 刷新权限
# 方式2
use mysql;
update user set host = "%" where user='root';
flush PRIVILEGES;
6.开通3306端口,否则无法连接到虚拟机的mysql服务。
firewall-cmd --add-port=3306/tcp --permanent
# 开启后重新加载
firewall-cmd --reload
7.使用Navicat数据库管理工具进行连接测试。
Mac的M1芯片为例介绍安装方式。
参考教程:
如果先前安装过MySQL,需先把MySQL卸载干净。相关命令:
rpm -qa |grep -i mysql; // 查看mysql安装了哪些东西
yum remove 要删除的东西; // 开始卸载
find / -name mysql; // 查找mysql相关目录
rm -rf mysql相关目录; // 删除相关目录
rm -rf /etc/my.cnf; // 删除/etc/my.cnf
rm -rf /var/log/mysqld.log;// 删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)
1.使用SQLyog工具
启动图形化界面工具SQLyog连接虚拟机中MySQL数据库,如下图:
2.解决方案
使用root权限登录数据库后选择mysql库。
mysql -u root -p
use mysql;
查看mysql库中的user表的host值后修改为通配符%。
select host from user where user='root';
update user set host='%' where user='root';
flush privileges;
查看修改结果并重新测试。
select user,host from user;