Linux平台下MySQL的安装方式主要有3种:
1、通过RPM包进行安装;
2、直接使用编译好的二进制文件进行安装;
3、下载源代码,采用自定义选项的方式安装。
使用源码安装的时候CMAKE有众多参数,下面对部分参数做一些解释说明。
● -DCMAKE_INSTALL_PREFIX:用于指定软件的安装路径,默认是安装到/usr/local/mysql目录,编译安装完之后感觉路径不合适也没关系,只要MySQL进程没有启动,随时都可以修改这个目录的名称和存储路径。
● -DDEFAULT_CHARSET:指定MySQL服务的默认字符集,本参数的默认值为latin1.MySQL能够支持的字符集非常多,详细可以参考MySQL源码目录下,cmake/character_sets.cmake文件中SET (CHARSETS_AVAILABLE)变量的值,这一选项在MySQL服务启动时也可以通过character_set_server参数进行设置。
● -DDEFAULT_COLLATION:指定MySQL服务的默认校对规则,本参数的默认值为latin1 swedish_ ci,这一选项在MySQL服务启动时也可以通过collation_ server参数进行设置。
● -DENABLED_LOCAL_INFILE:足否允许从客户端本地加载数据到MySQL服务端,专用于LOAD DATA INFILE语句,默认是不允许的。
● -DENABLED_PROFILING:是否启动query profiling,专用于SHOW PROFILE和SHOW PROFILES语句,默认是启用的。
● -DMYSQL_DATADIR:指定MySQL数据库数据文件的存储路径,这一选项在MySQL服务启动时可以通过datadir参数进行设置。
● -DSYSCONFDIR:指定MySQL参数文件的默认路径,这一选项可以在MySQL服务启动时通过defaults-file参数进行设置。
● -DWITH_
● -DWITHOUT_
● -DWITH_EXTRA_CHARSETS:指定附加支持的字符集,默认是all,即全部。
可能用到的参数如下:
● -DINSTALL_BINDIR:指定MySQL各项命令的存储路径,默认在CMAKE_INSTALL_PREFIX/bin目录下。
● -DINSTALL_DOCDIR:指定MySQL文档的存储路径,默认在CMAKE_INSTALL_PREFIX/docs目录下。
● -DINSTALL_INCLUDEDIR:指定头文件的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/include目录下。
● -DINSTALL_LIBDIR:指定链接文件的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/lib目录下。
● -DINSTALL_MANDIR:指定用户手册的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/man目录下。
● -DINSTALL_PLUGINDIR:指定Plugin的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/lib/plugin目录下。
● -DINSTALL_SBINDIR:指定服务端执行脚本的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/bin目录下。
● -DINSTALL_SCRIPTDIR:指定MySQL自带的mysql_install_db脚本的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/scripts目录下。
● -DINSTALL_SUPPORTFILESDIR:指定MySQL自带的附加支持类文件的存储路径,默认是保存于CMAKE_INSTALL_PREFIX/support-files目录下。
● -DMYSQL_TCP_PORT:指定MySQL数据库提供服务的TCP/IP端口,默认为3306,这一选项可以在MySQL服务启动时通过port参数进行设置。
● -DMYSQL_UNIX_ADDR:指定套接字文件的存储路径,默认是在/tmp/mysql.sock目录下,这一选项可以在MySQL服务启动时通过socket参数进行设置。
● -DWITH_COMMENT:指定编译信息,这个参数在5.1及之前版本有效,对于5.5及以后版本无效,如果需要指定编译信息,可以使用-DCOMPILATION_COMMENT参数来替代。
● -DWITH_READLINE:指定输入输出的处理方式,在5.1及之前版本无需单独处理,默认就是使用readline方式,不过进入5.5版本后,MySQL编译时默认使用libedit处理输入和输出,可能导致当前环境登录mysql命令行模式后,无法输入中文(仅针对当前编译环境,其他客户端不受影响),因此编译时需要指定其以readline方式处理。
提示:
关于-DWITH READLINE参数,在5.6.10版本中,即使指定-DWITH_READLINE,默认仍然使用libedit处理输入输出,这种情况下即使安装成功,全程未报错,但输入中文时可能会遇到出现“Segmentation fault”错误提示,导致本地连接的mysql命令行出错中止,官方将之定义为BUG,详细情况可以参考http://bugs.mysql.com/bug.php?id=68231。
以上内容来自网络,各位发现问题,欢迎一起交流指正。(QQ:63078038)