需要用到cmake和mysql的tar包,编译mysql需要使用cmake

解决依赖关系

yum -y install ncurses-devel

解压cmake并编译安装

tar zxf cmake-3.15.1.tar.gz -C /usr/src
cd /usr/src/cmake-3.15.1/
./configure && gmake && gmake install

解压MySQL并编译安装

tar zxf mysql-5.6.33.tar.gz -C /usr/src
cd /usr/src/mysql-5.6.33/

编译配置项这里推荐两种

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all

释义
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //指定mysql的安装目录
-DSYSCONFDIR=/etc //指定mysql主配置文件的目录
-DDEFAULT_CHARSET=utf8 //指定mysql的默认字符集
-DDEFAULT_COLLATION=utf8_general_ci //指定mysql的默认排序规则(不区分大小写排序)应用在用户注册登录时,如淘宝账号登录时,用户名中的大小写都能够登录同一个账号
-DWITH_EXTRA_CHARSETS=all //指定mysql支持其他字符集

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost(依然需要2分钟左右,配置的时候最后两条需要联网支持,没有网的情况下复制到倒数第三条即可)

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql:指定安装路径

-DMYSQL_DATADIR=/usr/local/mysql/data:指定数据库目录

-DSYSCONFDIR=/opt/data:指定初始化参数文件目录

-DWITH_MYISAM_STORAGE_ENGINE=1:存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1:存储引擎

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock:指定套接字路径

-DMYSQL_TCP_PORT=3306:端口

-DENABLED_LOCAL_INFILE=1:允许从本地导入数据

-DWITH_PARTITION_STORAGE_ENGINE=1:静态存储引擎

-DDEFAULT_CHARSET=utf8:指定默认使用的字符集编码,如utf8

-DDEFAULT_COLLATION=utf8_general_ci:指定默认使用的字符集校对规则,utf8_general_ci是适用于UTF-8字符集的通用规则。(指定校验字符串)

-DWITH_EXTRA_CHARSETS=all:指定额外支持的其他字符集编码

-DDOWNLOAD_BOOST=1:在线下载支持C语言的包

-DWITH_BOOST=/usr/local/boost:指定boost下载位置

编译安装

make && make install

优化MySQL环境

useradd -M -s /sbin/nologin mysql   # 创建MySQL程序用户
chown -R mysql:mysql /usr/local/mysql/   # mysql安装目录属主属组为mysql
# 复制自带的启动脚本到系统脚本目录下,并命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 为启动脚本授权执行权限
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld    # 添加为系统服务,可以使用systemctl来管理服务启动
systemctl enable mysqld   # 开机自启
ln -s /usr/local/mysql/bin/* /usr/local/bin  # 优化命令环境

修改主配置文件

为初始化数据库做调整

vim /etc/my.cnf
修改:
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/localhost.localdomain.pid
# 以上四个地方需要改动,第一个datadir和源码安装mysql的配置项相关,第二个路径为程序文件下*.sock
# 第三个为报错日志,把之前的Maria改掉,第四个为进程pid文件所在位置是datadir=之后的路径
# 注意最后的pid文件名必须为主机名.pid(默认主机名localhost.localdomain)

data和pid路径必须是一样的,否则会在之后的操作中报错

包括在使用cmake配置mysql时的,datadir的路径也必须和my.cnf文件中的datadir路径一样

初始化数据库

初始化数据库是为了让mysql服务知道数据库和数据保存在什么地方

/usr/local/mysql/scripts/mysql_install_db --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

如果在初始化数据库报错缺少perl等包,则使用yum -y install autoconf解决

启动mysqld服务验证

systemctl start mysqld

登录MySQL客户端

[root@localhost ~] # mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.33 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0