linux经常会查询端口是否被占用,被哪些程序占用。
这里使用 netstat 命令查看centos系统的端口占用情况。
(1)查看全部端口占用情况
执行命令:
结果如下:
可以看到:
3306端口 :被 tcp 协议的 PID 为10818的mysqld所占用,State为LISTEN表示正在 被监听 。
1596端口 :被 udp 协议的 PID 为1596的chronyd所占用,State为空(state为当前连接状态,udp协议无连接状态)。
(2)查询指定端口的占用情况
如查询 3306 端口的占用情况,可看到如下记录为
(3)查询占用端口的程序
可通过上述查询结果的PID查询占用程序的详细情况:
如查询占用3306端口的程序PID为 10818 ,查看程序详情如下:
常用参数说明如下:
-t :显示TCP协议端口
-u :显示UDP协议端口
-l :--listening,只显示正在侦听的套接字(这是默认的选项)
-p : --program,显示套接字所属进程的PID和名称。
-n :--numeric,显示数字形式地址而不是去解析主机、端口或用户名。
查看所有命令详细用法:
State:套接字的状态。因为在RAW协议中没有状态,而且UDP也不用状态信息,所以此行留空。通常它为以下几个值之一:
ESTABLISHED:套接字有一个有效连接。
SYN_SENT:套接字尝试建立一个连接。
SYN_RECV:从网络上收到一个连接请求。
FIN_WAIT1:套接字已关闭,连接正在断开。
FIN_WAIT2:连接已关闭,套接字等待远程方中止。
TIME_WAIT:在关闭之后,套接字等待处理仍然在网络中的分组
CLOSED:套接字未用。
CLOSE_WAIT:远程方已关闭,等待套接字关闭。
LAST_ACK:远程方中止,套接字已关闭。等待确认。
LISTEN :套接字监听进来的连接。如果不设置 --listening (-l) 或者 --all (-a) 选项,将不显示出来这些连接。
CLOSING:套接字都已关闭,而还未把所有数据发出。
UNKNOWN:套接字状态未知。
首先要确保服务器上安装有MySQL,执行如下命令来检查是否安装了 MySQL(CentOS 7 上是 mariadb-server,CentOS 6 上是 mysql-server,这里以 CentOS 7 为例)
$ rpm -q mariadb-server
如果提示 package mariadb-server is not installed 则说明没有安装 MySQL,需要手动安装。如果出现 mariadb-server-xxx.xxx.xx.el7.x86_64 则说明已经安装。
安装 MySQL 的步骤为:
1.安装 MySQL 和 MySQL 客户端
$ sudo yum -y install mariadb mariadb-server
2.启动 MySQL
$ sudo systemctl start mariadb
3.设置开机启动
$ sudo systemctl enable mariadb
4.设置初始密码
$ sudo mysqladmin -u root password root
这时我们有两种方式来进行修改,这里只用了第一种,就直接将原来的 user='root' and host='localhost' 记录的host修改成%或指定的ip。
1.将host设置为%表示任何ip都能连接mysql
update user set host='%' where user='root' and host='localhost'
2.当然也可以将host指定为某个ip
update user set host='*.*.*.*' where user='root' and host='localhost'
这里将 . . . 换你实际的地址。
3.执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效
flush privileges
1.检查服务器防火墙3306端口开放了吗,没开放需要去开放
2.检查一下云平台的安全组规则中是否开放了3306端口,如何配置阿里云,这里以阿里云为例( 阿里云添加安全组规则 )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)