centos7 编译安装 mysql8

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 编译安装 mysql8相关的知识,希望对你有一定的参考价值。

yum -y install gcc gcc++ gcc-c++ wget make libxml2 libxml2-devel  openssl openssl-devel  curl-devel  libjpeg-devel  libpng-devel freetype-devel bison autoconf cmake  bison-devel libaio-devel git  ncurses-devel pcre pcre-devel libffi-devel libffi uuid uuid-devel libuuid-devel gperf

wget -c https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz

wget -c https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12.tar.gz

tar -zxvf mysql-8.0.12.tar.gz

mv boost_1_68_0.tar.gz mysql-8.0.12

cd mysql-8.0.12

mkdir configure

cd configure

cmake .. -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=STANDALONE -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_DTRACE=OFF -DWITH_EMBEDDED_SERVER=OFF -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=bundled -DWITH_ZLIB=system -DWITH_PAM=ON -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-8.0.12/ -DINSTALL_PLUGINDIR="/usr/local/mysql-8.0.12/lib/plugin" -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EDITLINE=bundled -DFEATURE_SET=community -DCOMPILATION_COMMENT="MySQL Server (GPL)" -DWITH_DEBUG=OFF -DWITH_BOOST=..
#如果编译出错  rm -rf CMakeCache.txt 后重新编译

make & make install

#给mysql 创建用户
useradd -M -s /sbin/nologin mysql  #-M 不要自动建立用户的登入目录  -s 用户登入后所使用的shell

mkdir -p /mysql/mysqldata

mkdir -p /var/log/mysql-8.0.12

touch /var/log/mysql-8.0.12/mysql-8.0.12.error.log
touch /var/log/mysql-8.0.12/mysql-8.0.12.error.log0
touch /var/log/mysql-8.0.12/mysql-8.0.12.pid
touch /var/log/mysql-8.0.12/mysql-8.0.12.pid0

chown -R mysql:mysql  /var/log/mysql-8.0.12

#始化数据库 执行完后会给你生成一个密码
/usr/local/mysql-8.0.12/bin/mysqld --initialize --user=mysql --datadir=/mysql/mysqldata

vi /etc/my.cnf
[mysqld]
datadir=/mysql/mysqldata
socket=/tmp/mysql.sock
port=3306
user=mysql
basedir=/usr/local/mysql-8.0.12
#symbolic-links为0表示数据库或表不可以存储在my.cnf中指定datadir之外的分区或目录
symbolic-links=0
pid-file=/var/log/mysql-8.0.12/mysql-8.0.12.pid0
log-error=/var/log/mysql-8.0.12/mysql-8.0.12.error.log0
[mysqld_safe]
log-error=/var/log/mysql-8.0.12/mysql-8.0.12.error.log
pid-file=/var/log/mysql-8.0.12/mysql-8.0.12.pid

#直接启动mysql 
/usr/local/mysql-8.0.12/bin/mysqld --defaults-file=/etc/my.cnf &

ln -s /usr/local/mysql-8.0.12/bin/mysql /usr/local/bin/mysql

#这时可以通过mysql -uroot -p 来测试是否可以连接上  密码是之前初始化数据库时生成的密码
#第一次登录进去需要你修改密码,你可以执行下面的命令
alter  user ‘root‘@‘localhost‘ identified by ‘nihoa‘;

#设置启动脚本
cp /usr/local/mysql-8.0.12/support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld  #修改其中的三个变量为你实际设置的变量
basedir=/usr/local/mysql-8.0.12
datadir=/mysql/mysqldata
mysqld_pid_file_path=/var/log/mysql-8.0.12/mysql-8.0.12.pid0

#现在可以使用/etc/init.d/mysqld 来启动及停止mysql了
/etc/init.d/mysqld start
/etc/init.d/mysqld stop

以上是关于centos7 编译安装 mysql8的主要内容,如果未能解决你的问题,请参考以下文章

centos7安装mysql8找不到安装包?

centos7源码安装MySQL8.0.12

centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法

Arm架构下CentOS7.6操作系统网络离线状态下安装MySQL8

阿里云服务器中Linux下centos7.6安装mysql8.0.11

CentOS7 安装 mysql8