mysql查看默认端口及修改(默认端口是3306)
# 先登录mysql
mysql -u root -p
# 查看端口
show global variables like 'port';
# 结果如下
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)
修改服务端口,mysql配置文件,配置文件是/etc/mysql/mysql.conf.d中的mysqld.cnf。早期版本的配置文件可能不是这个,而是my.cnf。可以看下mysqld.cnf中的注释:
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
修改port一行即可
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
修改允许用户登录所使用的IP
MySQL中创建user时用到'user'@'host',这里的host,也即mysql库user表中的host列,指定了允许用户登录所使用的IP。比如user=root Host=localhost,这里的意思就是说root用户只能通过本地去访问。如果要远程登录就必须要修改host或者重新创建一个user指定可以远程登录。%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
# 创建一个可以远程登录的user
create user 'username'@'%' identified by 'password';
# 更新指定user的host
use mysql;
update user set host='%' where user='root';
# 查看
select host,user from user;
这一点比较重要,我原本以为是服务器的防火墙设置的问题,但防火墙都是关的而且厂商的防火墙3306端口也是打开的,我很困惑- -。直到搜索到解决办法,才知道是端口绑定的是本地IP,需要解绑。
# 查看3306端口状态
netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
# 3306 端口绑定的 IP 地址是本地的 127.0.0.1 , 需要解绑
修改配置文件,/etc/mysql/mysql.conf.d中的mysqld.cnf。找到bind-address那一行注释掉。
# bind-address = 127.0.0.1
/etc/init.d/mysql restart
# 查看下端口 解绑了
netstat -an | grep 3306
tcp6 0 0 :::3306 :::* LISTEN
新建一个数据库,把信息对应填好即可。