本文介绍一下Linux(CentOS 6.x)下安装MySQL的三种方法:yum安装、rpm安装、源码安装。
1、yum安装
使用yum安装mysql,是最简单的安装方式。
这里假设CentOS源可连接或者已经挂载了本地光盘源。
安装mysql,命令如下:
[root@admin ~]# yum install mysql mysql-server
mysql代表客户端,mysql-server代表服务端,因为我们需要用客户端去连接服务端,以便能在本地正常的使用mysql服务。
上面的操作如果顺利的话,执行完,我们的mysql就安装好了,但需要注意的是,yum默认安装的是5.1版本的mysql。
启动并验证mysql
yum会自动下载mysql及其服务包并进行安装。安装完成后,启动一下MySQL,验证mysql是否安装成功。
首先启动mysql:
启动mysql服务,这里启动的是一个实例(一个实例下可以有多个库,一个库也可以在多个实例下,这就是我们所说的分库操作。),实例通常监听在3306端口上,这个端口可以人为更改。
[root@admin ~]# /etc/init.d/mysqld start
其次登录mysql:
如果在登录mysql前,没有启动mysql服务,就会报如下错误:
Can't connect to local MySQL through socket '/var/lib/mysql/mysql.socket'
使用root用户登录mysql
[root@admin ~]# mysql -uroot -p
这里密码直接回车即可,如果出现了mysql提示符说明已经进入到mysql的某个实例上了,但是还没有连接到某个库上。
然后创建一个test库:
mysql> create database test;
库创建成功后,查看存在的库,可以看到刚创建的test库。
mysql> show databases;
库创建完以后,下面就是创建表了。在创建表之前,我们必须进入相应的库下。
mysql> use test;
给test库创建一个用户:
mysql> grant all privilages on test.* to 'test'@'localhost' identified by '123456';
上面表示创建test库的用户test,密码为123456,并且test用户拥有test库下所有的权限。
此时mysql还是不能使用的,必须flush一下才能使用。
mysql> flush privileges;
测试一下刚创建的用户是否能连接到test库
#先退出mysql,然后使用新创建的用户,测试一下连接mysql
[root@admin ~]#quit
[root@admin ~]# mysql -utest -p -hlocalhost
输入密码回车,如果看到mysql提示符(mysql> ),恭喜你mysql连接成功,可以正常使用了。
yum默认安装mysql后,它的配置文件位置是/etc/my.cnf。
这里需要注意,如果我们打算以后在我们的数据库表中插入中文,那么我们需要在创建库之前给指定一下库的编码为utf8。
删除之前创建的test库
mysql> drop database test;
创建一个指定了编码为utf8的新库test
mysql> create database test default character set=utf8;
2、RPM安装
rpm安装包的说明:
MySQL-包类型-版本号-{0|1}.操作系统类型.CPU类型.rpm
例如:MySQL-client-5.6.23-1.el6.x86_64.rpm
rpm安装前的准备:
上传已下载(在mysql官网都能找到这些安装包)好的Mysql客户端和服务端的.rpm包到某个文件夹下。
[root@admin soft]# rz
选中要上传的包,直接上传即可。如果没有rz命令,先安装
[root@admin soft]# yum install lrzsz
开始安装
首先创建mysql账号
[root@admin soft]# groupadd mysql
[root@admin soft]# useradd mysql -g mysql
安装MySQL客服端
[root@admin soft]# rpm -Uvh MySQL-client-5.6.23-1.el6.x86_64.rpm
如果顺利的话,就会出现下面的界面,那就表示Mysql服务端已经安装成功了。
当然在安装的过程中,不同的环境有可能会报错,依赖失败,这表示缺少某些依赖包,不要慌张,仔细查看一下报错的信息,会告诉你缺少哪些包,然后我们针对缺失的包逐一安装即可(缺什么装什么)。如:
从上图可以看出缺失的是libc.so.6依赖包,使用yum安装它。
[root@admin soft]# yum install libc.so.6
等所有的缺失包都安装完毕以后,再执行一次客服端的安装操作即可。
这里提供一个缺失包下载地址:
http://rpmfind.net/linux/rpm2html/search.php?query=libgcc_s.so.1&submit=Search+…&system=&arch=
安装Mysql服务端
[root@admin soft]# rpm -Uvh MySQL-server-5.6.23-1.el6.x86_64.rpm
同样如果顺利的话,就会出现下面的界面:
如果安装失败了,rpm安装过程中,失败的原理一般有两个,一个是缺失某些依赖包,还有一个是版本冲突,如下面这样。
是在告诉你,现在系统中已经存在一个版本为5.1的Mysql,与新版本冲突了,那么我们就要卸载它。
[root@admin soft]# yum remove mysql-libs-5.1.73-3.el6_5.x86_64
详细的卸载信息请查看另一篇博文“Linux下彻底卸载mysql”
卸载完老版本Mysql后再重新执行一次新版Mysql服务端安装操作即可。
需要注意的是,Mysql-5.6版本rpm安装后,默认密码不为空,在你的安装成功后的系统输出文档中会告诉你具体密码存放地。
查看一下默认密码
切换Mysql用户,然后启动Mysql服务
[root@admin soft]# su - mysql
[mysql@admin ~]$ service mysql start
Starting MySQL. SUCCESS!
登录进去修改root的默认密码为root
至此,rpm安装Mysql就结束啦。
rpm安装成功以后,Mysql的basedir目录默认是在/var/lib下。
3、源码安装
源码安装使用的都是源码包,类似于xxx.tar.gz。
此处使用mysql-5.6.23.tar.gz的源码包,进行源码安装演示。源码安装具有更好的跨平台、可定制、一个服务器可以安装多个版本等优点。缺点是安装过程复杂,编译时间长。
首先清理之前RPM安装产生的历史文件(如果装过,详见另一篇博文Linux下彻底卸载mysql)
查看当前系统中存在的mysql
[root@admin ~]# rpm -qa | grep -i mysql
停止mysql服务,然后卸载这些文件
[root@admin ~]# service mysql stop
源码安装包,需要编译后才能安装,但是从MySQL5.5以后,编译环境就有所变化,需要首先安装编译环境与安装依赖包。
编译环境需要安装的有cmake、automake、autoconf。另外MySQL5.6.x需要最少安装的包有:bison,gcc,gcc-c++,ncurses-devel。一次性安装以上的所有包:
[root@admin ~]# yum –y install cmake automake autoconf bison gcc gcc-c++ ncurses-devel
针对上面的包,如果已经存在的就会略过,没有的会直接安装。
解压源码包,解压前先将源码包放在一个固定的软件目录中,方便后期管理。
[root@admin mysql]# tar -zxvf mysql-5.6.23.tar.gz
解压完以后,进入解压后的目录mysql-5.6.23中
[root@admin mysql]# cd mysql-5.6.23
构建解压后的mysql程序
[root@admin mysql]# cmake .
注意cmake后面有一个点(.)
最后,编译安装MySQL软件,会按照你的配置文件来编译安装MySQL,比如会生成/usr/local/mysql目录等。
[root@admin mysql]# make && make install
如果中途没有报错,那恭喜你,MySQL安装成功啦。
但是需要注意的是,虽然我们安装成功了,但是还有很多后续的工作需要做,因为现在还没有my.cnf文件,不能使用service mysql start命令,没有mysql数据目录,mysql常用命令都使用不了等。下面我们来开始完善这些工作。
生成my.cnf文件
[root@admin mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
生成可以使用的service mysql start命令的mysql文件
[root@admin mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
生成mysql工具
[root@admin mysql]# cp /usr/local/mysql/bin/mysql /usr/bin/mysql
创建mysql数据目录
[root@admin mysql]# mkdir -p /ROOT/data/mysql
对该目录赋权
[root@admin mysql]# chown -R mysql.mysql /ROOT/data/mysql
重点是生成mysql初识化数据
[root@admin mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/ROOT/data/mysql
最后修改my.cnf文件
[root@admin mysql]# vi /etc/my.cnf
启动mysql数据,验证一下配置的正确性
[root@admin mysql]# service mysql start
如果顺利的话,你就会看到下面的界面
这表示mysql启动成功,可以开始使用啦。
注意源码安装的mysql的basedir目录默认是/usr/local下。
当然你也有可能在启动过程中遇到一些报错,如:
这错误表示启动mysql的权限不够,查看一下/etc/init.d/目录下mysql的权限
[root@admin mysql-5.6.23]# cd /etc/init.d/
发现果然是权限不够
给授予可执行的权限
[root@admin init.d]# chmod 755 mysql
再次启动mysql服务,成功啦,兴奋啊~~~。