Linux上安装mysql及远程连接报1045错误码

基本步骤(注意根据自己的软件版本修改对应命令的文件名):

1、查看CentOS自带的mysql

输入 rpm -qa | grep mysql

2、将自带的mysql卸载

3、上传Mysql到linux

4、安装mysql的依赖(选做)

yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6

yum  update libstdc++-4.4.7-4.el6.x86_64

5、解压Mysql到/usr/local/下的mysql目录(mysql目录需要手动创建)内

cd /usr/local

mkdir mysql

tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql

6、在/usr/local/mysql下安装mysql

安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm

安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

7、启动mysql

service mysql start

8、将mysql加到系统服务中并设置开机启动

加入到系统服务:chkconfig --add mysql

自动启动:chkconfig mysql on

9、登录mysql

mysql安装好后会生成一个临时随机密码,存储位置在/root/.mysql_secret

Linux上安装mysql及远程连接报1045错误码_第1张图片

msyql –u root -p

10、修改mysql的密码

set password = password('root'); (root为你想要设置的密码)

11、开启mysql的远程登录

默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启     远程登录mysql的权限

在服务端登录mysql后进入到mysql数据库(use mysql),输入如下命令(即允许所有的主机连接):

grant all privileges on *.* to 'root' @'%' identified by 'root';

flush privileges;

12、开放Linux的对外访问的端口3306

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中

---------------------------------------------------------分割线--------------------------------------------------------------------------

网上的教程大同小异,基本如上。但我自己在执行完上述操作后虚拟机上linux能够正常访问数据库,但本机仍然无法远程连接上,报如下错误:

Linux上安装mysql及远程连接报1045错误码_第2张图片

后来各种搜索资料查找原因花费了很长时间,最终发现是密码的问题。

由于服务端是可以正常访问的,登录mysql--选择mysql数据库(use mysql)---查看user表的用户名、主机名及密码:

select user, host, password from user;

Linux上安装mysql及远程连接报1045错误码_第3张图片

可以看到密码都是经过编码了的!而且localhost的密码和我们添加的“%”即所有主机的密码不一样,但我好像并没有改过%主机的密码,所以在win上用sqlyog连接linux上的数据库时,输入的密码仍然是前文步骤10设置的密码,因此一直连接不上服务器!而在linux上用默认的localhost是访问成功的,说明localhost的密码是我当时设置的密码,是正确的!而%的密码不知在何时被不知不觉改了,密码错误自然连不上!

因此,我将%的密码改为与localhost相同

update user set password="*160087.....AA38" where host="%";

(注意,此处设置的密码需要是经过mysql编码后的,连接时输入编码前的密码才能成功)

重启服务端mysql          service mysql restart;

此时回到sqlyog,输入密码,连接成功!!

你可能感兴趣的:(Linux上安装mysql及远程连接报1045错误码)