首页 > 代码库 > MySQL-5.5.38通用二进制安装

MySQL-5.5.38通用二进制安装

1、系统环境:CentOS 6.5_x86

2、mysql-5.5.38-linux2.6-i686.tar.gz

    MySQL 二进制分发版的文件名格式为 mysql-VERSION-OS.tar.gz,其中 VERSION 是版本号(例如,5.1.51),OS表示分发版安装的操作系统类型(例如,linux-i686)。



为什么要使用通用二进制包?   

    由于经常要安装MySQL做测试用,一般都是采用源码方式安装的,但是由于源码安装需要编译很长时间,虽然源码编译性能较好,但是我们完全可以通过配置文件来调整。并且源码方式严重依赖操作系统环境。

    而且通用二进制包可以很容易的移植,而且官方也做了相应的优化选项。所以我推荐使用通用二进制包安装MySQL。


如果使用二进制安装升级怎么进行?

    升级获取的还是二进制压缩包。在安装的时候,我们就创建一个链接,那么,升级时直接将指向目录切换到新的MySQL目录即可。


安装过程?

1、创建mysql用户和组

[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql

2、创建mysql的数据存放目录(建议独立分区,且为逻辑卷)

这里,我直接偷懒了,在/mydata/data作为数据目录:

[root@localhost ~]# mkdir -pv /mydata/data
由于此目录mysql用户需要进行读写,所以我们把属主、属组改为mysql
[root@localhost ~]# chown -R mysql:mysql /mydata/data

3、解压

通常,按照惯例,我们习惯于解压到/usr/local/src目录

[root@localhost ~]# tar xf mysql-5.5.38-linux2.6-i686.tar.gz  -C /usr/local/src
# 为了方便升级,我们创建一个软链接, 下次升级的时候, 重新创建此链接即可
[root@localhost ~]# cd /usr/local
[root@localhost local]# ln -sv src/mysql-5.5.38-linux2.6-i686 mysql
`mysql‘ -> `src/mysql-5.5.38-linux2.6-i686‘

    其实这一步就是为了提供一种快捷操作的方式。其实不建立软连接也是可以用的,为什么要这样做?

    升级管理有用:新版本单独建立一个目录存放的。假如你升级mysql了。只要将这个软连接指向的目录修改即可。

4、初始化数据库

[root@localhost local]# cd /usr/local/mysql
[root@localhost mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/mydata/data --user=mysql
# --basedir    指定mysql基目录
# --datadir    指定数据目录
# --user       指定用户

这一个步骤非常关键。如果不成功,请检查上面是否有错误或漏掉的操作。

为了安全性,我们把Mysql程序的目录属主、属组改为root:root

[root@localhost mysql]# chown -R root:root /usr/local/src/mysql-5.5.38-linux2.6-i686/


5、拷贝Mysql服务启动脚本以及配置文件

# 拷贝服务启动脚本
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
# 加入sysV
[root@localhost mysql]# chkconfig --add mysqld
# 开机启动
[root@localhost mysql]# chkconfig mysqld on

# 拷贝配置文件
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf

6、启动服务

[root@localhost etc]# service mysqld start
Starting MySQL...... SUCCESS! 
[root@localhost etc]# netstat -tulpn | grep 3306
tcp     0    0 0.0.0.0:3306            0.0.0.0:*             LISTEN      3834/mysqld 
# OK, 我们看到mysqld监听在 3306 端口上

7、把mysql的bin目录加入到PATH

[root@localhost ~]# vim /etc/profile.d/mysql.sh
# 增加下面的一行
export PATH=$PATH:/usr/local/mysql/bin
[root@localhost ~]# . /etc/profile.d/mysql.sh 

# 做一些简单安全设置,根据提示,选择[Y/n]
[root@localhost mysql]# /usr/local/mysql/bin/mysql_secure_installation

8、进行一些配置

修改MANPATH让man命令可以找到mysql帮助文档

# vim /etc/man.config
#添加以下内容
MANPATH /usr/local/mysql/man

添加头文件

# ln -sv /usr/local/mysql/include /usr/include/mysql
`/usr/include/mysql‘ -> `/usr/local/mysql/include’

添加库文件

#vim /etc/ld.so.conf.d/mysql.conf
#添加以下内容
/usr/local/mysql/lib

重新生效

# ldconfig -v | grep mysql

9、使用TCMalloc为mysql加速

    今天才发现在MySQL提供的二进制包里,已经包含了libtcmalloc.so,以前都不知道 (-__-)b

[root@localhost lib]# pwd
/usr/local/mysql/lib
[root@localhost lib]# ls | grep libtcmal
libtcmalloc_minimal.so

# 编辑mysqld_safe文件
[root@localhost bin]# vi /usr/local/mysql/bin/mysqld_safe
# 添加下面这一行
export LD_PRELOAD="/usr/local/mysql/lib/libtcmalloc_minimal.so"

# 重启mysql服务
[root@localhost ~]# service mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL... SUCCESS!

[root@localhost bin]# lsof -n | grep -i tcma
mysqld    4793   mysql  mem       REG        8,2   888700      14655 /usr/local/src/mysql-5.5.38-linux2.6-i686/lib/libtcmalloc_minimal.so


知识充电:

ldconfig命令的作用是:
    ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and /usr/lib). The cache is used by the run-time linker, ld.so or ld-linux.so. ldconfig checks the header and filenames of the libraries it encounters when determining which versions should have their links updated.

ldconfig几个需要注意的地方!

1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到

2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到

比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就 需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程 序运行时被找到。

3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变 量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时 候使用。

4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。

5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事


本文出自 “Share your knowledge” 博客,请务必保留此出处http://skypegnu1.blog.51cto.com/8991766/1440016