注意,上述编译选项中没有提供sysconfdir、datadir、pidfile和socket等mysql运行时文件类设置选项。虽然可以设置,但没必要,而且在做多实例的时候可能会出现问题。不过,可以考虑加上MYSQL_UNIX_ADDR项来设置socket路径,因为不设置的话其会采用默认的/tmp/mysql.sock。
1.3.2 初始化 shell> ln -s /usr/local/mysql-5.6.37 /usr/local/mysql shell> cd /usr/local/mysql shell> useradd -r -s /sbin/nologin mysql shell> mkdir -p /mydata/data shell> chown -R mysql.mysql /mydata/data shell> chmod o-rx /mydata/data shell> chown -R mysql.mysql /usr/local/mysql shell> scripts/mysql_install_db --user=mysql --datadir=/mydata/data shell> cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf shell> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld shell> chown -R root.root /usr/local/mysql # 修改my.cnf的datadir、socket、log和pid路径。 shell> vim /etc/my.cnf [mysqld] datadir=/mydata/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/mydata/data/mysql.log pid-file=/mydata/data/mysqld.pid注:mysql 5.7建议采用如下语句进行初始化。
/usr/local/mysql/bin/mysqld --initialize-insecure --datadir=/mydata/data --user=mysql如果是centos7,则提供systemd风格的服务管理脚本,并确认是否要修改pid文件路径。
1.3.3 规范化输出头文件、库文件,设置PATH环境变量,设置man路径。
echo "export PATH=/usr/local/mysql/bin:$PATH" >/etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh chmod +x /etc/profile.d/mysql.sh echo "MANPATH /usr/local/mysql/man" >>/etc/man.config echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf ldconfig ln -s /usr/local/mysql/include /usr/include/mysql 1.3.4 cmake编译MySQL时的选项说明 Installation Layout Options-DCMAKE_INSTALL_PREFIX=dir_name # MySQL的安装位置
-DINSTALL_PLUGINDIR=dir_name # 插件安装的目录
-DMYSQL_DATADIR=dir_name # MySQL的data dir
-DSYSCONFDIR=dir_name # MySQL默认的配置文件(my.cnf)路径
-DTMPDIR=dir_name # 临时文件存放路径,在MySQL5.6.16中才开始提供该选项
Storage Engine Options存储引擎是插件式的,可被静态编译到MySQL服务中,也可以动态编译成模块,编译成模块时需要使用INSTALL PLUGIN语句或者--plugin-load选项来启用。但某些插件是固化的,无法指定是静态编译还是动态编译。
InnoDB,MyISAM,MERGE,MEMORY和CSV存储引擎总是默认静态编译到MySQL服务中的,在编译安装的时候无需显式指定它们。
编译存储引擎的时候,使用-DWITH_enginename_STORAGE_ENGINE=1表示静态编译到MySQL。可选的引擎有:ARCHIVE、BLACKHOLE、EXAMPLE、FEDERATED、PARTITION(分区支持引擎)、PERFSCHEMA(Performance Schema)。如:
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1使用-WITHOUT_enginename_STORAGE_ENGINE=1表示显式的排除这些引擎,即强制不使用它们。如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1-DWITH_enginename_STORAGE_ENGINE和-WITHOUT_enginename_STORAGE_ENGINE都没有指定某些引擎的话,这些引擎默认动态编译成模块,如果无法动态编译成模块则不编译。
Feature Options-DDEFAULT_CHARSET=charset_name
设置默认字符集,默认为latin1。例如,binary,ascii,big5 ,gb2312,gbk,latin1,latin2,latin5,latin7,utf8。
在cmake/character_sets.cmake文件中的CHARSETS_AVAILABLE定义了允许使用的字符集列表。
字符集的设置可以在MySQL服务启动的时候使用"--character_set_server"选项来指定。
-DDEFAULT_COLLATION=collation_name
设置默认的排序规则。默认排序规则为latin1_swedish_ci。使用SHOW COLLATION语句可以查看每种字符集可以使用的排序规则。
排序规则的设置可以在MySQL服务启动的时候使用--collation_server选项来指定。
-DENABLED_LOCAL_INFILE=bool