您的位置:博客首页 >> Web服务器 >> 编译安装MySQL8.0

编译安装MySQL8.0

日志编号:274 发表时间: 2020-05-23 18:02:57 关注次数:218
新服务器打算采用MySQL 8.0
现记录、整理相关要点。
yum install bison openssl-devel ncurses-devel



-- Could not find (the correct version of) boost.
-- MySQL currently requires boost_1_70_0   //MySQL提示需要 boost_1_70_0,因此需要下载 boost_1_70_0,注意版本必须是1.70.0
 You can also download boost manually, from
  https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz



mv /home/www/cmake-3.17.2.tar.gz /root/      #编译安装cmake 高版本。centos自带版本太低
tar zxvf cmake-3.17.2.tar.gz

cd cmake-3.17.2
 ./configure
gmake && make install


gcc-5.5.0.tar.gz

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/  //下载gcc

mv /home/www/gcc-5.5.0.tar.gz /root   #编译安装gcc高版本
tar zxvf gcc-5.5.0.tar.gz
cd gcc-5.5.0
./contrib/download_prerequisites

mkdir build && cd build

../configure --enable-checking=release \
--enable-languages=c,c++ --disable-multilib

make && make install  #时间比较长,耐心等待并留意是否出错。


mv /home/www/mysql-8.0.20.tar.gz /root #编译安装MySQL 8.0
tar zxvf mysql-8.0.20.tar.gz
cd mysql-8.0.20

DDEFAULT_SYSCONFIG


cmake .\
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/\
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock\
 -DMYSQL_DATADIR=/usr/local/mysql/data/\
 -DCOMMUNITY_BUILD=ON\
 -DFEATURE_SET=community\
 -DENABLED_PROFILING=ON\
 -DWITH_INNOBASE_STORAGE_ENGINE=1\
 -DWITH_EXAMPLE_STORAGE_ENGINE=0\
 -DWITH_FEDERATED_STORAGE_ENGINE=0\
 -DWITHOUT_CSV_STORAGE_ENGINE=1 \
 -DWITH_PARTITION_STORAGE_ENGINE=0\
 -DENABLED_LOCAL_INFILE=1\
 -DMYSQL_TCP_PORT=3306\
 -DWITH_EXTRA_CHARSETS=complex\
 -DWITH_SSL=system\
 -DWITH_EMBEDDED_SERVER=OFF\
 -DWITH_READLINE=OFF\
 -DMYSQL_USER=mysql\
 -DFORCE_INSOURCE_BUILD=1\
 -DENABLE_DOWNLOADS=1\
 -DCMAKE_C_COMPILER=/usr/local/bin/gcc\
 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++\
 -DWITH_BOOST=/root/boost_1_70_0.tar.gz     #boost_1_70_0.tar.gz存放位置,无需解压


make
make install

这样就编译好了,接下来编辑my.cnf文件:vi /etc/my.cnf。
编辑好后初始化数据库:

/usr/local/mysql/bin/mysqld --initialize --user=mysql  //2选1。
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql    //用这个可以指定my.cnf位置。

接下来留意出错信息,如无出错,则会返回数据库密码如:
 [Server] A temporary password is generated for root@localhost: _sXkOPBl;2aG.
如果出错,可删除 rm -rf /usr/local/mysql/data目录,重新初始化。

/usr/local/mysql/bin/mysqld_safe --user=mysql >nul&

创建用户:
/usr/local/mysql/bin/mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'mima123';
UPDATE mysql.user SET Password = PASSWORD('mima123') WHERE User = 'root';
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'kuhanzhu'@'%' IDENTIFIED BY mima123'; #mysql8.0无效,需要先创建用户,再给权限,如下:

CREATE USER 'kuhanzhu'@'localhost' IDENTIFIED BY "mima123";
GRANT ALL PRIVILEGES ON *.* TO 'kuhanzhu'@'localhost';

这样就可以了。

8.0编译主要改变是: gcc版本、cmake版本、boost版本、创建用户

网上看到my.cnf优化配置文件中有expire_logs_days、query_cache_size ,就可以关闭了,因为mysql 8.0不支持这几句。expire_logs_days则改成了binlog_expire_logs_seconds = 864000   #日志10天
本站不提供讨论功能。
本站所有非新闻类文章均为原创,且禁止转载。
本站为了获得更多流量赚取广告费,难免会有以次充好的文章,望见谅,勿鄙视。