使用源码包安装MySQL数据库

部署MySQL的目录结构

/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

安装MySQL

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源码的安装思路无非也是”编译—安装—配置“,但安装过程中很容易出错,排错思路主要围绕”权限—目录—配置信息“ 这三点进行检查。

你可能感兴趣的:(使用源码包安装MySQL数据库)