MySQL 5.7 源码编译安装指南一、下载下载地址https://downloads.mysql.com/archives/community/二、部署2.1 卸载mariadbMariaDB 和 MySQL 默认都使用 3306 端口如果同时运行会报错等原因。# 卸载yum remove-ymariadb mariadb-server mariadb-libs# 检查是否还有未删除的包rpm-qa|grepmariadb# 清理 yum 的缓存yum clean all2.2 安装依赖包yuminstall-ygitgcc gcc-c glibc libtoolmakecmake ncurses ncurses-devel libtirpc libtirpc-devel libarchive openssl openssl-devel rpcgen libaio libaio-devel bison bison-devel perl perl-devel2.3 创建用户和组sudogroupaddmysqlsudouseradd-r-gmysql-s/bin/nologin mysqlsudomkdir-p/usr/local/mysql/datasudomkdir-p/usr/local/mysql/logssudomkdir-p/var/run/mysqldsudochown-Rmysql:mysql /usr/local/mysqlsudochown-Rmysql:mysql /var/run/mysqld2.4 解压源码cd/opt/mysqltar-zxvfmysql-boost-5.7.44.tar.gzcdmysql-5.7.44# 创建目录进入mkdirbuildcdbuild2.5 cmake 配置cmake..\-DCMAKE_INSTALL_PREFIX/usr/local/mysql\-DMYSQL_DATADIR/usr/local/mysql/data\-DSYSCONFDIR/etc\-DMYSQL_UNIX_ADDR/var/run/mysqld/mysqld.sock\-DWITH_BOOST../boost\-DDEFAULT_CHARSETutf8mb4\-DDEFAULT_COLLATIONutf8mb4_unicode_ci\-DWITH_INNOBASE_STORAGE_ENGINE1\-DWITH_MYISAM_STORAGE_ENGINE1\-DENABLED_LOCAL_INFILE1\-DWITH_SSLsystem\-DMYSQL_TCP_PORT33062.6 编译安装make-j$(nproc)sudomakeinstall2.7 创建配置文件sudotee/etc/my.cnf/dev/nullEOF [mysqld] basedir/usr/local/mysql datadir/usr/local/mysql/data socket/var/run/mysqld/mysqld.sock pid-file/var/run/mysqld/mysqld.pid log-error/usr/local/mysql/logs/error.log port3306 character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci default-storage-engineINNODB max_connections500 ​ [mysql] socket/var/run/mysqld/mysqld.sock ​ [client] socket/var/run/mysqld/mysqld.sock EOF2.8 初始化数据库sudo/usr/local/mysql/bin/mysqld--initialize--usermysql--basedir/usr/local/mysql--datadir/usr/local/mysql/data2.9 查看临时密码sudogreptemporary password/usr/local/mysql/logs/error.log2.10 创建 systemd 服务并启动sudotee/etc/systemd/system/mysqld.service/dev/nullEOF [Unit] DescriptionMySQL Server Afternetwork.target [Service] Typeforking Usermysql Groupmysql PIDFile/var/run/mysqld/mysqld.pid ExecStart/usr/local/mysql/bin/mysqld --defaults-file/etc/my.cnf Restarton-failure LimitNOFILE65535 [Install] WantedBymulti-user.target EOF# 启动服务sudosystemctl daemon-reloadsudosystemctl start mysqldsudosystemctlenablemysqld2.11 配置环境变量echoexport PATH/usr/local/mysql/bin:$PATH|sudotee-a/etc/profilesource/etc/profile2.12 修改密码# 修改密码mysql-uroot-p临时密码--connect-expired-password-eALTER USER rootlocalhost IDENTIFIED BY 你的新密码;如果密码不对跳过认证修改# 停掉 mysqlsystemctl stop mysqld# 跳过权限启动/usr/local/mysql/bin/mysqld --defaults-file/etc/my.cnf --skip-grant-tables--usermysql# 等几秒后登录mysql-uroot# 重置密码FLUSH PRIVILEGES;ALTERUSERrootlocalhostIDENTIFIED BY你的新密码;FLUSH PRIVILEGES;exit;# 杀掉进程正常启动kill$(pgrep mysqld)systemctl start mysqld# 用新密码登录mysql-uroot-p