【安装MySQL】二进制安装MySQL
使用二进制方式安装较为简单,也是生产环境中主流方式。
一般选择GA版,发布时间6-12月+,小版本20+
01、清理系统环境
yum -y remove mariadb-libs
02、安装MySQL依赖
yum -y install libaio-devel autoconf
# 如果是centos 8系统,需要增加额外的操作:修改链接库信息
# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
# 或者
# yum install ncurses-compat-libs
03、查看系统C语言库版本
二进制包mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz,其中glibc2.12表示开发MySQL时依赖的C语言版本库。
系统中C语言库版本必须 >= MySQL二进制软件包的版本
[root@db01 ~]# getconf GNU_LIBC_VERSION
glibc 2.17
或者
[root@db01 ~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
04、下载解压二进制包
# 上传或下载二进制包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
# 解压
tar -xvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
# 软链接
ln -s /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
05、配置MySQL环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile && source /etc/profile
或者
echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh && source /etc/profile
06、创建MySQL用户
作为MySQL服务启动的账户,为了系统安全,不允许登录
useradd -s /sbin/nologin -M mysql
07、创建数据存储目录
mkdir -p /data/mysql/data
chown -R mysql.mysql /data/mysql/data
08、初始化数据库
- 如果安装的是v5.6版本,使用以下命令进行初始化:
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/data/mysql/data
- 如果安装v5.7、v8.0版本,使用以下命令进行初始化:
# 不生成密码
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 生成随机密码
/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 注意生成的信息中最后一行包含密码信息:
# 2024-11-27T05:04:40.226776Z 1 [Note] A temporary password is generated for root@localhost: 7i/VVl7TJ-!r
09、编写基础配置文件
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
10、拷贝脚本、启动服务
# 拷贝启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
# 启动服务
# /etc/init.d/mysqld start
# 开机自启动
# chkconfig --add mysqld
# chkconfig --list
11、【可选】使用systemd管理服务(二选一)
方式1:systemd调用/etc/init.d/mysqld
# 1、添加mysqld开机启动
chkconfig mysqld on
# 2、启动服务
systemctl start mysqld
[root@db01 ~]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) # 注意看调用的文件
Active: active (running) since Wed 2024-11-27 13:40:35 CST; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 12437 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mysqld.service
├─12448 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/db01.pid
└─12589 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=db...
Nov 27 13:40:34 db01 systemd[1]: Starting LSB: start and stop MySQL...
Nov 27 13:40:35 db01 mysqld[12437]: Starting MySQL. SUCCESS!
Nov 27 13:40:35 db01 systemd[1]: Started LSB: start and stop MySQL.
方式2:编写mysqld.service启动脚本
# 手动编写mysql服务启动脚本
cat > /usr/lib/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
After=network.target
Wants=multi-user.target
[Service]
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
# 启动服务
systemctl daemon-reload
systemctl enable --now mysqld
12、修改初始密码
如果初始化数据库时产生了随机密码,有以下两种方式修改:
- 方式1:命令行修改
mysqladmin -uroot -p 随机密码 password
输入新密码
- 方式2:进入数据库后修改
mysql -uroot -p 初始密码
alter user root@'localhost' identified by '新密码';
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,完整转载请注明来自 athos.lau