MySQL、MariaDB安装和多实例配置(3)

注意,上述编译选项中没有提供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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/34940e79b6de6dc3cc1570e752003025.html