/opt/mysql //软件安装目录
/opt/mysql/data //数据库文件目录
/opt/mysql/tmp //mysql.sock存放位置
/opt/mysql/boost //boost目录
/var/log/mysql/mysqld.log //日志路径
关闭selinux
MySQL源码包:mysql-boost-5.7.28.tar.gz (我这里使用的是自带boost的包)
系统:redhat 7.4
需要的依赖包:cmake、gcc、gcc-c++、ncurses-devel、openssl-devel
添加mysql用户
useradd -s /sbin/nologin mysql
设置目录所属用户
chown -R mysql:mysql /opt/mysql/data
chown -R mysql:mysql /opt/mysql/tmp
chown -R mysql:mysql /opt/mysql/boost
创建文件并赋权
touch /opt/mysql/tmp/mysql.sock
touch /var/log/mysql/mysqld.log
chmod 777 /opt/mysql/tmp/mysql.sock
chown mysql:mysql /var/log/mysql/mysqld.log
1.解包、cd到源码目录:
tar -zxf mysql-boost-5.7.28.tar.gz
cd mysql-boost-5.7.28
2.拷贝boost文件
cp -R boost/boost_1_59_0/boost /opt/mysql/boost
我这里使用的是自带boost的源码包,也可以在mysql官网单独下载boost包
3.cmake编译
这里是一些常用的选项,其他选项可以到mysql官网查看
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql \ -----------------指定软件安装路径
-DMYSQL_DATADIR=/opt/mysql/data\ --------------------------指定输出存放路径
-DMYSQL_UNIX_ADDR=/opt/mysql/tmp/mysql.sock\ --------------指定mysql.sock路径
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_BOOST=/opt/mysql/boost \ ----------------------------指定boost路径
-DWITH_DEBUG=0
我在camke编译时发现如下报错:
*CMake Error at cmake/ssl.cmake:66 (MESSAGE):
Please install the appropriate openssl developer package.*
已经安装openss-devel,删除CMakeCache.txt文件后camke仍然报错,于是我在选项中又添加了一项
-DWITH_SSL=system
删除CMakeCache.txt后重新camke一遍,没有报错。
4.编译(这一步时间比较久)
make
5.安装
make install
6.编辑/etc/my.cnf文件
1 [mysqld]
2 basedir=/opt/mysql //mysql安装路径
3 datadir=/opt/mysql/data //data路径
4 socket=/opt/mysql/tmp/mysql.sock //mysql.sock路径
5 port=3306
6 symbolic-links=0
7
8 [mysql]
9 socket=/opt/mysql/tmp/mysql.sock
10
11 [mysqld_safe]
12 log-error=/var/log/mysql/mysqld.log //日志路径
13 pid-file=/opt/mysql/mysqld.pid //pid文件路径
14 !includedir /etc/my.cnf.d
7.初始化服务
/opt/mysql/bin/mysqld --initialize --user=mysql //初始化完成后会提示初始密码
8.复制源码包内启动脚本并修改
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
46 basedir=/opt/mysql
47 datadir=/opt/mysql/data
9.启动服务
/etc/init.d/mysqld start
ln -s /opt/mysql/bin/mysql /sbin/
mysql -uroot -p'isOGsryEl9)i' //登录mysql
10.设置开机自启
chkconfig --add mysql
chkconfig --list //查看列表
mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关 //3、4、5项为on,则设置成功
总结:mysql源码的安装思路无非也是”编译—安装—配置“,但安装过程中很容易出错,排错思路主要围绕”权限—目录—配置信息“ 这三点进行检查。