想练下MySQL开发,于是打算在虚拟机上安装MySQL,本以为会一路顺风,没想到却是囧途啊。
首先到官网下载了tar包,解压后有一堆东西,看着好头疼
不过通过文件名还是能很清楚的分辨出各包的作用,最后决定装server+client,最基本的。
由于CentOS上有个mariadb,会与MySQL冲突,于是先卸载掉。过程不多说了。
然后开始安装server:使用rpm -ivh 安装,接着出现下面问题:
[root@localhostDownloads]# rpm -ivh MySQL-server-5.6.23-1.linux_glibc2.5.x86_64.rpm
Preparing... ################################# [100%]
Updating /installing...
1:MySQL-server-5.6.23-1.linux_glibc#################################[100%]
FATAL ERROR: pleaseinstall the following Perl modules before executing /usr/bin/mysql_install_db:
Data::Dumper
居然说没有Perl modules,百度后说要yum install -y perl-Module-Install.noarch,照做后又报错,说没有urlgrabber.grabber。
经过各种原因排查,终于确定是之前更新Python导致的。
更改yum和/usr/libexec/urlgrabber-ext-down开头的python版本为系统原来的版本。保存后重新运行,一切OK了。
接下来 mysql_install_db --user=mysql
开启mysql服务,一切正常。 接下来把客户端安装好就OK 了。
可是真的如此吗。。。
编写一个简单测试代码:
#include <mysql.h>
int main()
{
return 0;
}
在编译时发现找不到头文件和相关库,在各目录也没有找到。于是想是不是少安装了什么。果然在之前的压缩包里还有个MySQL-devel-5.6.23-1.linux_glibc2.5.x86_64.rpm ,装之
/bin下出现个mysql_config ,运行了下,其作用很明显:
[root@localhost mysql_test]# mysql_config
Usage: /usr/bin/mysql_config [OPTIONS]
Options:
--cflags [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
--cxxflags [-I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -felide-constructors -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1]
--include [-I/usr/include/mysql]
--libs [-L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl]
--libs_r [-L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl]
--plugindir [/usr/lib64/mysql/plugin]
--socket [/var/lib/mysql/mysql.sock]
--port [0]
--version [5.6.23]
--libmysqld-libs [-L/usr/lib64 -lmysqld -lpthread -lm -lrt -lcrypt -ldl -laio]
--variable=VAR VAR is one of:
pkgincludedir [/usr/include/mysql]
pkglibdir [/usr/lib64]
plugindir [/usr/lib64/mysql/plugin]
重新编译cpp:
g++ $(mysql_config --include) $(mysql_config --libs) mysql_test.cpp
终于OK了。事不大,东西不多,但是有些闹心