【Linux操作】国产Linux服务管理操作
【Linux操作】国产Linux服务管理操作
- 前言
- SAMBA配置
- 服务器端
- 1. 安装相关包
- 2. 配置/etc/samba/smb.conf,在此文件末尾添加如下内容,并保存退出。
- 3. 创建/home/share并更改权限
- 4. 启动samba服务
- 客户端
- • Windows客户端
- • 麒麟客户端
- Telnet
- 1、telnet语法
- 2服务端
- 1. 安装相关软件
- 2. 配置xinetd,修改/etc/xinetd.conf,添加如下内容
- 3. 配置telnet,
- 4. 重启xinetd服务
- 3客户端
- 1. 安装telnet包
- 2. 访问服务端
- VNC
- 1 VNC协议
- 2 显示协议
- 3 输入协议
- 4 VNC工作流程
- 5 VNC命令
- 6 VNC实例
- Mysql
- 1 Mysql服务器端
- 1. 服务器端安装及启停
- 2. 服务器端配置
- 2 mysql客户端
- 1. 客户端安装
- 2. 客户端使用
前言
了解LInux系统samba、telnet、vnc、mysql服务及配置;samba服务配置及实例;telnet服务配置及实例;VNC服务配置及实例;mysql服务配置及实例;
SAMBA配置
Samba是基于SMB/CIFS网络协议的重新实现的一个免费软件,包括服务端和客户端。SMB是Server Messages Block的缩写,是一种在局域网上共享文件和打印机的一种通信协议,为局域网内的不同计算机之间提供文件和打印机等资源的共享服务。
服务器端
服务端安装相关包并做相应配置。此处假设服务器端的ip为192.168.103.51
。
1. 安装相关包
sudo apt-get install samba
2. 配置/etc/samba/smb.conf,在此文件末尾添加如下内容,并保存退出。
[share]
comment=this is kylin share directory
path=/home/share
create mask=0777
directory mask=0777
public=yes
writable=yes
available=yes
只有在设置writable=yes时,create mask和directory mask的设置才会生效。
smb.conf文件中配置基本格式为key=value,接下来介绍一下smb.conf文件中常用的参数:
表 1 smb.conf常用选项
参数 | 说明 |
---|---|
force user=username | 强制将登录samba后的用户设置为username,若不指定则登录用户为nobody |
create mask | 创建文件的权限,未指定此参数时,新创文件权限默认为0744,若设置权限,create mask中组或其他用户如果有x权限,则默认会将x权限去掉。如create mask=0655,实际创建文件则为0644 |
force create mode | 此参数默认为0000,若设置了此参数,则是将create mask获取的权限再与force create mode权限做或运算,如以上create mask=0655,force create mode=0711,则实际权限为0755 |
directory mask | 此参数默认为0755,若设置了参数则按此参数的权限创建文件夹,如设置为0777,则创建的目录权限为0777 |
forece directory mode | 此参数默认为0000,与directory mask的权限做合并操作,如directory mask=0664,force directory mode=0755,那么创建的目录权限为0775 |
smb.conf文件中[share]中括号中的字符串可以自定义,这个标签即为后续客户端访问时需要带上的路径,如此处使用的是[share],则客户端访问为smb://192.168.103.51/share,若为[public]则客户端访问smb://192.168.103.51/public,以此类推。
3. 创建/home/share并更改权限
sudo mkdir /home/share
sudo chmod 777 /home/share
4. 启动samba服务
sudo /etc/init.d/samba start
客户端
麒麟操作系统上配置了samba服务后,可在windows或麒麟系统上访问此共享文件。
• Windows客户端
打开文件浏览器,在地址栏处输入\ip\share,此处ip为samba服务器的ip,即192.168.103.51,回车即可访问麒麟系统共享的文件夹/home/share。
• 麒麟客户端
使用文件浏览器连接到samba服务器之前我们需要先安装samba客户端软件。
安装smbclient包
sudo apt-get install smbclient
图形化连接到samba服务器端:打开文件浏览器,在地址栏输入smb://192.168.103.51/share,回车,见图 1。需要在弹框处输入用户名和密码。 图形化访问不需要安装smbclient安装包,这里顺序要不要调整一下。
图 1 samba客户端访问麒麟samba服务器端
除了图形化连接smba服务器来实现文件共享之外,我们还可以通过smbclient在终端下进行共享文件的操作。
smbclient语法格式:smbclient service ,常用选项见表 1。
表 1 smbclient常用选项
参数 | 说明 |
---|---|
-?或–help | 提供关于帮助的打印信息 |
-U username | 指定以username用户登录到smb服务器端 |
-L | 打印远程主机可用的共享文件夹列表 |
-W/–workgroup=WORKGROUP | 设置工作域的名称 |
命令行连接samba服务器的命令见下,-U为指定用户,此处为kylin。
smbclient //192.168.103.51/share -U kylin
详细连接信息见图 2。
图 2 smbclient命令行连接
进入smb命令行后,我们就可以在共享文件夹中进行上传下载等操作。常用命令如下。
表 2 smb命令行
参数 | 说明 |
---|---|
cd [目录] | 切换smb服务器端的目录到指定目录,如未指定,则smbclient返回当前服务器端的目录 |
lcd [目录] | 切换客户端到指定的目录。客户端在哪个目录下登录服务器端,登录后仍在此路径下,切换的路径为相对路径时,需以此为对照。 |
ls | 列出服务器端当前目录下的所有文件 |
get file file1 | 从服务器上下载file,并重命名为file1存放在客户端,若无file1则以当前名称下载到客户端 |
mget file file1 file2 | 下载多个文件,每个文件下载前会提示是否下载,输入y表示下载,输入n或直接回车为不下载 |
mkdir 目录md 目录 | 在服务器上创建目录,如未成功,可检查服务器端对应目录的权限 |
put file1 [file2] | 向服务器上传文件file1,如有file2,则是将file1更名为file2到服务器上 |
mput file file1 file3 | 向服务器上批量上传文件,上传每个文件时会提示是否上传,输入y表示上传,直接回车或输入n为不上传 |
下载和批量上传操作见图 3。
图 3 下载和批量上传
Telnet
Telnet是用来在互联网或局域网使用虚拟终端来完成远程连接的一种协议,它是TCP/IP协议族中的一员。Telnet协议目的是提供一个相对通用的双向的,面向八位字节的通信方法。应用telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。
我们知道通过telnet协议可在多个操作系统间进行远程交互操作,而不同操作系统间的数据表示及命令又不尽相同。为了解决这些数据和命令被远程机器正确接收和理解,telnet协议定义了数据和命令在internet上的传输方式,我们把这种传输方式称为网络虚拟终端NVT(Net Virtual Terminal)。
用户用telnet传送数据时,将本地数据转换成NVT格式,远程机器接收后再转换成远程机器上对应的格式进行存储。
而用户用telnet传送命令时,将普通字符按照NVT格式按照其原始含义传送,而用户键入的为快捷键时,NVT则将它转化成特殊的ASCII字符传送到远程机器,最后再转化为相应的控制命令。
1、telnet语法
telnet的语法格式为:telnet [-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]
[-n tracefile] [ -b addr ] [-r] [host-name [port]]
参数说明见表 3。
表 3 telnet参数说明
参数 | 说明 |
---|---|
-4 | 强制使用IPv4地址解析 |
-6 | 强制使用IPv6地址解析 |
-8 | 允许使用8位字符操作,包括输入与输出,默认情况下非8位字符 |
-E | 禁用转义字符功能,也就是说将转义字符设置为“no character” |
-a | 尝试自动登录远端系统 |
-b address | 在本地套接字上使用bind(2)将其绑定到指定的本地地址address上 |
-d | 将调试切换的初始值设置为true |
-r | 模拟rlogin |
-S tos | 设置IP服务类型(TOS)选项设置为值tos |
-e escapechar | 指定转义字符为escapechar。telnet连接后输入转义字符会进入telnet命令模式 |
-l user | 指定user为远程登录时的用户 |
-n tracefile | 指定tracefile记录相关跟踪信息 |
host | 指定此主机来进行远程连接 |
port | 指定连接的端口号 |
2服务端
要使其他系统使用telnet连接到本机,必须做一些客户端配置。
1. 安装相关软件
sudo apt-get install telnetd xinetd
2. 配置xinetd,修改/etc/xinetd.conf,添加如下内容
instances = 60 //同一服务同时连接数最多为60log_type = SYSLOG authpriv //登录信息会被记录到相关文件/var/log/auth.loglog_on_success = HOST PID //登录成功记录客户端主机名和PIDlog_on_failure = HOST //登录失败记录客户端主机名cps = 25 3 //设置同一秒最大连接数为25,如果超过该服务暂时停止3秒
如图 4。
图 4 xinetd.conf配置
3. 配置telnet,
创建/etc/xinetd.d/telnet文件,文件内容见下:
service telnet{disable = no //必须设置为no,否则无法连接instances =UNLIMITED //实例不限制nice =0flags = REUSEsocket_type = stream //使用TCP的封包格式wait = noserver = /usr/sbin/in.telnetd //使用这个命令log_on_failure += USERID //如果登录失败,记录客户端信息}
4. 重启xinetd服务
sudo /etc/init.d/xinetd restart
3客户端
客户端要访问telnet服务端需要安装telnet包后再访问。
1. 安装telnet包
sudo apt-get install telnet
2. 访问服务端
telnet 192.168.103.51
连接示例见图 5。
图 5 telnet连接示例
使用参数-e,指定转移符为%,输入用户名密码后,命令行输入符号%即会进入telnet命令模式:
kylin@kylin-PC:~/桌面$ telnet -e % 192.168.103.51
Telnet escape character is '%'.
Trying 192.168.103.51...
Connected to 192.168.103.51.
Escape character is '%'.
Kylin 4.0.2
Kylin login: kylin
Password:
......
kylin@Kylin:~$ <——此行输入%回车后即进入telnet命令模式
telnet> <——telnet命令模式,上行符号%会被擦除
【注】root无法以telnet登录系统,这是由于telnet会引用login的PAM模块,而login的验证阶段会有/etc/securetty文件的限制。root用户只能通过安全终端登录,而远程连接属于pts/n(n为数字)的动态终端接口设备名称,此设备名并未写入到/etc/securetty中,所以root是无法通过telnet远程登录系统的。
VNC
VNC即为虚拟网络控制台,英文全称为Virtual Network Computing,是一款远程控制软件。它能将完整的窗口界面通过网络,传输到另一台计算机屏幕上。VNC软件由VNC server和VNC viewer两部分组成。
1 VNC协议
VNC是基于RFB(Remote Frame Buffer)协议进行通信的。RFB称为远程帧缓冲,是一个远程访问图形用户接口的简单协议。由于此协议工作在帧缓存级别,因此它适用于所有桌面系统和应用,包括X11、windows以及Macintosh。
用户所在的一端成为RFB客户端,而帧缓存变化的一端被称为RFB服务端。
RFB完全是一个瘦客户协议。协议设计的重点就是减少对客户端的要求。因此客户端可以运行在多种硬件上,实现客户端的任务尽可能的简单。
RFB协议使得客户端是“无状态”的。如果一个客户端和服务器端断开连接,之后再次连接到此服务器,用户的会话不会被关闭,状态会一直保持。不同的客户端可以连接到同一服务器,提供给用户端的都是统一的相似的视图。
2 显示协议
RFB协议的显示部分基于一个简单的画图原理,即“将一个矩形块的像素点放在给定位置(X,Y)上”。在不同的参数下(如网络带宽、客户端计算速度和服务器处理的速度等等),可以动态选择灵活的编码方式,这样一来,一系列的矩形块就组成了一个帧缓冲更新。一个帧缓冲更新描述了帧缓冲从一个状态到另一状态的变化情况。只有在客户端请求更新时,服务器端才会向客户端发送更新。客户端以及网络速度越慢,更新率就会降低。
3 输入协议
输入协议是基于键盘和多键鼠标设备的标准工作站模型。当用户敲下键盘或鼠标,或移动鼠标时,客户端把这些输入事件按照RFB规定的格式简单的传送给服务器。输入事件可以由其他非标准I/O设备产生,如手写板。接收到输入事件后,服务器就会进行相应处理。
4 VNC工作流程
前面我们已经知道,VNC分为服务器端和客户端。在VNC server安装在被远程控制的计算机后,可在客户端通过VNC viewer进行远程操控。
VNC服务端与客户端的工作流程见图 6。
图 6 VNC工作流程
由上图可知,VNC工作流程详细步骤见下:
- 服务器端启动VNC server;
- VNC客户端启动VNC viewer连接到VNC server;
- VNC server将对话窗口发送至客户端,要求客户端输入连接密码;
- VNC viewer输入VNC server的连接密码后,将密码发送至VNC server;
- VNC server端通过密码验证后,则通过X Protocol将X server画面的显示控制权交由VNC server;
- VNC server将X server桌面环境利用VNC通信协议发送至客户端
- VNC客户端获取VNC server端的桌面环境、输入控制及显示控制权;
5 VNC命令
本章主要介绍vncserver、vncviewer及vncpasswd命令。
• vncserver命令
此命令在VNC服务器上运行。用来启动或停止VNC服务器。
vncserver启动语法格式:
vncserver [:display#] [-name desktop-name] [-geometry widthxheight] [-depth depth ] [-pixelformat format] [Xvnc-options.....]
vncserver停止语法格式:
vncserver -kill :display#
vncserver运行时可以不添加参数,这种情况下就会默认选择第一个可用的显示编号,通常情况下为:1。当然也可以使用指定的显示编号,这种情况下如果此编号有效则会使用此显示编号,如果不存在,则会退出,如vncserver :10。
Vncserver的默认端口为5900,每个显示桌面的编号其实对应的就是端口号,比如显示编号为:1,那么对应的端口号即为5901,以此类推。
vncserver的配置文件为~/.vnc/xstartup,修改此配置文件可以改变vncserver的属性。需要强调一点,修改此文件不会影响之前已经存在的vncserver桌面。此外vnc密码文件以及启动的所有显示桌面相关日志及.pid文件都在~/.vnc/下,“KaTeX parse error: Expected 'EOF', got '#' at position 23: …nc/host:display#̲.pid”和“HOME/.vnc/host:display#.log”分别是启动的显示桌面对应的pid文件和日志文件,如kylin:1.pid及kylin:1.log。“$HOME/.vnc/passwd”即为vnc密码文件。
vncserver常用选项见表 4。
表 4 vncserver常用选项
参数 | 说明 |
---|---|
-name desktop-name | 每个显示桌面都有一个名字。默认情况下为“host:display#(username)”,如kylin-PC:1 (kylin) |
-geometry widthxheight | 指定桌面的大小,默认为1024x768,可以通过此选项设置窗口大小,如vncserver -geometry 1360x768 |
-depth depth | 指定像素显示桌面的像素深度,默认情况下为16。还可以设置其他值,比如8,15和24。 |
-pixelformat rgbNNN | bgrNNN |
-kill :display# | 指定要停止display#这个编号的vnc桌面。如vncserver -kill :1,即停止编号为1的vnc显示桌面。 |
vncserver端需修改配置才能正常显示,修改~/.vnc/xstartup,在文末加上以下内容:
mate-session &
修改保存后再启动vncserver服务。
• Vncviewer命令
Vncviewer是VNC的X视图的一个客户端。用来连接到远程服务器并显示其桌面。使用vncviewer需要提前获取到vncserver的密码。
Vncviewer的命令格式:
vncviewer [options] [host][:display]
vncviewer [options] [host][::port]
vncviewer [options] -listen [display]
vncviewer -help
Vncviewer常用选项见表 5。
表 5 vncviewer常用选项
参数 | 说明 |
---|---|
-help | 在终端打印使用方法 |
-listen [display#] | 表示监听来自服务器的反向连接,默认监听5500端口,也可使用端口参数,如vncviewer -listen 3则表示监听5503端。WinVNC使用“添加新客户端”菜单选项支持反向连接 |
-viewonly | 禁用客户端鼠标和键盘事件传送到服务器的功能,默认关闭 |
-passwd passwd-file | 指定连接时的密码文件为passwd-file,也就是说如果将服务器端密码发送到客户端,使用此选项时,就可以不必输入密码,正确的密码文件则会直接连接,而错误密码文件则认证失败断开连接 |
-encodings encoding-list | TightVNC支持几种不同的压缩方法来编码显示桌面的屏幕更新,此选项可以指定优先使用一组方法,如果有多个编码方法,可以使用空格分隔,且这一组编码方法必须使用引号括起来。默认可用的编码为“copyrect tight hextile zlib corre rre raw” |
-bgr233 | 一直使用BGR233格式来编码像素数据 |
-fullscreen | 开启全屏显示模式。这个模式下有可能会造成输入焦点的错误处理或使窗口突然消失。解决输入焦点问题,可以参照grabKeyboard设置。默认关闭 |
-depth depth | 服务器上支持多个像素深度,指定客户端显示桌面的像素深度为depth值 |
• vncpasswd命令
vncpasswd是用来修改VNC密码的命令。对应的密码文件则为$HOME/.vnc/passwd。Vncserver第一次运行来启动VNC桌面的时候则会调用vncpasswd来设置VNC密码。指定的密码至少6个字符,最长为8个字符。需要注意的是存储的密码并未经过安全加密,也就是说任何有权限访问此文件的用户都可以轻易找到明文密码,所以vncpasswd需要设置适当的权限。
vncpasswd语法格式:
`vncpasswd [passwd-file]`
运行vncpasswd时,不加参数passwd-file,则会默认修改 H O M E / . v n c / p a s s w d 文件,而指定 p a s s w d − f i l e 则会更新此文件下的密码。当然如果在 v n c v i e w e r 连接时默认还是去匹配 HOME/.vnc/passwd文件,而指定passwd-file则会更新此文件下的密码。当然如果在vncviewer连接时默认还是去匹配 HOME/.vnc/passwd文件,而指定passwd−file则会更新此文件下的密码。当然如果在vncviewer连接时默认还是去匹配HOME/.vnc/passwd的密码,要使用指定的密码文件需要使用-passwd参数。
6 VNC实例
• Vnc服务端
Vnc服务端有多种相关包如tightvncserver、vnc4server。本章我们以tightvncserver为例。
安装相关包:
sudo apt-get install tightvncserver
启动vncserver:
vncserver
第一次执行见图 7。
图 7 启动vncserver
也可指定显示编号来启动vncserver:
vncserver :8
详细信息见图 8。
图 8 指定显示编号启动vncserver
如果需要关闭:8的显示桌面,则执行以下命令:
vncserver -kill :8
执行过程及显示信息见图 9。
图 9 停止:8显示桌面
• VNC客户端
这里我们也安装xtightvncviewer。
sudo apt-get install xtightvncviewer
连接vnc服务器端编号为:1的显示桌面:
vncviewer 192.168.103.50:1
详细信息见图 10。
图 10 vncviewer连接服务器端
在密码出输入密码即可连接到vnc服务器端的桌面。
Mysql
MySQL是目前最流行的关系型数据库管理系统(关系型数据库管理系统是Relational Database Management System,简写RDBMS),由Oracle公司开发、分发和支持。关系型数据库将数据存储在单独的表中,而不是将所有的数据放在一个大型库中。你可以设置管理不同数据域之间关系的规则,比如一对一,一对多,唯一,必须或可选,以及不同表之间的指针。数据库强制执行这些规则,因此使用设计良好的数据库,用户的应用程序则永远不会出现不一致,重复,孤立,过时或丢失数据的情况。
麒麟系统当前默认集成的版本为5.7。而最新版本的MySQL相关信息可以到http://www.mysql.com/获取。
关系性数据库管理系统RDBMS的特点:
- 数据以表格的形式出现;
- 每行为各种记录名称;
- 每列为记录名称所对应的数据域;
- 许多的行和列组成一个表单;
- 若干表单组成database;
1 Mysql服务器端
MySQL包含服务端和客户端。
1. 服务器端安装及启停
服务器端需要安装mysql-server,麒麟服务器操作系统默认已经安装,但此处我们还是介绍一下如何安装:
sudo apt-get install mysql-server
安装过程中需要输入mysql的“root”密码。
启动、停止及查看mysql服务
sudo service mysql status //查看mysql服务状态
sudo service mysql start //启动mysql服务
sudo service mysql stop //停止/etc/mysql/mysql.conf.dmysql服务
2. 服务器端配置
Mysql-server的配置文件为/etc/mysql/mysql.cnf、/etc/mysql/conf.d/目录及/etc/mysql/mysql.conf.d/下相关文件。在日常工作中,我们经常遇到需要修改数据库配置来解决问题的情况,如数据库中必然会用到中文字符,默认配置下,会出现乱码情况,这个时候我们就需要修改相关配置啦。
/etc/mysql/mysql.cnf除注释外的配置文件见下:
!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/
这两行表示导入/etc/mysql/conf.d/和/etc/mysql/mysql.conf.d/下所有的.cnf文件。
这里重点给大家介绍/etc/mysql/mysql.conf.d/mysqld.cnf。
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
• 最大连接数
麒麟操作系统目前默认集成的为mysql5.7版本,最大的连接数默认为151,如要修改最大连接数可以修改/etc/mysql/mysql.conf.d/mysqld.cnf,将max_connections修改成想要的数值,这里假设为200,保存退出后,需要重启mysql服务。我们来查看一下是否修改成功,见图 11。
图 11 mysql最大连接数
• 忘记密码
在忘记密码情况下,还可以通过设置mysql来跳过密码验证直接登录到mysql。还是修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,添加skip-grant-tables,见图 12。
图 12 忘记密码
修改后保存退出,重启mysql服务。再次连接输入错误密码或不输入密码就能直接进入mysql,见图 13。
图 13 mysql跳过密码验证
• 开放mysql服务端远程连接
Mysql服务端默认情况下仅能本地连接。我们可以通过修改配置文件来开放远程连接。依然是mysqld.cnf文件。用“#”注释以下内容,重启mysql服务即可远程连接。
bind-address = 127.0.0.1
再进入mysql,将root用户授权给所有连接,输入以下命令:
grant all privileges on *.* to 'root'@'%' identified by '123123';
flush privileges;
【注】第一行命令中的root为mysql客户端连接时需要使用的的用户名,123123为root用户的密码,也就是说客户端使用root和对应的密码即可成功连接到此mysql服务器,而使用其他用户仍无法连接到数据库服务器;第二行命令使第一行命令生效。
具体操作见图 14。
图 14 mysql开放远程连接
以上操作都完成后,在mysql客户端执行mysql -h server_ip -uroot -p123123即可连接到数据库。Server_ip为数据库服务端的ip。
2 mysql客户端
1. 客户端安装
客户端需要安装mysql-client,麒麟服务器操作系统默认已经安装,但此处我们还是介绍一下如何安装:
sudo apt-get install mysql-client
2. 客户端使用
连接服务器端使用mysql命令,mysql语法格式为:
mysql [options] db_name
若不指定db_name,则默认不选择任何数据库。
mysql常用选项见表 6。
表 6 mysql常用选项
参数 | 说明 |
---|---|
-h hostname | 指定想要连接的mysql服务器的主机名 |
-u username | 指定连接到mysql服务器的用户名 |
-p [password] | 指定登录用户名对应的密码 |
-P port | 指定端口号,默认端口为3306 |
• 连接本地数据库
连接本地mysql服务端:
mysql -uroot -p
以上是指使用root用户登录到mysql数据库,如未配置跳过密码登录的情况下,回车之后需输入root用户的密码。以上命令与以下命令效果一致:
mysql -u root -p
也可直接指定登录密码,此处假设root密码为123123,如:
mysql -uroot -p123123
• 连接远程数据库
服务器端开放远程登录后,可在其他主机上远程连接到mysql数据库,此处假设数据库服务器ip为192.168.103.51:
mysql -h 192.168.103.51 -uroot -p123123
• mysql备份还原
Mysql备份使用的命令为mysqldump,由mysql-client包提供,语法格式为:
mysqldump [options] [db_name [tbl_name ...]]
mysqldump常用选项见表 7。
表 7 mysqldump常用选项
参数 | 说明 |
---|---|
-h hostname | 指定想要连接的mysql服务器的主机名 |
-u username | 指定连接到mysql服务器的用户名 |
-p [password] | 指定登录用户名对应的密码 |
-P port | 指定端口号,默认端口为3306 |
–all-databases | 指定备份所有数据库 |
-databases db_name | 指定备份db_name数据库 |
更多mysqldump用法,请查看man手册。
本地备份所有数据库:
mysqldump -uroot -p --all-databases >allbackupfile.sql
远程备份数据库:
mysqldump -h192.168.103.51 -uroot -p123123 --all-databases > alldatabase.sql
备份某指定数据库dbtest,此处为备份tbtest和tbtest1两个表:
mysqldump -uroot -p123123 dbtest tbtest tbtest1 >tb-backup.sql
压缩备份的数据库文件:
mysqldump -uroot -p --all-databases | gzip >bakcupall-gz.sql.gz
所有详细操作见图 15。
图 15 备份操作
还原某数据库:
mysql -uroot -p123123 dbtest<dbtestbackup.list
还原所有数据库:
mysql -uroot -p123123 <allbackupfile.sql
还原压缩的数据库,此处是还原所有数据库:
gunzip < bakcupall-gz.sql.gz | mysql -uroot -p
相关文章:

【Linux操作】国产Linux服务管理操作
【Linux操作】国产Linux服务管理操作 前言SAMBA配置服务器端1. 安装相关包2. 配置/etc/samba/smb.conf,在此文件末尾添加如下内容,并保存退出。3. 创建/home/share并更改权限4. 启动samba服务 客户端• Windows客户端• 麒麟客户端 Telnet1、telnet语法2…...

大语言模型系列-word2vec
文章目录 前言一、word2vec的网络结构和流程1.Skip-Gram模型2.CBOW模型 二、word2vec的训练机制1. Hierarchical softmax2. Negative Sampling 总结 前言 在前文大语言模型系列-总述已经提到传统NLP的一般流程: 创建语料库 > 数据预处理 > 分词向量化 > …...

vue项目运行报错this[kHandle] = new _Hash(algorithm, xofLen)
自从昨天分盘重装了最新版本的Node之后,项目是一启一个报错 出现这个报错时,需要在package.json文件中 dev命令行 增加:set NODE_OPTIONS–openssl-legacy-provider 出现该问题的原因: node.js V17开始版本中发布的是OpenSSL3.0,…...

APP兼容性测试,这几个面试硬技能,包教包会
兼容性测试主要通过人工或自动化的方式,在需要覆盖的终端设备上进行功能用例执行,查看软件性能、稳定性等是否正常。 对于需要覆盖的终端设备,大型互联网公司,像 BAT,基本都有自己的测试实验室,拥有大量终…...

【学习iOS高质量开发】——熟悉Objective-C
文章目录 一、Objective-C的起源1.OC和其它面向对象语言2.OC和C语言3.要点 二、在类的头文件中尽量少引用其他头文件1.OC的文件2.向前声明的好处3.如何正确引入头文件4.要点 三、多用字面量语法,少用与之等价的方法1.何为字面量语法2.字面数值3.字面量数组4.字面量字…...

Qt/QML编程之路:Grid、GridLayout、GridView、Repeater(33)
GRID网格用处非常大,不仅在excel中,在GUI中,也是非常重要的一种控件。 Grid 网格是一种以网格形式定位其子项的类型。网格创建一个足够大的单元格网格,以容纳其所有子项,并将这些项从左到右、从上到下放置在单元格中。每个项目都位于其单元格的左上角,位置为(0,0)。…...

mac pro “RESP.app”意外退出 redis desktop manager
文章目录 redis desktop manager下载地址提示程序含有恶意代码“RESP.app”意外退出解决办法:下载python3.10.并安装重新打开RESP如果还是不行,那么需要替换错误路径(我的没用)外传 最近在研究redis的消息,看到了strea…...

VirtualBox 如何让虚拟机和主机互相通信
首先建立一张虚拟网卡 在这里进行网络设置 设置成固定ip,这张网卡专门用来通信,上面的网卡用来上网的...

【Java】源码文件开头添加注释
需求 应公司质量部要求,需要对代码做静态检查。质量部要求,源码文件必须在起始行起设置一些注释,然而项目已经开发了一年之久,且没有维护这个注释。 此时,面对好几千个源码文件,我们如何快速添加相应的注…...
GitHub 异常 - 无法连接22端口 Connection timed out
GitHub 异常 - 无法连接22端口 Connection timed out 问题描述 错误信息: 今天突然用ssh方式 pull GitHub的项目报:ssh: connect to host xx.xx.xx.xx port 22: Connection timed out 表明 SSH 连接在尝试通过 22 端口连接到远程服务器时超时。这可能是由于网络环…...

python基础学习
缩⼩图像(或称为下采样(subsampled)或降采样(downsampled))的主要⽬的有两个:1、使得图像符合显⽰区域的⼤⼩;2、⽣成对应图像的缩略图。 放⼤图像(或称为上采样…...

Python密码本连接wifi
有时候我们会忘记自己的Wi-Fi密码,或者需要连接某个Wi-Fi网络以满足合法需求。本文将介绍如何使用Python编程语言编写一个简单的连接Wi-Fi的程序。 一、密码本准备 在进行wifi猜测时,其实就是列出各种可能的密码,用来尝试去访问目标wifi&…...
Docker 设置 Redis 的密码失效
在网上找了设置Docker里的设置Redis密码,一段时间就失效了 1. 进入redis的容器 docker exec -it 容器ID redis-cli2. config set requirepass 密码 解决方法 1. 创建 redis.conf 配置文件 # Redis configuration file example. # # Note that in order to read the configu…...

1.环境部署
1.虚拟机安装redhat8系统 这个其实很简单,但是有一点小细节需要注意。 因为我的电脑是 16核心的,所以选择内核16,可以最大发挥虚拟机的性能 磁盘选择SATA,便于后期学习 将一些没用的设备移除 选择安装redhat 8 时间选择上海 选择…...

2024年第二届“华数杯”国际大学生数学建模竞赛 (A题 MCM)| 废水扩散分析 |数学建模完整代码+建模过程全解全析
当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看华数杯的A题! 完整内容可以在文章末…...
深度学习基础知识整理
自动编码器 Auto-encoders是一种人工神经网络,用于学习未标记数据的有效编码。它由两个部分组成:编码器和解码器。编码器将输入数据转换为一种更紧凑的表示形式,而解码器则将该表示形式转换回原始数据。这种方法可以用于降维,去噪,特征提取和生成模型。 自编码器的训练过…...
go语言GMP模式介绍以及协程案例展示
一. MPG模式 Go语言的调度模型被称为GMP,这是一个高效且复杂的调度系统,用于在可用的物理线程上调度goroutines(Go的轻量级线程)。GMP模型由三个主要组件构成:Goroutine、M(机器)和P࿰…...

码牛课堂首推——鸿蒙南北双向开发学习路线图标准版~
鸿蒙!鸿蒙!鸿蒙! 要说2023-2024年IT圈最火爆的名词,一定是鸿蒙! 2023年9月25日,华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本,这意味着鸿蒙原生应用开发将彻底摆脱Android手机系…...

(亲测可行)关于提高IDEA运行速度的方案
1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版IDEA,计算机内存为12GB 2.修改配置以提高IDEA运行速度的误区-调高堆内存 很多文章会教调配置的内存,但大多是让你调高堆内存,比如会让你调高-Xms -Xmx ,这两种对应的是最…...

框架基础-Maven+SpringBoot入门
框架基础 Maven基础 Maven概述 Maven是为Java项目提供项目构建和依赖管理的工具 Maven三大功能 - 项目构建构建:是一个将代码从开发阶段到生产阶段的一个过程:清理,编译,测试,打包,安装,部署…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...

leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...