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
-
新建一个数据库,把信息对应填好即可。