cat /proc/version
lsb_release -a
mysql -V
java -version
言归正传
skip-grant-tables
vi /etc/my.cnf
重启mysql。service mysqld restart
登录mysql。mysql -uroot -p
(此时不需要密码回车即可登录)
进入mysql数据库 use mysql
,见上图。
update mysql.user set authentication_string=password('aAbB&*321') where user='root';
aAbB&*321为要设置的密码,如果显示下图说明成功了。
skip-grant-tables
进入my.cnf文件,删除 skip-grant-tables
,然后重启mysql就可以登陆了
重启:service mysqld restart
或 /usr/sbin/mysqld restart
进入mysql: mysql -uroot -p
输入刚才设置的密码就可以了。
a,进入数据库:mysql -u root -p
b,切换到 mysql库:use mysql;
c,查看用户表,看到当前host是localhost,只允许本地访问。
MySQL [mysql]> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| 127.0.0.1 | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec)
d,更新user用户表:
mysql> update user set `host` = '%' where `user` = 'root' LIMIT 1;
e,强制刷新权限:mysql> flush privileges;
f,再次查看用户表,root用户的host变成%,即允许所有的ip远程访问,如果需要指定具体的ip,就写上具体的ip即可。
MySQL [mysql]> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| 127.0.0.1 | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
4 rows in set (0.00 sec)
查看端口监听状态
[root@VM_0_6_centos ~]# netstat -an|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
这里可以看到 0 0.0.0.0:3306 表示所有IP均可访问。
如果显示为 127.0.0.1:3306 说明只允许本地访问,需要修改配置文件。
[root@VM_0_6_centos ~]# netstat -an|grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
修改my.cnf,注释掉bind-address 127.0.0.1
属性。
重启mysql服务service mysql restart
,再次使用命令netstat -an|grep 3306
查看端口监听状态:
[root@VM_0_6_centos ~]# netstat -an|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
进入腾讯云控制台,依次安全->安全组->入站规则->添加规则->编辑,将3389改为3306即可。(3389为远程协助端口,一般用不着)
Ok,腾讯云服务器的MYSQL数据库远程访问开启成功,使用客户端测试连接成功。