阿里云轻量应用服务器——配置MySQL远程连接(踩坑,LAMP+CentOS)

说在前面

本文讲解清晰,从0开始

如不能用Navicat等数据库软件远程登陆,请先检查:安全>防火墙中 是否添加了MYSQL的3306端口(ECS服务器请检查 安全组)如未添加,先点右上角“添加规则”。(在这上面耗了很久- -)

 


 

 

常用的命令:

切换到root管理员账号: 

sudo su root

获取Mysql数据库登陆密码(备用密码):

sudo grep mysql_root_passwd /root/env.txt

忘记密码:

在etc/my.cnf文件中;[mysqld]下添加一行skip-grant-tables;添加后输入任意密码都可以登陆mysql


 

 

正文:

首先 点击面板左侧 应用管理>应用详情 点击远程连接 进入命令行界面

先切换到root管理员账号 见文章开头常用命令。

然后输入mysql登陆等命令(如:mysql -u root -p)

出现报错 bash: mysql: command not found
原因是系统没有配置MySQL环境变量,所以不能在任意目录下使用mysql的指令

所以首先第1步:

1 配置MySQL环境变量

输入如下命令

vi /root/.bash_profile

 (字母I)进入输入模式,把原来的环境变量改成如下:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
退出输入模式,输入:wq,回车。提示written则保存成功。

重新运行该配置文件:

source /root/.bash_profile

配置好了环境变量就可以进行第2步了


 

2 登陆MySQL

mysql -u root -p

要求输入密码:(Linux密码默认不显示)

出现如下Welcome to the MySQL monitor……等一大段英文,即成功。此时 目录已经变成mysql>

 

 


 

 

3 设置 允许用户远程连接

首先进入LAMP默认数据库(该数据库名称就叫mysql):(因为有多个数据库,要改的user表在这个数据库中)

mysql> use mysql

在该数据库中执行查询(把表中的用户显示出来):

mysql> select user,host from user;

可以发现默认的host都是localhost(本地),所以要改成不止本地可以访问。

这时可以选择修改root的host为'%',或新建一个用户。两种方法如下(推荐第一种,快捷)

1) 修改host,由localhost变为'%'

执行如下命令:(赋权并修改)

mysql> grant all privileges on *.* to root @"%" identified by "此处改成你的MySQL密码"; 

2) 新建用户root2

mysql> create user '这里换成你自定的账号'@'%' identified by '这里换成你自定的密码';

成功会提示Query OK,失败则会ERROR加错误码。
至此,已经可以网外连接数据库了。(如用Navicat)[主机名填外网IP,用户名root,密码参见本文开头常用命令来获取]


 

 

另外:

如果是方法2新建了用户,则还需要对该用户赋权:(即让他有权限访问数据库,否则连接上只能看见information_schema,看不见其他数据库)

mysql> grant all privileges on *.* to 新用户的用户名 @"%" identified by "新用户的密码";    

 

文件传输使用SSH软件,或在FileZilla等软件中选用sftp协议即可。不过首先需要在 控制台>服务器运维>远程连接 (如下图)点击其中的 “设置密码” 即可。

 

 

posted @ 2019-02-25 21:28  ChaosBlog  阅读(4056)  评论(1编辑  收藏  举报