LAPM概述及配置( 三 )

4.2安装环境依赖包yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake各程序作用解释如下:gccgcc-c++ncurses#字符终端下图形互动功能的动态库ncurses-devel#ncurses开发包bison#语法分析器cmake#mysql需要用cmake编译安装4.3配置软件模块tar zxvf mysql-5.7.17.tar.gztar zxvf boost_1_59_0.tar.gzcd /optmv boost_1_59_0 /usr/local/boost#重命名cd /opt/mysql-5.7.17/cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \#指定mysql的安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径-DSYSCONFDIR=/etc \#指定配置文件的存储路径-DSYSTEMD_PID_DIR=/usr/local/mysql \#指定进程文件的存储路径-DDEFAULT_CHARSET=utf8\#指定默认使用的字符集编码,如 utf8-DDEFAULT_COLLATION=utf8_general_ci \#指定默认使用的字符集校对规则-DWITH_EXTRA_CHARSETS=all \#指定支持其他字符集编码-DWITH_INNOBASE_STORAGE_ENGINE=1 \#安装INNOBASE存储引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1 \#安装ARCHIVE存储引擎-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \#安装BLACKHOLE存储引擎-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \#安装FEDERATED存储引擎-DMYSQL_DATADIR=/usr/local/mysql/data \#指定数据库文件的存储路径-DWITH_BOOST=/usr/local/boost \#指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost-DWITH_SYSTEMD=1#生成便于systemctl管理的文件存储引擎选项:MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装 。静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧 。
4.4编译及安装make && make install4.5创建mysql用户useradd -M -s /sbin/nologinmysql4.6修改mysql 配置文件vim /etc/my.cnf#删除原配置项,再重新添加下面内容[client]#客户端设置port = 3306socket = /usr/local/mysql/mysql.sock[mysql]#服务端设置port = 3306socket = /usr/local/mysql/mysql.sockauto-rehash#开启自动补全功能[mysqld]#服务全局设置user = mysql#设置管理用户basedir=/usr/local/mysql#指定数据库的安装目录datadir=/usr/local/mysql/data#指定数据库文件的存储路径port = 3306#指定端口character-set-server=utf8#设置服务器字符集编码格式为utf8pid-file = /usr/local/mysql/mysqld.pid#指定pid 进程文件路径socket=/usr/local/mysql/mysql.sock#指定数据库连接文件bind-address = 0.0.0.0#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开skip-name-resolve#禁用DNS解析max_connections=2048#设置mysql的最大连接数default-storage-engine=INNODB#指定默认存储引擎max_allowed_packet=16M#设置数据库接收的数据包大小的最大值server-id = 1#指定服务ID号sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESsql_mode常用值如下:NO_ENGINE_SUBSTITUTION如果需要的存储引擎被禁用或未编译,那么抛出错误 。不设置此值时,用默认的存储引擎替代,并抛出一个异常STRICT_TRANS_TABLES在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制NO_AUTO_CREATE_USER禁止GRANT创建密码为空的用户NO_AUTO_VALUE_ON_ZEROmysql中的自增长列可以从0开始 。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错NO_ZERO_IN_DATE不允许日期和月份为零NO_ZERO_DATEmysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告ERROR_FOR_DIVISION_BY_ZERO在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告 。默认情况下数据被零除时MySQL返回NULLPIPES_AS_CONCAT将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似ANSI_QUOTES启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

经验总结扩展阅读