赞
踩
官网下载地址 选择合适自己的版本下载
Anolis 虚拟机已安装,建议用全新环境安装,避免出现奇怪报错
安装
## 1.安装 yum install -y perl-CPAN ## 2.进入 perl shell 中 perl -MCPAN -e shell ## 3.添加阿里云的源地址(可删除默认的配置,否则不一定会走阿里源下载) o conf urllist remove 0 o conf urllist push http://mirrors.aliyun.com/CPAN/ ## 4.确认添加 o conf commit ## 5.安装缺少的模块 install IPC/Cmd.pm ## 6.安装依赖库 yum -y install gcc gcc-c++ glibc make cmake autoconf openssl openssl-devel pcre-devel pam-devel rpcgen ## 7.解压缩 tar zxvf openssl-3.1.1.tar.gz ## 8.进入解压后的目录 cd openssl-3.1.1/ ## 9.编译配置(可以指定安装位置: ./config --prefix=/usr/local/openssl) ./config ## 10.编译和安装 make -j8 && make install ## 11.备份 mv /usr/bin/openssl /usr/bin/openssl.bak ## 12.创建软连接 ln -s /usr/local/bin/openssl /usr/bin/openssl ln -sf /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3 ln -sf /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 ## 13.配置库 echo '/usr/lib64/libssl.so.3' >> /etc/ld.so.conf echo '/usr/lib64/libcrypto.so.3' >> /etc/ld.so.conf ## 14.刷新库 ldconfig ## 15.查看版本 openssl version
安装 IPC/Cmd.pm
配置、编译和安装 OpenSSL
查看版本
## 1.查看 GLIBC 版本(需要依赖 GLIBC_2.33 或 GLIBC_2.34 )
strings /lib64/libc.so.6 |grep GLIBC_
## 2.安装高版本 GLIBC
rpm -ivh --force glibc-2.34-72.el9.x86_64.rpm \
glibc-common-2.34-72.el9.x86_64.rpm \
glibc-gconv-extra-2.34-72.el9.x86_64.rpm \
glibc-langpack-aa-2.34-72.el9.x86_64.rpm \
libstdc++-11.4.1-2.1.el9.x86_64.rpm
安装 GLIBC
查看 GLIBC 版本
## 1.创建解压目录 mkdir -p /home/mysql ## 2.解压缩 mysql 到指定位置 tar xvf mysql-8.0.33-1.el9.x86_64.rpm-bundle.tar -C /home/mysql ## 3.进入安装位置并执行安装命令 cd /home/mysql rpm -ivh mysql-community-common-8.0.33-1.el9.x86_64.rpm \ mysql-community-client-plugins-8.0.33-1.el9.x86_64.rpm \ mysql-community-icu-data-files-8.0.33-1.el9.x86_64.rpm \ mysql-community-libs-8.0.33-1.el9.x86_64.rpm \ mysql-community-devel-8.0.33-1.el9.x86_64.rpm \ mysql-community-client-8.0.33-1.el9.x86_64.rpm \ mysql-community-icu-data-files-8.0.33-1.el9.x86_64.rpm \ mysql-community-server-8.0.33-1.el9.x86_64.rpm --force --nodeps ## 4.服务管理 systemctl start mysqld systemctl status mysqld systemctl restart mysqld systemctl stop mysqld ## 5.查看安装时生成的随机密码 cat /var/log/mysqld.log ## 6.设置开机启动 systemctl enable mysqld ## 7.关闭防火墙 systemctl stop firewalld systemctl disable firewalld
解压缩安装包到指定目录
执行安装命令并启动服务查看状态
查看密码
## 登录 mysql -u root -p ## 先重置 root 密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '7X_uFq<3;Efw1'; ## 再修改密码校验策略(数次安装必须先重置密码才能执行其他操作) SET GLOBAL VALIDATE_PASSWORD.POLICY=0; ## 再重置 root 密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; ## 创建一个新用户用于远程访问 CREATE USER 'admin'@'%' IDENTIFIED BY '12345678'; ## 为新账号授权 GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; ## 刷新权限 FLUSH PRIVILEGES; ## 退出 quti
初始化配置
连接配置
连接成功
## 1.停止服务 systemctl stop mysqld ## 2.查看状态 systemctl status mysqld ## 3.查看已安装的 RPM 包 rpm -qa | grep mysql ## 4.卸载 RPM rpm -e `rpm -qa | grep mysql` ## 5.删除残留文件(谨慎操作) rm -rf /root/.mysql_history rm -rf /var/lib/mysql rm -rf /var/log/mysqld.log rm -rf /usr/lib64/mysql rm -rf /usr/lib/firewalld/services/mysql.xml rm -rf /usr/share/mysql-8.0 rm -rf /usr/share/bash-completion/completions/mysql rm -rf /usr/share/bash-completion/completions/mysqladmin rm -rf /usr/share/selinux/targeted/default/active/modules/100/mysql rm -rf /var/lib/selinux/targeted/active/modules/100/mysql rm -rf /etc/systemd/system/multi-user.target.wants/mysqld.service
停止服务、查看 RPM 包。卸载
操作系统选择源码:
选择版本(选择下面自带 boost 的版本,就不用单独下载 boost 了)
建议用全新虚拟机系统环境,避免出现问题,我之前 cmake 通过,但真正 make 时出现 c 文件编译引用方法未定义的问题
本教程针对 Anolis OS release 8.6 系统 全新安装
## 1.解压缩源码包
tar zxvf mysql-8.0.33.tar.gz
## 2.解压 boost
tar zxvf boost_1_77_0.tar.gz -C mysql-8.0.33/
## 3.修改源文件,查看要修改的文件(不修改编译完成后本地登录报错)
find mysql-8.0.33/ -name "*.c" | xargs grep "area = buf"
## 4.找到 842 和 1464 行,注释掉 "char buf[TC_BUFSIZE]"
vim mysql-8.0.33/extra/libedit/libedit-20210910-3.1/src/terminal.c
## 5.将对应 area 改为 NULL
## 1.进入解压后目录
cd mysql-8.0.33/
## 2.安装依赖库
yum -y install gcc gcc-c++ glibc make cmake autoconf openssl openssl-devel pcre-devel pam-devel rpcgen ncurses-devel libtirpc-devel
## 3.创建安装目录
mkdir -p /opt/mysql/data
## 4.安装配置(启用所有的存储引擎、禁用原生 InnoDB、启用 InnoDB Plugin 指定安装目录)
cmake . -DWITH_BOOST=boost_1_77_0 -DWITH_UNIT_TESTS=OFF -DWITH_EMBEDDED_SERVER=OFF -DWITH_INNOBASE_STORAGE_ENGINE=OFF -DWITH_ARCHIVE_STORAGE_ENGINE=ON -DWITH_BLACKHOLE_STORAGE_ENGINE=ON -DWITH_FEDERATED_STORAGE_ENGINE=ON -DWITH_PARTITION_STORAGE_ENGINE=ON -DWITH_ROCKSDB=OFF -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DCMAKE_INSTALL_PREFIX=/opt/mysql -DDEFAULT_LIBMYSQLCLIENT_VERSION=8.0 -DINSTALL_DOCREADER=1 -DINSTALL_MYSQLTEST=OFF -DINSTALL_SQLBENCHDIR=OFF -DCMAKE_BUILD_TYPE=Release -DMYSQL_DATADIR=/opt/mysql/data -DDOWNLOAD_BOOST=1 -DFORCE_INSOURCE_BUILD=1
## 5.编译和安装
make -j4 && make install
cmake 结果,如果编译过程报错,根据提示安装指定依赖库或包即可
编译过程(整个编译和安装比较耗时)
安装记录
查看安装目录
当前启动用户直接使用了 root 用户,可以单独创建 mysql 用户并以其启动,但是注意要为 mysql 用户设置安装目录和数据目录权限
## 1.复制启动项并授权 cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld ## 2.创建配置文件并写入配置信息(/etc/my.cnf 为一个默认位置) touch /etc/my.cnf ## 3.写入以下信息 echo '[mysqld] user=root basedir=/opt/mysql datadir=/opt/mysql/data port=3306 pid-file=/opt/mysql/data/mysql.pid character-set-server=utf8 log_error=/opt/mysql/log/mysql-error.log slow_query_log=1 long_query_time=1 slow_query_log_file=/opt/mysql/log/mysql-slow.log' >> /etc/my.cnf ## 4.创建日志目录并初始化 mkdir -p /opt/mysql/log cd /opt/mysql/bin ./mysqld --initialize --user=root --basedir=/opt/mysql --datadir=/opt/mysql/data ## 5.关闭并禁用防火墙 systemctl stop firewalld && systemctl disable firewalld ## 6.启动服务、查看状态、停止服务 systemctl start mysqld systemctl status mysqld systemctl stop mysqld ## 7.配置环境变量 echo 'export MYSQL_HOME=/opt/mysql' >> /etc/profile echo 'export PATH=${MYSQL_HOME}/bin:${MYSQL_HOME}/lib:${PATH}' >> /etc/profile source /etc/profile
my.cnf 配置
启动 mysql 并查看状态
查看临时密码: cat /opt/mysql/log/mysql-error.log
本地登录:mysql -u root -p 复制上面的密码并输入
## 先重置 root 密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '7X_uFq<3;Efw1'; ## 此处和 RPM 安装不同, 先启用密码校验策略 install plugin validate_password soname 'validate_password.so'; ## 查看 SHOW VARIABLES LIKE 'validate_password%'; ## 重置 SET GLOBAL validate_password_policy=0; ## 再重置 root 密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; ## 创建一个新用户用于远程访问 CREATE USER 'admin'@'%' IDENTIFIED BY '12345678'; ## 为新账号授权 GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; ## 刷新权限 FLUSH PRIVILEGES; ## 退出 quti
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。