以CentOS-8-Runtime-x86_64.202109为例,其他也适用,何为 “内网” ,镜像都不给你挂载
通用离线安装依赖lib库的套路
第一步:首先得找一个环境相同的联网的环境
第二步:使用将依赖下载下来(使用yum install --downloadonly --downloaddir=/root/soft/本地存储位置 模块名称),上传至离线环境安装
Demo:离线安装cmake所以需要的依赖(cmake源码包安装不在阐述)
yum install --downloadonly --downloaddir=/root/soft/gcc gcc
yum install --downloadonly --downloaddir=/root/soft/gcc++ gcc-c++
yum install --downloadonly --downloaddir=/root/soft/openssl-devel openssl-devel
rpm -ivh *.rpm --nodeps --force
进入正题
下载安装包
下载所需依赖:https://download.csdn.net/download/m0_59492087/86892733
下载cmake,地址:https://cmake.org/files/v3.18/cmake-3.18.1.tar.gz
下载MySQL,注意:得是boost类型的源码包,地址:https://cdn.mysql.com/archives/mysql-8.0/mysql-boost-8.0.24.tar.gz
开始安装
-
解压cmake,进入解压目录,执行./configure
执行完成后,在执行make && make install
安装即可
-
创建MySQL用户并将MySQL用户加入到MySQL用户组中
groupadd mysql
useradd -s /sbin/nologin -g mysql mysql
- 创建MySQL数据目录和日志目录
mkdir /data/mysql
- 到MySQL的解压目录下执行编译命令
cmake -DCMAKE_INSTALL_PREFIX=/opt/app/mysql -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_UNIX_ADDR=/opt/app/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DFORCE_INSOURCE_BUILD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/root/mysql-8.0.24/boost
- 上述命令执行完成后,执行安装命令
make && make install
- 修改配置文件
修改配置文件/etc/my.cnf
[mysqld]
datadir=/data/mysql/data
socket =/opt/app/mysql/mysql.sock
lower_case_table_names=1
character-set-server=utf8
collation-server=utf8_general_ci
skip-name-resolve
user=mysql
[client]
default-character-set=utf8
socket =/opt/app/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/opt/app/mysql
default-character-set=utf8
[mysqld_safe]
err-log=/data/mysql/log/mysqld.log
- 修改日志目录和数据目录以及安装目录的权限
chown -R mysql.mysql /data/mysql/
- 添加MySQL服务
进入到/opt/app/mysql/support-files执行以下命令
cp mysql.server /etc/rc.d/init.d/mysql
- 设置开机启动MySQL
chkconfig --add mysql
chkconfig mysql on
- 将MySQL命令加入到环境变量
ln -s /opt/app/mysql/bin/* /usr/bin/
- 初始化数据库
# 进入到/opt/app/mysql执行
mysqld --initialize --user=mysql --basedir=/opt/app/mysql --datadir=/data/mysql/data
记录MySQL的秘密。
- 启动MySQL服务
service mysql start
- 登录MySQL
mysql -uroot
并回车粘贴密码即可。千万不要用-p指定密码。
- 授予远程连接
use mysql;
update user set host='%' where user='root';
select host, user from user;
grant all privileges on *.* to 'root'@'%' ;
flush privileges ;
问题总结
使用mysqld --console
查看报错
- 安装cmake时可能遇到
xz -d rpcsvc-proto-1.4.1.tar.xz
tar -xvf rpcsvc-proto-1.4.1.tar
cd rpcsvc-proto-1.4.1
./configure
make
make install
-
mysql启动报错
进入文件:vim /etc/my.cnf
在[mysqld]下输入内容:user=mysql
-
mysql启动报错
- 删除/data/mysql/data目录
- 在执行初始化数据库
- 登录报错Segmentation fault (core dumped)
解决方案:
find / -name terminal.c
找到这个文件后修改文件内容,并按照下面的修改
- You must reset your password using ALTER USER statement before executing this statement
# 修改密码
alter user 'root'@'localhost' identified by '123456';