今天折腾了好常时间远程连接mysql ,在云服务器里面打开了3306端口,使用了service mysql status查看到mysql进程正常。
netstat -anp | grep mysql 发现local address为127.0.0.1:3306也即只能本地访问mysql进程地址。
估计是没有打开远程访问,因此要修改mysql 配置允许远程访问:
第一步:
vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1
目录位置注意找一下 我的默认是在/etc/mysql/mysqlconf.d/mysqld.cnf
注释掉这行,如:#bind-address = 127.0.0.1
或者改为: bind-address = 0.0.0.0
允许任意IP访问;
或者自己指定一个IP地址。
重启 MySQL:sudo /etc/init.d/mysql restart
第二步:
授权用户能进行远程连接
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
第一行命令解释如下,*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。root:授予root账号。“%”:表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对应的密码,这里密码自己替换成你的mysql root帐号密码。
第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。
如果不进行第二步会提示没有权限,access denied.