首页 > 技术文章 > MySQL多种安装方式选择

liulei-LL 2017-11-26 13:14 原文

 

1.rpm包安装方式

rpm包的安装方式非常简单,这里以el6平台下的mysql-5.6.34版本为例,首先,要通过上述搜狐镜像地址下载到如下四个MySQL相关软件安装包。

a.下载安装包

MySQL-client-5.6.34-1.el6.x86_64.rpm

MySQL-devel-5.6.34-1.el6.x86_64.rpm

MySQL-server-5.6.34-1.el6.x86_64.rpm

MySQL-shared-5.6.34-1.el6.x86_64.rpm

一般来说,其中的MySQL-server-5.6.34-1.el6.x86_64.rpm和MySQL-client-5.6.34-1.el6.x86_64.rpm这两个软件包是必须要安装的,至于另外两个软件包,则可视实际需要进行安装,不过一般建议一起安装。

可以把这四个RPM包上传到服务器的目录中,然后执行如下rpm命令进行安装:

[root@oldboytools]# rpm -qa|grep mysql或者mysql --version   #<==查找已经安装的mysql的包。

mysql-libs-5.1.73-7.el6.x86_64

rpm -e mysql-libs-5.1.73-7.el6.x86_64       #<==卸载系统已经安装的mysql依赖包。

执行安装命令:

rpm -ivh MySQL-client-5.6.34-1.el6.x86_64.rpm  #<==ivh是以verbose模式安装

rpm -ivh MySQL-devel-5.6.34-1.el6.x86_64.rpm

rpm -ivh MySQL-shared-5.6.34-1.el6.x86_64.rpm

rpm -ivh MySQL-server-5.6.34-1.el6.x86_64.rpm

执行上述命令即可完成MySQL软件的安装。

在采用rpm包安装方式时,必须要官方或第三方提供了现成的rpm软件包,否则是无法使用该方式安装的。另外,和直接采用yum的安装方式相比,rpm包的安装方式往往可以选择更新的版本,但是rpm包安装也有自身的问题,例如,无法满足定制化安装,比如,不能进行编译参数、路径等的更改。

2.利用yum安装

yum方式安装MySQL数据库时,只需执行一个命令yum install mysql-server -y即可,yum方式的安装原理是在执行yum安装命令后,会自动从yum源地址下载相应名称的MySQL数据库rpm包,然后到系统上安装,并自动解决各种软件包之间的依赖问题。这是一个非常不错的安装软件的方式,不仅仅是针对MySQL,安装其他软件也是如此。

Yum安装方式的最大优点就是超级简单,但是它也有自身的问题,例如它继承了rpm包的无法定制化安装的问题,另外一个缺点是采用默认的yum安装时,一般yum源带的软件版本都比较低.

但是不知道初始密码,不能进行数据库root密码的修改,因为缺少mysql.user表,后面发现是自己配置有错误,按照网上的教程弄,没人指点,有些细节弄死人.

原因:

一次源码新装的mysql,由于没有复制my-default.cnf到/etc/my.cnf位置,在启动mysql的时候碰到了无法打开mysql.user表的错误。具体错误为:[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist。下面是该错误的描述及其解决办法。

1、现象描述123456

[root@HKBO scripts]# service mysqld start
Starting MySQL..The server quit without updating PID file (/var/lib/mysql/HKBO.pid).[FAILED]

#查看错误日志
[root@HKBO scripts]# tail /var/log/mysqld.log
InnoDB: Apply batch completed
2014-12-08 11:01:37 15721 [Note] InnoDB: 128 rollback segment(s) are active.
2014-12-08 11:01:37 15721 [Note] InnoDB: Waiting for purge to start
2014-12-08 11:01:37 15721 [Note] InnoDB: 5.6.12 started; log sequence number 1600607
2014-12-08 11:01:37 15721 [Note] Server hostname (bind-address): '*'; port: 3306
2014-12-08 11:01:37 15721 [Note] IPv6 is available.
2014-12-08 11:01:37 15721 [Note]   - '::' resolves to '::';
2014-12-08 11:01:37 15721 [Note] Server socket created on IP: '::'.
2014-12-08 11:01:37 15721 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
141208 11:01:37 mysqld_safe mysqld from pid file /var/lib/mysql/HKBO.pid ended

# Author : Leshami
# Blog   :  http://blog.csdn.net/leshami

2、解决办法
#查看当前的my.cnf配置文件
[root@HKBO scripts]# more /etc/my.cnf |grep -v ^#
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#由于编译安装时指定的路径为/opt/data以及mysql_install_db时指定的datadir也为/opt/data,而my.cnf为缺省的路径
#因此修改datadir至正确路径后,问题解决
[root@HKBO scripts]# vi /etc/my.cnf
[root@HKBO support-files]# more /etc/my.cnf |grep datadir
datadir=/opt/data

[root@HKBO support-files]# service mysqld start
Starting MySQL.[  OK  ]

推荐阅读