二进制文件安装mysql
系统版本
[yyq@rocky ~]$ cat /etc/redhat-release
Rocky Linux release 9.5 (Blue Onyx)
第一步:创建组和用户
[root@rocky ~]# groupadd -r mysql
[root@rocky ~]# useradd -r -g mysql -s /sbin/nologin mysql
第二步:下载包
[root@rocky ~]# wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
#注意,有很多网站不维护了,需要自己找一下。可以在阿里云仓库搜索。
第三步:解压到指定目录
[root@rocky ~]# tar xf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
第四步:修改目录名称
[root@rocky ~]#cd /usr/local/
[root@rocky ~]#mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
第五步:增加环境变量
[root@rocky local]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
#使配置文件生效
[root@rocky local]# source /etc/profile.d/mysql.sh
第六步:创建主配置文件
[root@rocky local]# cat /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
第七步:创建数据目录
[root@rocky local]# mkdir -pv /data/mysql
第八步:初始化数据,生成随机密码
[root@rocky local]# mysqld --initialize --user=mysql --datadir=/data/mysq
#注意:上面配置了环境变量,所以这里在任意位置使用mysqld命令,如果没有配置环境变量,就需要到/usr/local/mysql/bin下执行
第九步:查看初始化密码
[root@rocky local]# grep password /data/mysql/mysql.log
2025-01-14T08:18:02.918779Z 1 [Note] A temporary password is generated for root@localhost: YTpUalgHq8;d
第十步:创建 MySQL 系统服务文件
#使用systemctl 管理mysql服务
[root@rocky system]# tee /etc/systemd/system/mysql.service << EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --socket=/data/mysql/mysql.sock --pid-file=/data/mysql/mysql.pid --user=mysql
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
User=mysql
Group=mysql
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --socket=/data/mysql/mysql.sock --pid-file=/data/mysql/mysql.pid --user=mysql
ExecReload=/bin/kill -s HUP
ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
User=mysql
Group=mysql
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
#重新加载 systemd 配置
[root@rocky system]# systemctl daemon-reload
第十一步:启动mysql
#设置开机自启
[root@rocky system]# systemctl enable mysql
#启用 MySQL 服务
[root@rocky system]# systemctl start mysql
第十二步:测试连接
[root@rocky system]# mysql -uroot -p'YTpUalgHq8;d'
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
发现报错了,于是查询系统是否有libncurses.so.5文件
[root@rocky system]# find / -name 'libncurses*'
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/lib/x86_64-linux-gnu/libncursesw.so.6
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/lib/x86_64-linux-gnu/libncursesw.so.6.2
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/usr/share/doc/libncursesw6
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/var/lib/dpkg/info/libncursesw6:amd64.list
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/var/lib/dpkg/info/libncursesw6:amd64.md5sums
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/var/lib/dpkg/info/libncursesw6:amd64.shlibs
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/var/lib/dpkg/info/libncursesw6:amd64.symbols
/var/lib/docker/overlay2/3fb7443c046c5e12605b5b302406d5347826a4548a452a01d407d9795e53fd12/diff/var/lib/dpkg/info/libncursesw6:amd64.triggers
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/lib/x86_64-linux-gnu/libncurses.so.6
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/lib/x86_64-linux-gnu/libncurses.so.6.2
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/usr/share/doc/libncurses6
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/var/lib/dpkg/info/libncurses6:amd64.list
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/var/lib/dpkg/info/libncurses6:amd64.md5sums
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/var/lib/dpkg/info/libncurses6:amd64.shlibs
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/var/lib/dpkg/info/libncurses6:amd64.symbols
/var/lib/docker/overlay2/3d2e79807fb70eacf5973c0fb225fa65b206e800c21bc271efd13372de16f6d5/diff/var/lib/dpkg/info/libncurses6:amd64.triggers
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses++.so.5
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses++.so.5.9
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses++w.so.5
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses++w.so.5.9
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses.so.5
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncurses.so.5.9
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncursesw.so.5
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libncursesw.so.5.9
/usr/lib64/libncurses.so.6
/usr/lib64/libncurses.so.6.2
/usr/lib64/libncursesw.so.6
/usr/lib64/libncursesw.so.6.2
/usr/lib64/libncurses++w.so.6
/usr/lib64/libncurses++w.so.6.2
/usr/lib64/libncurses++.so.6
/usr/lib64/libncurses++.so.6.2
发现没有,但是有libncurses.so.6,那好办,创建一个软连接即可
[root@rocky system]# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
再次连接
[root@rocky system]# mysql -uroot -p'YTpUalgHq8;d'
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
发现又报错了,使用同样的方法
[root@rocky system]# find / -name 'libtinfo.so*'
/var/lib/docker/overlay2/dde0cd00f75c2a0de02ce10cb56219eb914eecfc2f6f3af9bd0eac78c4576686/diff/lib/x86_64-linux-gnu/libtinfo.so.6
/var/lib/docker/overlay2/dde0cd00f75c2a0de02ce10cb56219eb914eecfc2f6f3af9bd0eac78c4576686/diff/lib/x86_64-linux-gnu/libtinfo.so.6.2
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libtinfo.so.5
/var/lib/docker/overlay2/5bd813739c6aa422af4cad9611ae5369ccc8e106a7c2e452b6c6502b03729c5a/diff/usr/lib64/libtinfo.so.5.9
/usr/lib64/libtinfo.so.6
/usr/lib64/libtinfo.so.6.2
发现有libtinfo.so.6 ,再次创建一个软连接
[root@rocky system]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
再次登录
[root@rocky system]# mysql -uroot -p'YTpUalgHq8;d'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.37
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
成功。