Linux下手动安装部署MySQL8.4

        MySQL的版本已经更新到8.4.8LTS, 这是一个长期支持版本, 在工作框架需求不是特别死板的情况下,我们可以考虑使用最新的MySQL版本,尝试使用其新功能特性.下面楼主我介绍一种比较方便的安装MySQL的方法, 比起手动编译更简单, 比起在线安装更便捷.

MySQL可以到(MySQL :: Download MySQL Community Server)这里下载,选择最新稳定版mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xz, 也可以选择mysql-8.4.8-linux-glibc2.28-x86_64, 但这个版本包含了其他用不到的嵌入式版本,所有这里以简便为主.如图:

 图片1

 

系统选择最新的Rocky Linux Rocky-10.1-x86_64-minimal, 安装镜像可以到各大高校的同步镜像去下载.安装rocky的过程这里不是重点,不进行赘述.事实上的情况是, 只要linux系统的glibc的版本大于或者等于MySQL使用的glibc编译版本就可以.查看glibc版本号的方法如下命令:

 

# ldd --version

Redhat Enterprise, 系统glibc的版本分布如下

Redhat Enterprise(CentOS/Rocky/Alma)版本

Gblic版本

支持MySQLglibc编译依赖包的版本

6.X

ldd (GNU libc) 2.12

最高mysql-5.7.44-linux-glibc2.12

7.X

ldd (GNU libc) 2.17

向下兼容, 最高glibc2.17编译的版本

8.X

ldd (GNU libc) 2.28

向下兼容, 最高glibc2.28编译的版本

9.X

ldd (GNU libc) 2.34

向下兼容, 最高glibc2.34编译的版本

10.X

ldd (GNU libc) 2.39

向下兼容, 最高glibc2.39编译的版本

 

接下来开始安装mysql

上传压缩包mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xzrocky/opt目录下

解压,做链接:

# cd /opt/

# xz -d mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar.xz

# tar xvf mysql-8.4.8-linux-glibc2.28-x86_64-minimal.tar

# ln -s /opt/mysql-8.4.8-linux-glibc2.28-x86_64-minimal /opt/mysql

 

创建mysql用户

# useradd -r -s /sbin/nologin mysql

 

创建工作目录:

# mkdir -p /opt/mysql/run ; mkdir -p /opt/mysql/data

# mkdir -p /opt/mysql/logs; mkdir -p /opt/mysql/etc

 

授权工作目录

# chown -R mysql.mysql /opt/mysql/run ; chown -R mysql.mysql /opt/mysql/logs

# chown -R mysql.mysql /opt/mysql/data; chown -R mysql.mysql /opt/mysql/etc

 

 

生成配置文件

# cat > /opt/mysql/etc/my.cnf << EOF

[client]

socket = /opt/mysql/run/mysql.sock

 

[mysql]

 

[mysqld]

port = 3306

socket = /opt/mysql/run/mysql.sock

pid-file=/opt/mysql/run/mysqld.pid

log-error=/opt/mysql/logs/mysqld.log

 

basedir=/opt/mysql

datadir=/opt/mysql/data

 

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

skip-external-locking

lower_case_table_names=1

 

#skip-grant-tables

EOF

# ln -s /opt/mysql/etc/my.cnf /etc/my.cnf

 

--8.x及以上的rhel linux版本,都要做库连接

#  ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

#  ln -s /usr/lib64/libncurses.so.6 /usr/lib/libncurses.so.5

#  ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

#  ln -s /usr/lib64/libtinfo.so.6 /usr/lib/libtinfo.so.5

 

 

把命令行加入PATH

# echo "export PATH=$PATH:/opt/mysql/bin" > /etc/profile.d/mysql.sh && chmod a+x /etc/profile.d/mysql.sh && source /etc/profile.d/mysql.sh

# mysql --version

 

初始化数据库

# mysqld --initialize-insecure --lower-case-table-names=1 --defaults-file=/opt/mysql/etc/my.cnf --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data

# mysql_ssl_rsa_setup --datadir=/opt/mysql/data

 

 

#构建MySQL服务

# cat > /etc/systemd/system/mysqld.service << EOF

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/opt/mysql/bin/mysqld --defaults-file=/opt/mysql/etc/my.cnf

LimitNOFILE = 5000

EOF

--启动服务

# systemctl daemon-reload

# systemctl enable --now mysqld

# systemctl restart mysqld

# systemctl status mysqld

 

 

-- 修改密码,允许远程登录

# password='fj#ka98uBW2jimfw38fh'

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '${password}';ALTER USER 'root'@'localhost' IDENTIFIED BY '${password}' PASSWORD EXPIRE NEVER;UPDATE mysql.user SET host='%' WHERE User='root' AND Host='localhost';"|mysql -u"root"

--检查结果

# echo "select host,user from mysql.user"|mysql -uroot -p"${password}"

 

--防火墙开放端口

# firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload && firewall-cmd --list-all

 

到这里mysql的基本安装过程已经完成. 其他的各类mysql应用场景(olap/oltp)优化可以在此基础上对my.cnf进行修改.

posted @ 2026-04-15 09:24  半岛拖鞋  阅读(22)  评论(0)    收藏  举报