本文主要讲解如何在 CentOS7 系统上离线安装 MySQL 数据库。
- 下载安装包
http://dev.mysql.com/downloads/mysql/
- 上传到服务器,解压
(base) [root@master ~]# cd /usr/lib/ruanshubin/
(base) [root@master ruanshubin]# tar -zvxf ./mysql-8.0.28-el7-x86_64.tar.gz
- 创建 mysql 用户
(base) [root@master mysql-8.0.28-el7-x86_64]# groupadd mysql
(base) [root@master mysql-8.0.28-el7-x86_64]# useradd -r -g mysql mysql
- 创建 mysql 数据库的 data 和 log 目录
(base) [root@master ~]# mkdir -p /mnt/disk1/mysql/data
(base) [root@master ~]# mkdir -p /mnt/disk1/mysql/log
- 创建 mysql 的启动配置文件 my.conf
(base) [root@master ~]# cd /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/
(base) [root@master mysql-8.0.28-el7-x86_64]# vim my.conf
[mysqld]
user = mysql
port = 3603
basedir = /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64
datadir = /mnt/disk1/mysql/data
pid-file = /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/mysql.pid
socket = /tmp/mysql.sock
log-error = /mnt/disk1/mysql/log/mysql.log
[mysql_safe]
log-error = /mnt/disk1/mysql/log/mysql.log
pid-file = /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/mysql.pid
- 给 mysql 用户添加上各MySQL目录的操作权限
(base) [root@master ruanshubin]# chown -R mysql:mysql /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64
(base) [root@master ruanshubin]# chown -R mysql:mysql /mnt/disk1/mysql
- 初始化数据库,生成初始密码并记录
(base) [root@master bin]# ./mysqld --defaults-file=/usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/my.conf --initialize --user=mysql
# 此时在/mnt/disk1/mysql/log/mysql.log中可以看到如下记录
2022-04-15T05:37:00.124624Z 0 [System] [MY-013169] [Server] /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 22758
2022-04-15T05:37:00.188498Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-04-15T05:37:07.506618Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-04-15T05:37:24.601186Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ****** # 此处为初始密码
- 配置 mysql 服务
(base) [root@master support-files]# vim /usr/lib/systemd/system/mysqld.service
# 在 mysqld.service 中添加如下内容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/bin/mysqld --defaults-file=/usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/my.conf --user=mysql
LimitNOFILE=65536
LimitNPROC=65536
# 重载服务配置
(base) [root@master support-files]# systemctl daemon-reload
# 添加到环境变量
(base) [root@master support-files]# ln -s /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/bin/mysql /usr/bin/
(base) [root@master support-files]# ln -s /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/bin/mysqldump /usr/bin/
# 启动服务
(base) [root@master support-files]# systemctl stop mysqld
(base) [root@master support-files]# systemctl start mysqld
(base) [root@master support-files]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
(base) [root@master support-files]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-04-15 14:09:05 CST; 3s ago
Docs: man:mysqld(8)
Main PID: 24155 (mysqld)
CGroup: /system.slice/mysqld.service
└─24155 /usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/bin/mysqld --defaults-file=/usr/lib/ruanshubin/mysql-8.0.28-el7-x86_64/my.conf --user=mysql
Apr 15 14:09:05 master systemd[1]: Started MySQL Server.
- 更改密码
(base) [root@master support-files]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28
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> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '******';
Query OK, 0 rows affected (0.09 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)
mysql> update mysql.user set host='%' where user='root';
Query OK, 1 row affected (0.09 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
至此,MySQL数据库安装完成。
本文到此结束,感谢阅读!