阿里云轻量应用服务器——配置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协议即可。不过首先需要在 控制台>服务器运维>远程连接 (如下图)点击其中的 “设置密码” 即可。
个人博客地址 cnblogs.com/cc1997;
个人网站地址 Ccoding.cn