1. 下载Linux对应的RPM包(本文MySQL包是在SOHU镜像中下载的),链接地址如下:
http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-server-5.6.24-1.el6.x86_64.rpm
http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-devel-5.6.24-1.el6.x86_64.rpm
http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-client-5.6.24-1.el6.x86_64.rpm
2. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除,如下:
[root@localhost ~]# rpm -qa | grep -i mysql
3. 安装MySQL
3.1 移除mariadb
-
命令
[root@localhost ~]# yum -y remove mariadb*
如不移除mariadb,安装时会提示冲突,无法安装,如下图:
3.2 安装相关依赖包
-
命令
[root@localhost ~]# yum -y install perl [root@localhost ~]# yum -y install perl-Module-Install.noarch [root@localhost ~]# yum -y install libaio [root@localhost ~]# yum -y install net-tools
如不安装上述包,可能会遇到下述问题: 提示依赖包缺失,如图:
3.3 安装MySQL
-
命令
[root@localhost ~]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm [root@localhost ~]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
4. 配置MySQL
4.1 修改配置文件位置
[root@localhost ~]# cp /usr/share/mysql/my-default.cnf /etc/my.cnf # 修改配置文件位置
[root@localhost ~]# service mysql start # 启动mysql服务
登录时可能会出现拒绝访问的问题,如下所示:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决方法如下:
- 关闭MySQL服务:
[root@localhost ~]# service mysql stop
- 以安全方式启动MySQL:
[root@localhost mysql]# mysqld_safe --skip-grant-tables &
- 进入MySQL修改密码:
[root@localhost ~]# mysql
[root@localhost ~]# use mysql;
[root@localhost ~]# select host,user,password from user;
[root@localhost ~]# update user set password=password('root') where user='root';
[root@localhost ~]# select host,user,password from user;
[root@localhost ~]# flush privileges;
[root@localhost ~]# exit;
- 杀死安全方式启动的MySQL:
kill -9 2978
# 2978为上述安全方式启动的进程ID- 启动MySQL服务:
service mysql start
访问时可能会出现如下错误:
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
重新设置一下密码即可:set password=password('root');
4.2 设置远程访问MySQL
-
关闭CentOS的防火墙:
[root@localhost ~]# systemctl status firewalld.service # 查看防火墙状态 [root@localhost ~]# systemctl stop firewalld.service # 停止防火墙服务 [root@localhost ~]# systemctl disable firewalld.service # 禁止防火墙服务自启 [root@localhost ~]# systemctl status firewalld.service # 查看防火墙状态
-
赋予任何主机访问数据的权限:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;