查看是否已有老版本Mysql,如果有,则卸载,没有则跳过该步骤。
先查看机器是否存在安装包、是否已经安装的服务,如果有,则删除或卸载
查看命令:
- rpm -qa|grep -i mysql
删除命令:
- rpm -ev 文件名
卸载命令:
- yum remove MySQL-server MySQL-devel
然后再执行 whereis mysql
命令,查看残余mysql目录,有哪些目录,就用 rm -rf 目录
命令删除之;然后再依次执行以下几个删除命令删除相关文件,这条rm -rf /var/lib/mysql
命令尤其重要(当然,如果是全新系统的话,这几个文件可能压根就没有,删除时还会抛异常,这个没关系)
- rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
第二步:安装新版本Mysql
1、创建下载安装包的目录(笔者目录为/usr/local/tools
)
命令:
- mkdir -p /usr/local/tools
2、 下载
先进入创建的目录,然后依次执行下载命令
命令:
- cd /usr/local/tools
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.21-1.rhel5.x86\_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-devel-5.6.21-1.rhel5.x86\_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.21-1.rhel5.x86\_64.rpm
下载命令执行完后,执行ll
命令可以看到3个下载好的安装包。可在下载命令中,将版本号直接改成自己所需的版本号,下载相应版本安装包。也可到mysql官方下载所需版本(CentOS 可以下载Red Hat Enterprise Linux / Oracle Linux版本的)。
下载地址: http://dev.mysql.com/downloads/mysql/
下载步骤:
3、 安装
下载完成后,依次输入以下命令进行安装:
- rpm -ivh MySQL-server-5.6.21-1.rhel5.x86_64.rpm
rpm -ivh MySQL-client-5.6.21-1.rhel5.x86_64.rpm
rpm -ivh MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
安装MySQL-server-5.6.21-1.rhel5.x86_64.rpm时,会显示一个进度条,最后会输出很多安装信息;注意下图中标识出来的信息,这2句提示信息说明了安装后“密码”、“默认配置文件”所在路径。
安装MySQL-client-5.6.21-1.rhel5.x86_64.rpm:
安装MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
4、 修改配置文件、初始化Mysql
4.1、修改配置文件路径到etc目录,命令:
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
4.2、初始化Mysql ,命令:
- /usr/bin/mysql_install_db
执行命令后,会有许多提示信息,包括如何启动mysql、数据引擎、警告信息等
4.3、查看mysql服务是否已经启动,若没有启动,则启动mysql:
查看命令:
- ps -ef|grep mysql
netstat -anpt|grep 3306
启动命令:(老版本用service mysqld start
命令)
- service mysql start
启动成功,查看结果如下:
(若没有启动成功,且启动时抛The server quit without updating PID file 异常,请查看后面“三、可能出现的异常”中的第4条)
5、修改root账户初始密码
因为Mysql安装好后的初始默认密码是一个随机密码,我们可能需要修改成我们自己设置的密码:
查询默认密码命令:
- more /root/.mysql_secret
查看到初始密码后,使用mysql -uroot -pj3R5qTNxrKsxnQTj
命令登录Mysql:(j3R5qTNxrKsxnQTj即为笔者查到的初始密码)
查看安装好的Mysql的版本:
修改密码为123456:
命令:
- set password = password('123456');
修改密码成功后用新密码登录:(原初始密码已登录不了)
6、修改Mysql服务开机时自动启动(不需要则略过)
设置命令:
chkconfig mysql on;
- chkconfig mysql on;
查看设置结果命令:
- chkconfig mysql --list;
7、客户端连接
笔者使用Navicat Premium工具连接:
登录成功:
(若登录失败,报“1130,…is not allowed to connect to this MySQL servcer”错误,请查看“三、可能出现的异常”中的第5条)
至此,阿里云CentOS 6.5安装Mysql 5.6就算完成了。
三、可能出现的异常
1、使用命令rpm -ev 文件名卸载文件不掉,抛error: Failed dependencies
。(在后面加–nodeps参数)
2、4.1条复制文件时,可能提示是否覆盖(是,选y)。
3、安装时,可能出现有些依赖包没有的,直接只用yum install -y
命令安装即可。
4、启动时可能报“The server quit without updating PID file ([FAILED]/mysql/iZ94alccp3jZ.pid)”异常。
当出现这个异常时,可能大多数人的第一反应是,去网上搜索关键字,然后查到的解决办法无外乎以下几个方法:
a、查看磁盘、mysql权限、linux系统配置是否正常,若不正常,授权修复;
b、修改/etc/my.cnf 配置文件,修改innodb_buffer_pool_size等默认配置参数;
c、重启机器、清除Mysql并重新安装;
如果以上几个方法能够解决,那么恭喜;如果以上方式依然不能解决,请接着往下看笔者的解决过程。
a、首先,我们应该确认,到底为什么会抛这个异常呢?所以,我们进入mysql的错误日志中查看原因;(错误日志一般在/var/lib/mysql/目录下,笔者的错误日志文件为/var/lib/mysql/iZ94alccp3jZ.err)
b、查看日志,我们会发现出错的更详细信息
通过日志中的描述,发现InnoDB问题,以为是Mysql默认内存大大,然后赶紧修改可my.cnf中的innodb_buffer_pool_size默认值,发现没用。然后用free -m
命令查看了系统内存:
发现是Swap的问题,然后配置1G的Swap,依次执行以下命令:
命令:
- sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
free -m
执行以上操作后,再执行命令service mysql start
启动,启动成功!
5、客户端工具navicat 连接Mysql报错“1130,…is not allowed to connect to this MySQL servcer”。
原因:
由错误码“1130”及错误提示可知,这是由于Mysql的root账户是否允许其他机器远程登录的问题。
解决方法:
设置允许其它机器远程登录。(真正生产环境,需要设置只允许特定ip访问等一系列Mysql权限控制,此处不再深入)
a、登录Mysql;
b、修改mysql库中的user表:(”%”表示root可以由任意主机登录Mysql)
c、退出登录Mysql,重启Mysql服务:(exit;
命令,或Ctrl+C快捷键均可退出登录)
d、用客户端工具再次登录,即可登录成功。