suse源码编译安装mysql8_编译安装mysql - chen虎的个人空间 - OSCHINA - 中文开源技术交流社区...

本文详细介绍了在SUSE系统中如何源码编译安装MySQL 8.0,包括下载源码、预编译、处理错误、创建目录、权限设置、初始化数据库和配置开机启动等步骤,以及解决编译过程中遇到的Boost库、SSL库、Curses库和CMake版本问题。
摘要由CSDN通过智能技术生成

mysql编译安装

1.下载mysql源码包

6bebd5da5f3e94d724444144ef941303.png

2.使用cmake进行预编译

yum install cmake -y

#编译参数

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DMYSQL_DATADIR=/data/mysql/ \

-DSYSCONFDIR=/etc \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DWITH_XTRADB_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EXTRA_CHARSETS=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_BIG_TABLES=1 \

-DWITH_DEBUG=0 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost

备注:mysql5.7的编译需指定boost,即:DWITH_BOOST=/usr/local/boost或者-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

预编译过程错误处理:

CMake Error at cmake/boost.cmake:88 (MESSAGE):

You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=

解决办法是:

1).在/usr/local下创建一个名为boost的文件夹

mkdir -p /usr/local/boost

2).进入这个新创建的文件夹然后下载boost

wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

3).解压

tar -xvzf boost_1_59_0.tar.gz

再次预编译即可

2.Cannot find appropriate system libraries for WITH_SSL=system.

Make sure you have specified a supported SSL version.

CMake Error at cmake/ssl.cmake:63 (MESSAGE):

Please install the appropriate openssl developer package.

解决办法:

yum install openssl -y

3.-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:71 (MESSAGE):

Curses library not found.  Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

解决办法:

1)删除

rm -f CMakeCache.txt

2)安装

yum install ncurses-devel -y

4.CMake Error at extra/libevent/libevent-2.1.11-stable/CMakeLists.txt:22 (cmake_minimum_required):

CMake 2.8.12.2 or higher is required.  You are running version 2.8.11

解决办法:

需要升级cmake 版本

下载能满足需求的cmake版本

cmake-3.18.1.tar.gz

将原来yum安装的cmake卸载

yum remove cmake -y

将cmake-3.18.1.tar.gz移动的/usr/local/目录下

tar -xzvf cmake-3.18.1.tar.gz

解压之后将cmake目录下的bin

vim /etc/profile

export PATH=$PATH:/usr/local/cmake/bin

source /etc/profile

cmake --version

ccmaek --version

即可使用高版本的camke

编译和安装

make && make install

三、创建目录

## mysql数据文件所在目录

mkdir -p /usr/local/mysql/data

## 日志目录

mkdir -p /usr/local/mysql/log/

## redolog目录

mkdir -p /usr/local/mysql/redolog/

## undoLog目录

mkdir -p /usr/local/mysql/undolog/

四、权限设置

## 先创建mysql组和mysql用户

groupadd mysql

useradd -g mysql mysql -M

## 对mysql文件和目录授权

chown -R mysql:mysql /usr/local/mysql/*

chown -R mysql:mysql /etc/my.cnf

五、初始化

mysqld --defaults-file=/etc/my.cnf  --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp

备注在data目录下执行该命令,且保证data目录为空

执行过程中的报错

ac221f07c37194a3f464e564e9db8bc6.png

执行成功截图(看到密码则表示成功)

2664901548737bae1d4b340b5f77959f.png

编辑配置文件/etc/my.cnf

9e567200574c5583f4d01beb68c94fb5.png

[client]

port=3306

socket=/tmp/mysql.sock

[mysqld]

# Disabling symbolic-links is recommended to prevent assorted security risks

#symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port=3306

socket=/tmp/mysql.sock

bind-address=localhost

pid-file=/usr/local/mysql/data/mysql.pid

skip-external-locking

[mysqld_safe]

log-error=/usr/local/mysql/log/mysql.log

pid-file=/usr/loacl/mysql/data/mysql.pid

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

给mysql增加执行权限并加入开机自动启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

cd /etc/init.d/

chmod +x mysqld

chkconfig --add mysql

如果有报错“bash: mysqld: command not found..”

fbb520e057153ac31faef3d03de1201b.png

解决办法:

按照截图检查配置文件

/etc/profile中增加如下内容:

export PATH=$PATH:/usr/local/mysql/bin

## mysql启动

service mysqld start

登录mysql

mysql -uroot -p

9b4fa8451fec905199d524e476c36fee.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值