通用二进制格式安装 MySQL
安装相关包
bash
[root@rocky9 ~]#yum -y install libaio numactl-libs ncurses-compat-libs
创建用户和组
bash
[root@rocky9 ~]#groupadd mysql
[root@rocky9 ~]#useradd -r -g mysql -s /bin/false mysql
准备程序文件
bash
[root@rocky9 ~]#wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar
[root@rocky9 ~]#tar xf mysql-8.0.28-linux-glibc2.12-x86_64.tar -C /usr/local/
[root@rocky9 ~]#cd /usr/local/
[root@rocky9 local]#ls
bin games lib libexec mysql-router-8.0.28-linux-glibc2.12-x86_64.tar.xz sbin src
etc include lib64 mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz mysql-test-8.0.28-linux-glibc2.12-x86_64.tar.xz share
[root@rocky9 local]#tar xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
[root@rocky9 local]#chown -R root:root /usr/local/mysql/
准备环境变量
bash
[root@rocky9 ~]#echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@rocky9 ~]#. /etc/profile.d/mysql.sh
准备配置文件
bash
[root@rocky9 ~]#vim /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密码
bash
#/data/mysql 会自动生成,但是/data/必须事先存在
#方式1:生产随机密码
[root@rocky9 ~]#mysqld --initialize --user=mysql --datadir=/data/mysql
#方式2: 生成 root 空密码
[root@rocky9 ~]#mysqld --initialize-insecure --user=mysql --datadir=/data/mysql
准备服务脚本和启动
bash
[root@rocky9 ~]#vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql
PIDFile=/data/mysql/mysql.pid
ExecReload=/bin/kill -HUP $MAINPID
TimeoutSec=600
Restart=on-failure
RestartSec=5s
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
修改MySQL密码
bash
#修改前面生成的随机密码为指定密码
mysqladmin -uroot -p'密码' password caoge
#测试登录
mysql -uroot -pcaoge