会选择使用源码安装MySQL,想必对MySQL及其余的安装方式已经有了必定的了解,这里就不对周边信息进行过多赘述了,直接开始吧。html
编译MySQL比较消耗内存,若是机器内存较小,可能会在编译期间出现内存不足的异常。若没有设置swap分区的能够设置swap分区来解决,不然只能扩容内存了:mysql
[root@txy-server ~]# dd if=/dev/zero of=/swapfile bs=1k count=2048000 [root@txy-server ~]# mkswap /swapfile [root@txy-server ~]# swapon /swapfile
1.一、使用yum命令安装编译所依赖的包及工具:linux
[root@txy-server ~]# yum install -y cmake3 git gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel
因为编译MySQL时对gcc的版本要求是5.3以上,因此咱们须要先升级一下gcc的版本,由于yum安装目前最新版本只到4.8.5。c++
升级gcc版本的方式主要有两种,一种是下载源码包进行编译安装,一种是使用yum安装devtoolset包,目前devtoolset包里的gcc版本为5.3.1。git
而源码安装的方式比较灵活能够选择任意版本,但很是耗时。这里两种方式都会介绍,能够自行视状况选择。sql
1.1.一、使用yum安装devtoolset包,命令以下:数据库
[root@txy-server ~]# yum install -y centos-release-scl scl-utils-build [root@txy-server ~]# yum install -y devtoolset-4-gcc.x86_64 devtoolset-4-gcc-c++.x86_64 devtoolset-4-gcc-gdb-plugin.x86_64
1.1.二、建立软件连接,覆盖/usr/bin
下的gcc相关命令,由于编译MySQL时默认会去/usr/bin
目录下找gcc相关的命令:vim
[root@txy-server ~]# ln -sf /opt/rh/devtoolset-4/root/usr/bin/* /usr/bin/
1.1.三、最后验证一下gcc、cc、c++等命令的版本是否为5.3.1:centos
[root@txy-server ~]# gcc -v ... gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC) [root@txy-server ~]# cc -v ... gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC) [root@txy-server ~]# c++ -v ... gcc version 5.3.1 20160406 (Red Hat 5.3.1-6) (GCC)
1.2.一、如下是源码安装的方式,首先下载GCC源码安装包并解压缩:bash
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz [root@txy-server /usr/local/src]# tar -xzvf gcc-9.1.0.tar.gz
1.2.二、进入解压后的目录,运行download_prerequisites
脚本,该脚本会自动下载编译时所须要的依赖文件和库:
[root@txy-server /usr/local/src]# cd gcc-9.1.0 [root@txy-server /usr/local/src/gcc-9.1.0]# ./contrib/download_prerequisites
1.2.三、创建输出目录,将全部的中间文件都放到该目录下:
[root@txy-server /usr/local/src/gcc-9.1.0]# mkdir gcc-build-9.1.0
1.2.四、进入新建的目录,并完成编译配置:
[root@txy-server /usr/local/src/gcc-9.1.0]# cd gcc-build-9.1.0 [root@txy-server /usr/local/src/gcc-9.1.0/gcc-build-9.1.0]# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
参数说明:
–enable-languages
:让gcc支持哪些语言–disable-multilib
:不生成编译为其余平台可执行代码的交叉编译器–disable-checking
:生成的编译器在编译过程当中不作额外检查,也可使用–enable-checking=xxx
来增长一些检查1.2.五、接着就能够进行编译安装了:
[root@txy-server /usr/local/src/gcc-9.1.0/gcc-build-9.1.0]# make && make install
1.2.六、建立软件连接,覆盖/usr/bin
下的gcc相关命令,由于编译MySQL时默认会去/usr/bin
目录下找gcc相关的命令:
[root@txy-server ~]# ln -sf /usr/local/bin/* /usr/bin/
1.2.七、最后验证一下gcc版本是否为9.1.0,以下表明安装成功:
[root@txy-server ~]# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/9.1.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib Thread model: posix gcc version 9.1.0 (GCC) [root@txy-server ~]#
2.一、进入MySQL官网下载地址:
2.二、复制源码包的下载连接:
2.三、到Linux上下载并解压源码包:
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.18.tar.gz [root@txy-server /usr/local/src]# tar -zxvf mysql-boost-8.0.18.tar.gz
2.四、进入解压后的目录,参照以下命令步骤完成编译安装:
# 建立数据文件存放目录 [root@txy-server /usr/local/src]# mkdir -p /data/mysql [root@txy-server /usr/local/src]# cd mysql-8.0.18/ # 新建目录,存放编译产生的中间文件。由于不容许在源码目录下进行编译 [root@txy-server /usr/local/src/mysql-8.0.18]# mkdir builder [root@txy-server /usr/local/src/mysql-8.0.18]# cd builder/ [root@txy-server /usr/local/src/mysql-8.0.18/builder]# cmake3 ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost [root@txy-server /usr/local/src/mysql-8.0.18/builder]# make && make install
cmake3
命令所使用的参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
:MySQL安装的根目录-DMYSQL_DATADIR=/data/mysql
:数据文件所存放的目录-DSYSCONFDIR=/etc
:MySQL配置文件所在目录-DMYSQL_USER=mysql
:MySQL服务的用户名-DWITH_MYISAM_STORAGE_ENGINE=1
:安装MyISAM引擎-DWITH_INNOBASE_STORAGE_ENGINE=1
:安装InnoDB引擎-DWITH_ARCHIVE_STORAGE_ENGINE=1
:安装Archive引擎-DWITH_MEMORY_STORAGE_ENGINE=1
:安装Memory引擎-DWITH_FEDERATED_STORAGE_ENGINE=1
:安装Federated引擎-DWITH_PARTITION_STORAGE_ENGINE=1
:安装Partition引擎-DWITH_READLINE=1
:MySQL的readline library-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
:sock文件的路径-DMYSQL_TCP_PORT=3306
:MySQL的监听端口-DENABLED_LOCAL_INFILE=1
:启用加载本地数据-DENABLE_DOWNLOADS=1
:编译时容许自主下载相关文件-DEXTRA_CHARSETS=all
:使MySQL支持全部的扩展字符-DDEFAULT_CHARSET=utf8mb4
:设置默认字符集为utf8mb4-DDEFAULT_COLLATION=utf8mb4_general_ci
:设置默认字符校对-DWITH_DEBUG=0
:禁用调试模式-DMYSQL_MAINTAINER_MODE=0
:是否启用mysql维护器特定的开发环境-DDOWNLOAD_BOOST=1
:容许在线更新boost库-DWITH_BOOST=../boost
:指定boost安装路径关于cmake3
所支持的参数能够到官网文档进行查询:
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
2.五、编译安装完成后,建立mysql用户及更改相应目录的属主:
[root@txy-server ~]# groupadd mysql [root@txy-server ~]# useradd -M -g mysql -s /sbin/nologin mysql [root@txy-server ~]# chown -R mysql:mysql /usr/local/mysql/ [root@txy-server ~]# chown -R mysql:mysql /data/mysql/
2.六、编辑配置文件:
[root@txy-server ~]# vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock [mysqld_safe] log-error=/var/log/mysqld/mysqld.log pid-file=/var/run/mysqld/mysql.pid
2.七、建立日志文件存放的目录和pid文件存放的目录,并赋权给mysql用户:
[root@txy-server ~]# mkdir -p /var/log/mysqld /var/run/mysqld [root@txy-server ~]# chown -R mysql:mysql /var/log/mysqld [root@txy-server ~]# chown -R mysql:mysql /var/run/mysqld
2.八、配置环境变量,方便使用MySQL的命令:
[root@txy-server ~]# vim /etc/profile export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin [root@txy-server ~]# source /etc/profile [root@txy-server ~]# mysql --version # 验证配置是否成功 mysql Ver 8.0.18 for Linux on x86_64 (Source distribution) [root@txy-server ~]#
2.九、执行以下命令初始化数据库:
[root@txy-server ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql
初始化成功后会生成root帐户的默认密码,以下图所示:
将该密码复制并保存,由于后面须要使用该密码登陆到MySQL中修改密码
2.十、将MySQL生成的启动文件复制到/usr/lib/systemd/system/
目录下:
[root@txy-server ~]# cp /usr/local/src/mysql-8.0.18/builder/scripts/mysqld.service /usr/lib/systemd/system/ [root@txy-server ~]# chown 775 /usr/lib/systemd/system/mysqld.service
2.十一、使用systemctl
命令启动MySQL服务:
[root@txy-server ~]# systemctl start mysqld
2.十二、查看3306端口是否已正常监听:
[root@txy-server ~]# netstat -lntp |grep 3306 tcp6 0 0 :::33060 :::* LISTEN 27363/mysqld tcp6 0 0 :::3306 :::* LISTEN 27363/mysqld [root@txy-server ~]#
2.1三、使用默认密码登陆MySQL,并重置密码及开放远程登陆:
[root@txy-server ~]# mysql -uroot -pmXyfy/g8\)aus mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; # 重置密码 mysql> use mysql; mysql> update user set host ='%' where user='root'; # 开放远程登陆 mysql> FLUSH PRIVILEGES; # 刷新修改
2.1四、使用可视化工具进行远程链接,测试下是否能正常对MySQL进行访问:
end