阿里云服务器(centos7) 设置mysql账号密码开放3306端口实现远程登陆

2018年06月03日 20:03:26

阅读数:15

在阿里云服务器上(centos7)下载好了mysql并安装上去,但是暂未设置账号密码,远程登陆mysql并不可行。

这里有两个问题需要我们去解决:设置账号密码;远程登陆mysql

(一)设置账号密码

(1)登陆远程服务器

(2)查看mysql版本,并用root账号登陆到mysql中
mysql -v

上面这个截图是我已经进去mysql数据库中了,如果没有到这个界面的,我们可以使用mysql -u root -p输入密码并进入到mysql中。

(3) 创建test账号,并设置密码pwd123456
使用的mysql语句为:
grant all on *.* to test@'127.0.0.1' identified by "pwd123456";

当输出为:

就是创建成功了。

(4)切换到mysql 数据库,给test设置访问权限。
mysql语句:use mysql;

(5)修改test的权限。

mysql语句:update user set host = '%' where user = 'test';

(6)查看user表是否修改成功
mysql语句:select user,host from user where user="test";

%说明修改成功,任何ip都可以进行访问
(7) 更新数据库:
mysql语句:flush privileges;

到这里我们就把mysql的账号密码给添加上去了,如果要添加多个账号跟密码,重复操作上面的步骤即可。下面我们需要实现远程登陆。

(二)实现远程登陆

关于本机能登陆mysql,但是远程登陆不上去,往往是防火墙未关闭或者3306端口未开放的情况下

(1)阿里云的安全组策略里查看一下是否进行了3306端口的远程访问

安全组策略的问题:我们可以参考前几日写过的这篇文章:
新买阿里云linux服务器如何设置账号密码xshell远程登陆

在这里我们只需多打开一个端口:3306端口即可

(2) 关闭防火墙,开放3306端口

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

1、关闭firewall:

systemctl stop firewalld
.service

systemctl disable firewalld
.service

systemctl mask firewalld
.service

2、安装iptables防火墙
yum install iptables-services -y

3.启动设置防火墙

 systemctl enable iptables
 systemctl 
start
 iptables

4.查看防火墙状态
systemctl status iptables
5 编辑防火墙,增加端口

vi /etc/sysconfig/iptables #编辑防火墙配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! #保存退出

3.重启配置,重启系统

systemctl restart iptables
.service
#重启防火墙使配置生效

systemctl enable iptables
.service
#设置防火墙开机启动

注意:以上操作如果出现xxx command not found 的情况,我们只要sudo yum install xxx 就可以了,然后会自动给下载的。

4 调试3306端口是否能登陆上去
使用命令:
[admin@izbp11722iq94py8qx691sz ~]$ sudo iptables -L -n

在win下使用本地mysql工具Navicat 测试一下

这样我们就实现了远程登陆mysql数据库。

centos7.2下解决用Mysql 使用navicate远程连接数据库出现1045 access denied for user 'root'@'localhost' using password yes

在mysql命令行中执行

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

若以上方法行不通则用:

use mysql;

UPDATE user SET Password=PASSWORD('123456') where USER='root';

flush privileges;

注意事项

  1. mysql 一定不能设置root密码,这样会报4405的错误
  2. mysql 3306 端口可能没有打开,在阿里云centOS7/fireWall关闭/安装iptable

results matching ""

    No results matching ""