题外话:从Centos8.5开始全部转换成Stream版本,Stream属于滚动发行版, 等级L1 (L0-L4请自行百度了解)随着滚动发行该教程会有出入,个人用户可以无视,对于运维、企业管理者来说不同等级的发行版运行的项目不一样。
已在腾讯云轻量云服务器、官方CentOS 9 Stream镜像Minimal版 测试通过
安装编译环境
yum install -y gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc
yum -y install gcc gcc-c++ cmake ncurses-devel bison openssl-devel rpcgen libudev-devel libaio-devel libtirpc-devel
libtirpc-devel 如果下载失败二种方法解决
1.更换源,请自行按地址中的说明更换
https://mirrors.tuna.tsinghua.edu.cn/help/centos-stream/
2 手动安装
rpm -qa | grep libtirpc
结果如下
[root@localhost ~] rpm -qa | grep libtirpc
libtirpc-1.3.3-6.el9.x86_64
注意这里有个 6 随着升级数字也会有变化
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/CRB/x86_64/os/Packages/libtirpc-devel-1.3.3-6.el9.x86_64.rpm
下载、解压、配置
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-8.0.38.tar.gz
tar -zxvf mysql-boost-8.0.38.tar.gz && cd mysql-8.0.38
增加用户和组、建立数据存放文件夹 (全部复制丢进终端即可)
groupadd mysql && useradd mysql -g mysql -M -s /sbin/nologin
mkdir /usr/local/mysql && chown -R mysql:mysql /usr/local/mysql
mkdir /data/mysql && chown -R mysql:mysql /data/mysql
配置
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DSYSCONFDIR=/etc \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DDOWNLOAD_BOOST=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BOOST=/root/mysql-8.0.38/boost \
-DWITH_SYSTEMD=1
注意看第三行 需要增加 -DCMAKE_CXX_FLAGS=”-I/usr/include/tirpc/rpc” 否则报
CMake Error at configure.cmake:337 (MESSAGE):
No mysys timer support detected!
Call Stack (most recent call first):
CMakeLists.txt:1584 (INCLUDE)
这也是绝大部分人第一步就错了,特别强调:不要试图软链 /usr/include/tirpc/rpc 在make的时候会报 googletest 错误 (既然能直接调用为什么还要傻不啦叽的软链使用?吃了一个大亏)
注意看第四行 -DCMAKE_EXE_LINKER_FLAGS=’-ljemalloc’ 这个是选择性增加 如果需要请提前编译 jemalloc否则会报错
编译 (数字4 是有4个CPU 根据CPU来修改)
make -j4
安装 (漫长等待后)
make install
是不是觉得成功了? No No No 么有启动脚本 复制脚本到安装目录
cp support-files/mysql.server.sh /usr/local/mysql/support-files/mysql.server
chmod +x /usr/local/mysql/support-files/mysql.server
cp support-files/mysqld_multi.server /usr/local/mysql/support-files/mysqld_multi.server
chmod +x /usr/local/mysql/support-files/mysql.server
修改MySQL启动项
vi /usr/local/mysql/support-files/mysql.server
查找
basedir=@prefix@ 修改成 basedir=/usr/local/mysql
bindir=@bindir@ 修改成 bindir=/usr/local/mysql/bin
datadir=@localstatedir@ 修改成 datadir=/data/mysql # 这是数据存放目录
sbindir=@sbindir@ 修改成 sbindir=/usr/local/mysql/bin
libexecdir=@sbindir@ 修改成 libexecdir=/usr/local/mysql/bin
mysqld_pid=`@PIDOF@ $libexecdir/mysqld` 修改成 mysqld_pid=`pidof $libexecdir/mysqld`
保存退出 增加增加软链
ln -sf /usr/local/mysql/bin/mysql /usr/bin/
ln -sf /usr/local/mysql/bin/myisamchk /usr/bin/
ln -sf /usr/local/mysql/bin/mysqlcheck /usr/bin/
ln -sf /usr/local/mysql/bin/mysqld_safe /usr/bin/
ln -sf /usr/local/mysql/bin/mysqldump /usr/bin/
ldconfig
增加启动脚本
vi /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Community Server
After=network.target syslog.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/usr/local/mysql/support-files/mysql.server reload
ExecRestart=/usr/local/mysql/support-files/mysql.server restart
Restart=no
PrivateTmp=false
[Install]
WantedBy=multi-user.target
重新加载启动服务 启动MySQL 设置开机启动 查看运行状态
sudo systemctl daemon-reload
sudo systemctl enable mysql.service
sudo systemctl start mysql.service
sudo systemctl status mysql.service
初始化数据库,生成随机密码需备份密码后面要用
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
修改临时密码 使用生成的临时密码登录 123456 替换成正式密码 完成后Ctrl+d 退出
mysql -u root -p
alter user 'root'@'localhost' identified by '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
在MySQL8中 mysql_native_password 会报警告,之后版本可能会完全弃用 程序支持 caching_sha2_password 的话 推荐使用
最后来个效果
[root@localhost ~] systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/etc/systemd/system/mysql.service; enabled; preset: disabled)
Active: active (running) since Mon 2024-07-15 14:50:09 CST; 47s ago
Process: 1015 ExecStart=/usr/local/mysql/support-files/mysql.server start (code=exited, status=0/SUCCESS)
Main PID: 1069 (mysqld_safe)
Tasks: 38 (limit: 48891)
Memory: 780.9M
CPU: 1.108s
CGroup: /system.slice/mysql.service
├─1069 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
└─1959 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdoma>
7月 15 14:50:06 localhost.localdomain systemd[1]: Starting MySQL Community Server…
7月 15 14:50:09 localhost.localdomain mysql.server[1015]: Starting MySQL.. SUCCESS!
7月 15 14:50:09 localhost.localdomain systemd[1]: Started MySQL Community Server.
当前系统版本信息
[root@localhost ~] cat /etc/os-release
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://issues.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
当前内核版本
[root@localhost ~] uname -a
Linux localhost.localdomain 5.14.0-474.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jul 2 17:13:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
评论列表 (0条):
加载更多评论 Loading...