基本步骤(注意根据自己的软件版本修改对应命令的文件名):
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
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能够正常访问数据库,但本机仍然无法远程连接上,报如下错误:
后来各种搜索资料查找原因花费了很长时间,最终发现是密码的问题。
由于服务端是可以正常访问的,登录mysql--选择mysql数据库(use mysql)---查看user表的用户名、主机名及密码:
select user, host, password from user;
可以看到密码都是经过编码了的!而且localhost的密码和我们添加的“%”即所有主机的密码不一样,但我好像并没有改过%主机的密码,所以在win上用sqlyog连接linux上的数据库时,输入的密码仍然是前文步骤10设置的密码,因此一直连接不上服务器!而在linux上用默认的localhost是访问成功的,说明localhost的密码是我当时设置的密码,是正确的!而%的密码不知在何时被不知不觉改了,密码错误自然连不上!
因此,我将%的密码改为与localhost相同
update user set password="*160087.....AA38" where host="%";
(注意,此处设置的密码需要是经过mysql编码后的,连接时输入编码前的密码才能成功)
重启服务端mysql service mysql restart;
此时回到sqlyog,输入密码,连接成功!!