今天在Ubuntu服务器上安装MySql的时候遇到了一些问题,记录下来,以防以后忘记。

安装环境:Ubuntu14.04

安装命令:

//安装Mysal服务端
//会提示输入root密码 sudo apt-get install mysql-server //安装Mysql客户端 sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev

错误一描述:

远程连接MySql的时候出现错误:错误码2203 Can`t connect to MySql server on 'XXX.XXX.XX.XXX'

解决思路:首先以为是防火墙的问题,但是仔细查看了服务器上的防火墙,发现防火墙早已经被我关闭了,然后只有网上检索找到了问题,在/etc/mysql/my.cnf中有一段代码:

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1

其中bind-address表示只绑定了本地连接,将该代码注释之后,重启MySql服务:

sudo service mysql restart

该问题貌似只在Ubuntu上存在,在RedHat中并没有此问题。

错误二描述

在解决了上述问题之后,又出现了新的错误:错误码:1130 Host 'XXX.XX.XX.XX' is not allowed to connect to this MySql Server

解决思路:第一反应就是没有权限,然后检索复习了一下赋权的操作,记录下来以防忘记:

通过Ubuntu上的MySql客户端连接MySql,执行命令(前提是要安装MySql的客户端哦):

#改命令执行完后输入密码
mysql -u root -p 

方法一:改表法

通过修改mysql数据库中的user表来进行赋权,Sql如下:

#选择mysql数据库
mysql> use mysql;
#更改root用户权限,字段host表示允许连接的ip,%表示任意ip
mysql> update user set host='%' where user='root' ;
#更新权限这一步很重要,一定不能忘记!!因为使用的是改表法,比较非正规,所以需要
#更新权限
mysql> flush privileges;

方法二:授权法

#该命令解释:
#grant命令表示赋权操作
#all privileges 表示所有的权限,其中权限有select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限
#on 后面跟着的是 <数据库名>.<表名> *.* 表示全部的数据库和表
#to 后面跟着的是 <用户名>@<IP地址> %表示任意IP
#identified by 后面是密码
#with grant option 表示具有传递授权功能
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

使用其中一种方法完美解决问题!

 posted on 2016-10-19 22:19  韩思明  阅读(472)  评论(0编辑  收藏  举报