linux mysql 查看默认端口号和修改端口号

1. 登录mysql 

[root@test /]# mysql -u root -p 
Enter password: 


2. 使用命令show global variables like 'port';查看端口号 

mysql> show global variables like 'port'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| port | 3306 | 
+---------------+-------+ 
1 row in set (0.00 sec) 

简单查下3306是否被监听

netstat -an | grep 3306

阿里云、腾讯云MySQL远程连接不上问题_端口号

3. 修改端口(非必须,默认3306就行),编辑/etc/my.cnf文件,早期版本有可能是my.conf文件名,增加端口参数,并且设定端口,注意该端口未被使用,保存退出。 

[root@test etc]# vi my.cnf 
[mysqld] 
port=3506 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

"my.cnf" 11L, 261C written 
[root@test etc]# 

4. 重新启动mysql 

[root@test ~]# /etc/init.d/mysqld restart 
Stopping mysqld: [ OK ] 
Starting mysqld: [ OK ] 

5.再次登录后检查端口已修改为’3506’. 

[root@test etc]# mysql -u root -p 
Enter password: 

mysql> show global variables like 'port'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| port | 3506 | 
+---------------+-------+ 
1 row in set (0.00 sec) 

mysql> 

总结:注意修改的端口不要被占用,而且要有规划,不要轻意的总是调整数据库端口。还有就是安全保障,记得与负责网络的人提前通知,以免端口无法正常使用。

解决阿里云MySQL远程连接不上的问题:

step1:
登录mysql终端后:
use mysql;
select Host,User from mysql.user;


1、修改user表:
update user set host = '%' where user = 'root';
2、授权主机访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
格式:grant all privileges on *.* to '用户'@'ip' identified by '密码' with grant option; (这里的密码不是修改密码而是表示对这个用户名对应的这个密码的用户赋予权限)

3、刷新权限:
FLUSH PRIVILEGES;
4、退出mysql终端:
EXIT;

查看修改后的内容

 远程登录的用户名host是%就ok

阿里云、腾讯云MySQL远程连接不上问题_端口号_02

查看用户的权限

阿里云、腾讯云MySQL远程连接不上问题_ide_03

 

 用户具体权限

select * from mysql.user where user='root'\G;

阿里云、腾讯云MySQL远程连接不上问题_腾讯云_04

 

step2:查看端口监听状态,

netstat -an|grep 3306

阿里云、腾讯云MySQL远程连接不上问题_端口号

如果显示不是如上图所示,则需要修改配置文件。找到my.cnf,一般在/etc/mysql/下面,具体情况根据实际而定。注释掉其中的bind-address属性。如下

 阿里云、腾讯云MySQL远程连接不上问题_mysql_06

再次netstat -an|grep 3306,如下级OK:

阿里云、腾讯云MySQL远程连接不上问题_ide_07

step3:开启阿里云安全组端口策略(腾讯云安全组类似,此处略过)
进入控制台,网络和安全->安全组->配置规则,将MySQL监听端口开放即可,如下:

阿里云、腾讯云MySQL远程连接不上问题_阿里云_08

再次测试,OK!

 阿里云、腾讯云MySQL远程连接不上问题_ide_09

step4:查看防火墙 

#配置防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=9501/tcp --permanent

#批量开放或限制端口
firewall-cmd --zone=public --add-port=100-500/tcp --permanent 开放100~500端口


firewall-cmd --reload #或者 systemctl restart firewalld.service 重新载入一下防火墙设置,使设置生效(更改之后必须进行此操作才能生效)

firewall-cmd --query-port=3306/tcp # 检查是否ok 提示yes则通过了防火墙
firewall-cmd --zone=public --list-ports #可查看当前系统打开的所有端口

#关掉指定端口访问
firewall-cmd --zone=public --remove-port=22/tcp --permanent

​firewall-cmd 常用命令​

 

如果还是连接不上,一定要去阿里云服务器实例页面上去重启实例,否则真的连接不上

 

 

额外:

创建用户

create user 'usrabc'@'%' identified by 'usrabc';

更改密码:

mysql> set password for zx_root =password('xxxxxx');

mysql> update mysql.user set password=password('xxxx') where user='otheruser';