将二进制MySQL包安装到系统中
2013-10-06 23:00:05

本站赞助商链接,请多关照。 将预编译的二进制mysql包,安装后添加到系统变量环境中。解压后需要处理以下的目录,下载的软件包:Percona-Server-5.1.68-rel14.6-551.Linux.x86_64.tar.gz

bin  include  lib  man    mysql

在通过软件包安装的系统上,可以执行mysql-config指令来获取相关的路径信息。像下面:
Options:
--cflags [-I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing  -g]
--include[-I/usr/include/mysql]
--libs   [-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl]
--libs_r [-L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl]
--plugindir      [/usr/lib/mysql/plugin]
--socket [/var/run/mysqld/mysqld.sock]
--port   [0]
--version[5.5.31]
--libmysqld-libs [-L/usr/lib/x86_64-linux-gnu -lmysqld -lpthread -lz -lm -lrt -lwrap -lcrypt -ldl -laio]
--variable=VAR   VAR is one of:
pkgincludedir [/usr/include/mysql]
pkglibdir     [/usr/lib/x86_64-linux-gnu]
plugindir     [/usr/lib/mysql/plugin]

同样在二进制包的bin目录下也有这个指令,执行它可以得到相关的路径信息:
Options:
--cflags [-I/usr/local/mysql/include/mysql  -fPIC -g -static-libgcc -fno-omit-frame-pointer -DPERCONA_INNODB_VERSION=14.5     -DUNIV_LINUX -DUNIV_LINUX]
--include[-I/usr/local/mysql/include/mysql]
--libs   [-rdynamic -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm]
--libs_r [-rdynamic -L/usr/local/mysql/lib/mysql -lmysqlclient_r -lz -lrt -lpthread -lcrypt -lnsl -lm -lpthread]
--plugindir      [/usr/local/mysql/lib/mysql/plugin]
--socket [/var/lib/mysql/mysql.sock]
--port   [0]
--version[5.1.68]
--libmysqld-libs [-rdynamic -L/usr/local/mysql/lib/mysql -lmysqld -ldl -lz -lrt -lpthread -lcrypt -lnsl -lm -lpthread -lrt]

当然这些信息可以通过修改配置文件来改变,比如像socket的路径。

[链接指令文件-bin]
bin路径,这样执行与mysql相关的指令时,就不用指定其绝对路径了。

vim /etc/profile
export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin
export MANPATH=$MANPATH:$MYSQL_HOME/man

这样将相关的命令及参考手册就加入到了系统中。

[链接库文件-lib]
可以做一个软链接来解决这个问题。链到'/usr/lib',有些程序如果不能在此下找不到的话,在'/usr/lib64'目录也要建立这样的软链。
ln -s /usr/local/mysql/lib /usr/lib64/mysql

[链接开发库头文件-include]
主要是一些开发用到的'head'文件,以'.h'结尾。
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

但这样修改后,并不能直接生效,即使手动运行'ldconfig -v'。这主要是库链接文件没有添加到系统路径中。
$ mysql
mysql: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory

要手动加入一下到系统库搜索路径中,新建文件:
/etc/ld.so.conf.d/mysql.conf

加入一行:
/usr/lib/mysql

再次执行'ldconfig -v',可解决此问题。


获取MySQL数据库配置文件加载顺序

方法一
通过ps -ef查看MySQL数据库进程时,适用于用二进制包方式启动数据库:
$ ps -ef|grep -i mysqld

方法二
通过my_print_defaults命令的帮助信息,可以获取当前MySQL数据库版本加载配置文件顺序:
$ my_print_defaults --help|grep -A2 -B2 my.cnf

CentOS7
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

CRUX3.4
Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf

方法三
通过mysqld命令的帮助信息,可以获取当前MySQL数据库版本加载配置文件顺序:
$ mysqld --verbose --help|grep -A 2 my.cnf

CentOS7(二进制包安装)
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-5.7

方法四
通过mysql命令的帮助信息,可以获取当前MySQL数据库版本加载配置文件顺序
$ mysql --help|grep 'my.cnf'

CentOS7
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

CRUX3.4
/etc/my.cnf ~/.my.cnf