centos源码编译安装Mysql8

下载安装包





官网网址为 https://downloads.mysql.com/archives/community/
- 进入到这个网址 选择版本号 源码安装 以及操作系统 如图1所示
- 往下翻 找到如图2所示的文件 要含boost的 然后点击下载
- 在/usr/local/ 下面创建一个文件夹 名为mysql 把刚刚下好的安装包放到这个下面 如图3所示
mysql系统用户

输入命令 groupadd mysql 创建用户组
输入命令 useradd -r -g mysql -s /bin/false mysql 创建用户 如图所示
useradd
:创建一个新的用户。-r
:创建一个“系统用户(system user)”,通常用于系统服务进程,而非普通登录用户。系统用户的 UID 通常小于 1000(或具体系统设置)。-g mysql
:指定用户所属的主组为mysql
。这个组必须已经存在。-s /bin/false
:指定该用户的登录 shell 为/bin/false
,意思是禁止该用户登录系统。mysql
(最后这个):要创建的用户名,也叫mysql
。
安装编译环境




先更新yum源
然后 安装编译工具链 输入以下命令
这个可选择
安装完之后如图所示
解压

输入命令 sudo tar xzvf mysql-boost-8.3.0.tar.gz -C ./
参数解释:
tar
:Linux 中用于打包和解包.tar
文件的命令。x
:extract,表示解压。z
:gzip,表示这个包是.gz
压缩格式的,用 gzip 解压。v
:verbose,解压过程中显示详细文件信息。f
:file,表示后面跟的是文件名。mysql-boost-5.7.27.tar.gz
:要解压的目标文件。-C /usr/local/
:指定解压到的目录为/usr/local/
编译





如果出现报错看步骤6
- 输入命令 mkdir -p build && cd build
- cd mysql-8.3.0/boost/ 进入到mysql的boost路径下 查看这个文件夹下面的文件名称 记住
- 预编译 成功如图2
- sudo cmake .. \
-DWITH_BOOST=boost/boost_1_77_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DCMAKE_C_COMPILER=/usr/local/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/local/bin/g++
参数详解:
-DWITH_BOOST=boost/boost_1_77_0/ \刚刚查询到的boots 的路径
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录
-DSYSCONFDIR=/etc \ 配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据目录 错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \ 帮助文档
-DMYSQL_TCP_PORT=3306 \ 默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \ 默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \ 扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \ 支持的
-DWITH_READLINE=1 \ 上下翻历史命令
-DWITH_SSL=system \ 使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \ 嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \ 从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 默认的存储引擎,支持外键
-DCMAKE_C_COMPILER=/usr/local/bin/gcc \ gcc的路径
-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ g++ 的路径
- 输入命令 sudo make -j 4 进行编译 如图3
解决问题




如图1所示的错误 是 cmake 版本太低了 需要升级版本
# 查看当前版本
cmake --version
# 如果存在低版本,则需要先删除当前版本
yum -y remove cmake
# 安装相关依赖
yum install -y gcc gcc-c++ build-essential autoconf libtool pkg-config
# 下载压缩包
wget https://cmake.org/files/v4.0/cmake-4.0.2.tar.gz --no-check-certificate
# 解压到某个目录下
tar -zxvf cmake-3.5.2.tar.gz
# 安装
cd cmake-4.0.2
./bootstrap
make install
# 验证是否安装成功
cmake --version
如图2所示的报错是gcc版本太低了 需要升级版本
1.安装依赖:yum -y install bzip2 gcc gcc-c++
2.下载二进制包:wget http://mirrors.hust.edu.cn/gnu/gcc/gcc-
10.5.0/gcc-10.5.0.tar.gz
3. 解压: tar zxvf gcc-10.5.0.tar.gz
4.进入目录:cd gcc-10.5.0
5.下载必要依赖:./contrlib/download prerequisites
创建编译目录:mkdir build && cd build
6.预编译:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
7. 编译:make -j $( grep processor /proc/cpuinfo|wc -l)
8.安装:make instal1
初始化mysql

# cd /usr/local/mysql
# chown -R mysql.mysql .
# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
---初始化完成之后,在最后一行会出现登录密码, 如图所示 红框圈出赖的部分
一定要记住提示最后的密码用于登陆或者修改密码 大家截图或者复制保存一份
然后更改配置文件大家自行更改即可 这边就不介绍了
修改密码

- 输入 mysql -u root -p 然后查看刚刚看的密码
- ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 输入这个修改密码
- FLUSH PRIVILEGES; 使密码生效 如图所示
远程连接

- 首先记得关闭防火墙 服务器的 和云平台的都要关闭
- 连接服务器: mysql -u root -p
- 2. 输入密码后登录到mysql中
- 3. 查看所有数据库: show databases;
- 4. 进入mysql数据库: use mysql;
- 5. 查看mysql数据库中的表: show tables;
- 6. 查看user表中的host.user数据 : select Host, User from user;
- 7. 修改user表中的Host: update user set Host='%' where User='root';
- 8. 最后刷新一下: flush privileges;











