Windows 11 和 Rocky 9 Linux 初体验 MySQL8.0.33 简易安装教程

当你看到这篇教程时,MySQL 目前最新GA(稳定)版本可能已经更新到了 MySQL 8.0.40 或者更高MySQL 8.0 Release Notes Changes in MySQL 8.0.40 (2024-10-15, General Availability)创新版 Innovation MySQL 9.1 Release Notes Changes in MySQL 9.1.0 (2024-10-15, Innovation Release)长期支持版 MySQL 8.4 Release Notes Changes in MySQL 8.4.3 (2024-10-15, LTS Release)

MySQL 发行说明:mysql-8.0-relnotes

如果你想支持小站健康成长,可以在文末进行赞赏哟~~~

阅读本篇博文与读者的约定

  1. 关于数据库(角色用户)需要开放哪些权限,需要根据职员的具体职责进行判断。
  2. 博文可能存在过时,仅供参考哟。

MySQL 文档整理合集(5.6、5.7、8.0、8.1、8.2、8.3,8.4.3,9.1.0):

链接: https://pan.baidu.com/s/1jGkGarWZWVnzQ9so0D8maA?pwd=8kff

提取码: 8kff

文档如何食用,请阅读 docs 目录的 ReadME 文件。

Windows 11 和 Rocky 9 Linux 初体验 MySQL8.0.33 简易安装教程。


如果你想支持小站持续发展,可以在文章尾部进行赞赏哟

MySQL 8.0 目前最新稳定版本已经更新到了 MySQL 8.0.33,估计下一个稳定版本(大约在今年 7月份)推出。当然,这是我个人根据 MySQL 的发行注记做出的推测。

本篇总结作为对笔者之前发出的MySQL系列博文 《MySQL8.0.28安装教程全程参考MySQL官方文档》进行补充说明。

MySQL 8.0.x 简易安装教程。

注意:如果你想在 MySQL 官网获取 8.0.29 ,是找不到资源的。因为出现了重大问题,官网直接移除了下载资源。推荐跳过 MySQL 8.0.29,升级到更高的版本或者使用历史稳定版本。

Changes in MySQL 8.0.29 (2022-04-26, General Availability)

Important
This release is no longer available for download. It was removed due to a critical issue that could cause data in InnoDB
tables having added columns to be interpreted incorrectly. Please upgrade to MySQL 8.0.30 instead.

注意:如果你正在使用或者打算升级至 MySQL 8.0.38,请仔细阅读重要提醒,该本版本已无法下载。由于存在一个严重问题,可能会导致在创建大量表(8001个或更多)后服务器无法重启。请升级至MySQL 8.0.39版本。

Changes in MySQL 8.0.38 (2024-07-01, General Availability)

Important This release is no longer available for download. It was removed due to a critical issue that could stop the server from restarting following the creation of a very large number of tables (8001, or more). Please upgrade to MySQL 8.0.39 instead.

Windows 平台安装 MySQL

可能会遇到的问题

复现在网上看到的一个问题,如果出现如下问题,如何解决?

1
2
3
4
5
6
7
8
9
PS D:\mysql-8.0.33-winx64> bin\mysqld –initialize-insecure –console
[System] [MY-010116] [Server] D:\mysql-8.0.33-winx64\bin\mysqld.exe (mysqld 8.0.33) starting as process 12860
[Warning] [MY-010091] [Server]
Can't create test file D:\mysql-8.0.33-winx64\data\mysqld_tmp_file_case_insensitive_test.lower-test
[Warning] [MY-010091] [Server]
Can't create test file D:\mysql-8.0.33-winx64\data\mysqld_tmp_file_case_insensitive_test.lower-test
[ERROR] [MY-013376] [Server] Failed to set datadir to 'D:\mysql-8.0.33-winx64\data\' (OS errno: 2 - No such file or directory)
[ERROR] [MY-010119] [Server] Aborting
[System] [MY-010910] [Server] D:\mysql-8.0.33-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.33) MySQL Community Server - GPL.

需要检查初始化命令参数是否有缺失:bin\mysqld.exe –initialize-insecure –console,才发现从 Windows powershell 中从文档复制过来的 -- 变成了 – 拼接在一起的单横杠。

注意:注意细节问题。如果出现初始化 data 目录失败,某某文件、目录无法创建等等问题。有可能是格式显示问题,复制粘贴参数时单 - 中横杠 和 -- 双中横杠没有区分开来,如果放在代码块中正常显示。

如下是示例,初始化 MySQL 方式:

  1. 密码随机:bin\mysqld --initialize
  2. 密码置空:bin\mysqld --initialize-insecure
  3. 密码置空且将信息打印在字符命令行界面上:bin\mysqld --initialize-insecure --console
1
2
3
bin\mysqld --initialize  			# 密码随机
bin\mysqld --initialize-insecure # 密码置空
bin\mysqld --initialize-insecure --console # 密码置空且将信息打印在字符命令行界面上

部署 MySQL

Windows install MySQL 8.0.x (Archive zip) 简易安装教程

友情提示:从 MySQL 5.7 开始,Archive zip 默认不再提供默认的 my.ini 或者 my.cnf 配置文件,需要手动构建。

注意:x 代表使用 MySQL 8.0 某个具体版本,比如我演示:mysql-8.0.33-winx64.zip。

  1. 获取 mysql-8.0.33-winx64.zip
  2. 解压免安装版 MySQL:unzip mysql-8.0.x-winx64.zip
  3. 切换到 MySQL 解压目录:cd mysql-8.0.x-winx64
  4. 新增 MySQL 配置文件: my.ini,详细配置可以参考官方文档,或者安装 msi 安装包,复制一份作为参考。
  5. 初始化 MySQL:bin\mysqld --initialize-insecure 或者 bin\mysqld --initialize-insecure --console
  6. 注册 MySQL 服务:bin\mysqld --install MySQL80(将 MySQL 服务注册到 service,可以使用 netsc 命令进行管理)
  7. 启动 MySQL 服务:bin\mysqld --consolenet start MySQL80 或者 sc start MySQL80
  8. 登录 MySQL 字符终端管理界面:mysql -uroot -p

如果你想在 Windows 平台使用 scnet 命令管理 MySQL 服务,需要将 MySQL 服务注册到服务管理中心。使用 mysqld --install 命令即可注册,默认服务名为 MySQL 或者 MySQL80。

友情提醒,如果你在 Windows 平台原生无法使用 unzip 命令,请尝试打开 powershell 使用 Expand-Archive 命令解压。

示例解压到默认目录

1
Expand-Archive .\mysql-8.0.33-winx64.zip

示例解压到指定目录 D:\work\,使用参数 -DestinationPath

1
Expand-Archive .\mysql-8.0.33-winx64.zip -DestinationPath D:\work\

如果你想指定压缩文件路径D:\Downloads\DBMS\MySQL\winx64\mysql-8.0.28-winx64.zip

可以使用 -Path 参数:

1
Expand-Archive -Path D:\Downloads\DBMS\MySQL\winx64\mysql-8.0.33-winx64.zip -DestinationPath D:\work\

可参考资料expand-archive

Windows 环境新建 my.ini 做如下设置,指定基本安装目录(basedir)与数据存放目录(datadir)以及端口号(port):

1
2
3
4
[mysqld]
port=3307
basedir=D:\\mysql-8.0.33-winx64
datadir=D:\\mysql-8.0.33-winx64\\data

为了便于演示,我设置 port 端口为 3307 ,登录时通过参数 -P 指定特定端口号

友情提示:打开 CMD 或者 PowerShell 时,请以管理员身份运行,如果没有,安装服务时则会提示权限拒绝,如下所示。

D:\software\mysql-8.0.33-winx64\bin>mysqld –install MySQL80
Install/Remove of the Service Denied!

Windows 11 操作系统中使用 MySQL8.0.33 (noinstall Archive zip) ,安装步骤生成完整日志信息过程。

使用 Windows 自带的终端管理工具,打开 PowerShell:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
PS D:\work> cd D:\work\mysql-8.0.33-winx64
PS D:\work\mysql-8.0.33-winx64> .\bin\mysqld --initialize-insecure --console
2023-05-21T07:04:03.420220Z 0 [System] [MY-013169] [Server] D:\work\mysql-8.0.33-winx64\bin\mysqld.exe (mysqld 8.0.33) initializing of server in progress as process 13344
2023-05-21T07:04:03.465908Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-21T07:04:03.941998Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-21T07:04:05.242589Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

D:\work\mysql-8.0.33-winx64>bin\mysqld --install MySQL80
Service successfully installed.
D:\work\mysql-8.0.33-winx64>net start MySQL80
MySQL80 服务正在启动 .
MySQL80 服务已经启动成功。

PS D:\work\mysql-8.0.33-winx64> bin\mysql -uroot -p -P 3307
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, 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>

如果出现找不到该服务命令,如何处理呢?理论上,你想在 Windows 平台任意目录执行 MySQL 服务相关命令,需要将 MySQL 安装目录添加到当前用户环境变量或者系统环境变量 PATH,MySQL 官方推荐使用配置当前用户环境变量

比如我个人安装目录 D:\work\mysql-8.0.33-winx64\bin,依次找到系统-系统信息-高级系统设置-环境变量-xx的用户环境变量&系统环境变量-Path

初步使用 MySQL

默认登录,按下 Enter 键即可(前提是初始化默认使用密码置空):

1
mysql -uroot -p

指定 ip 地址以及端口号:

1
mysql -uroot -p -h 192.168.245.133 -P 3307

参数含义:

  1. -u:指定用户名(user)
  2. -p:指定密码(password)
  3. -h:指定主机地址(host)
  4. -P:指定端口号(port)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
PS D:\work\mysql-8.0.33-winx64> bin\mysql -uroot -p -P 3307
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2023, 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> select 990 + 8 \G
*************************** 1. row ***************************
990 + 8: 998
1 row in set (0.00 sec)

mysql> create database study;
Query OK, 1 row affected (0.01 sec)

mysql> use study;
Database changed

mysql> create table books(books_id int primary key,books_name varchar(64),isbn varchar(64),author varchar(33));
Query OK, 0 rows affected (0.02 sec)

mysql> select * from books\G
Empty set (0.01 sec)

mysql> insert into books(books_id,books_name,isbn,author) values(1001,'绝世武功秘籍','22-90-12345','不详');
Query OK, 1 row affected (0.00 sec)

mysql> select * from books\G
*************************** 1. row ***************************
books_id: 1001
books_name: 绝世武功秘籍
isbn: 22-90-12345
author: 不详
1 row in set (0.00 sec)

检查日志文件 :data directory host_name.err file.could not open the mysql.plugin table

1
2
3
4
5
6
7
8
9
10
11
12
13
711538Z 0 [System] [MY-013169] [Server] d:\mysql-8.0.33-winx64\bin\mysqld.exe (mysqld 8.0.33) initializing of server in progress as process 13908
746579Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
205845Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
399260Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.**
020963Z 0 [System] [MY-010116] [Server] D:\mysql-8.0.33-winx64\bin\mysqld (mysqld 8.0.33) starting as process 13756
038677Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
333181Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
552785Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
553344Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
583339Z 0 [System] [MY-011333] [Server] X Plugin ready for connections. Bind-address: '::' port: 33360
583379Z 0 [System] [MY-010931] [Server] D:\mysql-8.0.33-winx64\bin\mysqld: ready for connections. Version: '8.0.33' socket: '' port: 3307 MySQL Community Server - GPL.
085937Z 0 [System] [MY-013105] [Server] D:\mysql-8.0.33-winx64\bin\mysqld: Normal shutdown.
812152Z 0 [System] [MY-010910] [Server] D:\mysql-8.0.33-winx64\bin\mysqld: Shutdown complete (mysqld 8.0.33) MySQL Community Server - GPL.

发现问题:

1
could not open the mysql.plugin table

尝试解决问题:

  1. 检查配置文件:my.ini
  2. 分析问题,检查初始化和安装服务:mysqld --initialize 或者 mysqld --initialize-insecure --console
  3. 移除服务:mysqld --remove MySQL80
  4. 移除数据目录:data
  5. 排查问题,再次初始化:mysqld --initialize 或者 mysqld --initialize-insecure --console
  6. 再次安装服务:mysqld --install MySQL80

修改密码

登录

1
mysql -uroot -p

修改 root 用户密码

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypwd@123';

创建用户 root,主机地址为 localhost

1
CREATE USER 'root'@'localhost' IDENTIFIED BY 'mypwd@123';

创建用户 root,主机地址 %,匹配所有

1
CREATE USER 'root'@'%' IDENTIFIED BY 'mypwd@123';

授权 root 用户所有权限,即可使远程登录

1
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

刷新权限

1
flush privileges;

只做简单介绍,更详细设置请参考 MySQL8.0 官方文档第 6 章节 Security: 6.2 Access Control and Account Management

Linux 平台 Rocky 9 安装 MySQL

Rocky 9 Linux 平台 MySQL 安装方式:

  1. yum 源:使用 Linux 发行版自带的 yum 工具进行安装。
  2. rpm 包安装:最为简单,但不灵活,适合初学者使用。
  3. 二进制包(binary package):编译好的源码包,比 rpm 包更灵活。个人认为是安装多个服务最佳选择。
  4. 源码包(source package):最灵活,可根据需求编译安装功能,难易度最高。
  5. docker 形式安装:其实是在容器中安装。

如下,介绍二进制包、rpm 包、yum 源以及源码包形式 MySQL 简易安装教程。

binary package

01 binary package:使用 Linux 平台通用的二进制包安装

获取:mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

解压:mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

1
tar -zxvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

需要安装依赖包:

1
2
dnf install libaio
dnf -y install ncurses-compat-libs

如下是详细安装步骤:

2.2 Installing MySQL on Unix/Linux Using Generic Binaries

  1. 创建 mysql 组;
  2. 创建 mysql 用户(没有服务器主机登录权限的用户);
  3. 切换到 local 目录;
  4. 解压 tar 包 mysql 文件;
  5. 创建软链接,full-path-to-mysql-VERSION-OS 是你解压后 mysql 文件目录名称;
  6. 进入到 mysql 目录;
  7. 创建 mysql-files 目录;
  8. 赋予 mysql 用户 mysql-files 所属目录与所属组为 mysql;
  9. 赋予 mysql-files 权限750;
  10. 初始化并设置用户为 mysql,生成随机密码会打印在字符界面(使用 --initialize-insecure 则设置空密码);
  11. 启动 ssl_rsa 验证;
  12. 启动 MySQL 服务;
  13. 复制 mysql.server 脚本服务到 Linux 环境 init.d 目录,便于管理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$> groupadd mysql                
$> useradd -r -g mysql -s /bin/false mysql
$> cd /usr/local
$> tar xvf /path/to/mysql-VERSION-OS.tar.xz
$> ln -s full-path-to-mysql-VERSION-OS mysql
$> cd mysql
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize-insecure --user=mysql
$> bin/mysql_ssl_rsa_setup
$> bin/mysqld_safe --user=mysql &

#Next command is optional
$> cp support-files/mysql.server /etc/init.d/mysql.server

如果在 RHEL 9 中默认没有安装 chkconfig,没有软连接 /etc/init.d/ 目录,请安装 chkconfig 管理工具

1
dnf -y install chkconfig-1.20-2.el9.x86_64

启动 MySQL 服务

1
systemctl start mysql.server

如果使用 systemctl 启动 MySQL 服务,出现/etc/rc.d/init.d/mysql.server:行239: /usr/local/mysql/bin/my_print_defaults: 权限不够,Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

解决方案,配置 MySQL 环境变量。介绍如何设置全局生效环境变量,需要 root 用户权限,或者使用 sudo 提权。实际生产环境中,官方推荐加入到当前用户系统环境变量

1
2
3
4
5
6
7
8
9
10
11
[root@localhost mysql]# systemctl status mysql
● mysql.server.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysql.server; generated)
Active: active (exited) since Tue 2023-05-23 16:26:14 CST; 7min ago
Docs: man:systemd-sysv-generator(8)
CPU: 12ms

5月 23 16:26:14 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
5月 23 16:26:14 localhost.localdomain mysql.server[4244]: /etc/rc.d/init.d/mysql.server:行239: /usr/local/mysql/bin/my_print_defaults: 权限不够
5月 23 16:26:14 localhost.localdomain mysql.server[4237]: Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
5月 23 16:26:14 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.

编辑全局系统环境变量。则做如下设置,编辑:vim /etc/profile,需要 root 用户权限,或者使用 sudo vim /etc/profile

1
2
3
4
# mysql home
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME PATH

执行 source /etc/profile 或者 sudo source /etc/profile 命令,环境变量立即生效。

编辑当前系统环境变量:则做如下设置,编辑:vim ~/.bashrc & vim ~/.bash_profile

1
2
3
4
# mysql home
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME PATH

再次查看 MySQL 服务状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost mysql]# systemctl status mysql
● mysql.server.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysql.server; generated)
Active: active (running) since Tue 2023-05-23 16:40:35 CST; 4s ago
Docs: man:systemd-sysv-generator(8)
Process: 5003 ExecStart=/etc/rc.d/init.d/mysql.server start (code=exited, status=0/SUCCESS)
Tasks: 39 (limit: 22833)
Memory: 370.1M
CPU: 765ms
CGroup: /system.slice/mysql.server.service
├─5014 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdo>
└─5153 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/pl>

5月 23 16:40:34 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
5月 23 16:40:35 localhost.localdomain mysql.server[5003]: Starting MySQL. SUCCESS!
5月 23 16:40:35 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.

设置开机自启

1
systemctl enable mysql.server

当然,你还可以通过这种方式启动与关闭 MySQL 服务:

1
2
3
4
5
support-files/mysql.server start
Starting MySQL.. SUCCESS!

support-files/mysql.server stop
Shutting down MySQL. SUCCESS!

使用 mysql.server 脚本,支持 start|stop|restart|reload|force-reload|status 多种命令操作:

  1. start:启动服务
  2. stop:停止服务
  3. restart:重启服务
  4. reload:重载服务
  5. force-reload:强制重载服务
  6. status:查看服务状态
1
2
[root@localhost mysql]# support-files/mysql.server
Usage: mysql.server {start|stop|restart|reload|force-reload|status} [ MySQL server options ]

登录 MySQL 字符命令终端(已经配置好环境变量)

1
mysql -uroot -p

登录 MySQL 字符命令终端(没有环境变量),切换到部署 MySQL 根目录,cd /usr/local/mysql,然后执行如下命令:

1
bin/mysql -uroot -p

修改用户密码

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd@123';

创建用户root,主机地址为localhost

1
CREATE USER 'root'@'localhost' IDENTIFIED BY 'Mypwd@123';

创建用户root,主机地址%,匹配所有

1
CREATE USER 'root'@'%' IDENTIFIED BY 'Mypwd@123';

授权root用户所有权限,即可使远程登录

1
GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

刷新权限

1
flush privileges;

更多权限细化设置请参考 MySQL8.0.x 官方文档第 6 章节 Security。

6.2 Access Control and Account Management

rpm package

02 rpm 包安装

Rocky 9 Linux 平台以 rpm 包形式安装 MySQL8.0.33。

获取:下载最新版本的 mysql-8.0.33-1.el9.x86_64.rpm-bundle.tar,将下面介绍的 rpm 包通过解压缩软件提取出来。

1
tar -xvf mysql-8.0.33-1.el9.x86_64.rpm-bundle.tar

友情提示:如今有一部分 Linux 发行版已经将 MariaDB 作为默认数据库软件。如果安装时勾选了数据库软件选项,你可能需要卸载 MariaDB 的依赖库:yum remove mariadb-libs 。

2.5 Installing MySQL on Linux RPM Packages

1
2
3
4
5
6
7
8
9
yum remove mariadb-libs
rpm -ivh mysql-community-client-plugins-8.0.33-1.el9.x86_64.rpm
rpm -ivh mysql-community-common-8.0.33-1.el9.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.33-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.33-1.el9.x86_64.rpm
dnf -y install openssl-devel-1:3.0.7-6.el9_2.x86_64
rpm -ivh mysql-community-devel-8.0.33-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-8.0.33-1.el9.x86_64.rpm
rpm -ivh mysql-community-server-8.0.33-1.el9.x86_64.rpm

注意:如果你安装 mysql-community-devel-8.0.33-1.el9.x86_64.rpm 提示依赖检测需要 pkgconfig ( openssl ),做如下操作

1
dnf -y install openssl-devel-1:3.0.7-6.el9_2.x86_64

启动服务

1
systemctl start mysqld

设置开机自启

1
systemctl enable mysqld

安装后,默认使用临时随机密码,保存在 /var/log/mysqld.log 文件中

1
2
[wzgy@localhost soft]$ sudo grep 'temporary password' /var/log/mysqld.log
2023-05-21T09:07:15.482313Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: WT(yyZgUB0xd

登录字符命令终端

1
mysql -uroot -p

修改 root 用户密码

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd@833';

友情提示:密码组成规则,必须包含一位大写字母和特殊符号,且密码长度不低于 9 位。如果密码不符合设置规则,会提醒你当前设置的密码不安全:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

卸载就比较简单,可以使用 Rocky Linux 9 自带的 dnf 管理工具:

1
2
3
4
dnf remove mysql
dnf remove mysql-community-client-plugins-8.0.33-1.el9.x86_64
dnf remove mysql-community-common-8.0.33-1.el9.x86_64
dnf remove mysql-community-icu-data-files-8.0.33-1.el9.x86_64

如果你觉得,使用 rpm 包这样安装太繁琐,尤其是缺乏相关依赖包很头疼。可以使用发行版自带的 yum 或者 dnf 工具快速安装。

yum 源

03 yum 源安装

Installing MySQL on Linux Using the MySQL Yum Repository

友情提示:Centos 8(RHEL 8) 或者更高版本可以使用 dnf 替代 yum

1
2
3
4
5
6
7
8
1. 下载:mysql80-community-release-el9-1.noarch.rpm
click https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm
2. $> sudo yum install platform-and-version-specific-package-name.rpm
3. 基于 EL9 系统安装:$> sudo yum install mysql80-community-release-el9-{version-number}.noarch.rpm
4. 启动 MySQL Server:$> systemctl start mysqld
5. 检测 MySQL Server:$> systemctl status mysqld
6. 登录 mysql:$> mysql -uroot -p
7. 修改密码:$> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPwd833!';

source package

04 Source:源码包安装

2.9 Installing MySQL from Source

  1. 新增 mysql 管理组
  2. 新增 mysql 用户
  3. 解压 mysql 安装包
  4. 创建 bld 目录
  5. 切换到 bld 目录
  6. 编译安装:cmake .. make make install
  7. 进入源码包安装后的 mysql 目录
  8. 创建目录 mysql-files
  9. 赋予 mysql-files 目录所属组和所属用户为 mysql
  10. 赋予 mysql-files 目录 750 权限
  11. 执行安全命令:bin/mysql_ssl_rsa_setup
  12. 启动 mysql 服务:bin/mysqld_safe --user=mysql &
  13. 复制 mysql.server 脚本服务到 Linux 环境 init.d 目录,便于管理

简易安装命令参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#Preconfiguration setup

$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql

#Beginning of source-build specific instructions

$> tar zxvf mysql-VERSION.tar.gz
$> cd mysql-VERSION
$> mkdir bld
$> cd bld
$> cmake ..
$> make
$> make install

#End of source-build specific instructions

#Postinstallation setup

$> cd /usr/local/mysql
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize --user=mysql
$> bin/mysql_ssl_rsa_setup
$> bin/mysqld_safe --user=mysql &

#Next command is optional

$> cp support-files/mysql.server /etc/init.d/mysql.server

启动服务:

1
systemctl start mysql.server

设置开机自启:

1
systemctl enable mysql.server

登录到字符命令终端:

1
mysql -uroot -p

MySQL官方文档下载地址

左侧导航栏 Download this Manual:MySQL 文档资源。

以 MySQL 8.4 作为示例展示:

img

如下为具体下载地址:

MySQL 9.x

MySQL 9.0 在线文档:MySQL :: MySQL 9.0 Reference Manual

MySQL 9.0 文档 PDF 文件下载地址: refman-9.0-en.a4.pdf

MySQL 8.x

MySQL 8.4 在线文档:MySQL :: MySQL 8.4 Reference Manual

MySQL 8.4 文档 PDF 文件下载地址:refman-8.4-en.a4.pdf

MySQL 8.0 在线文档: https://dev.mysql.com/doc/refman/8.0/en

MySQL 8.0 文档 PDF 文件下载地址: refman-8.0-en.a4.pdf

MySQL 5.x

MySQL 5.7在线文档: https://dev.mysql.com/doc/refman/5.7/en/

MySQL 5.7文档 PDF 文件下载地址: refman-5.7-en.a4.pdf

MySQL 5.6在线文档(注:官方已停止维护,在线文档已经移动了,PDF下载地址还可使用)

https://dev.mysql.com/doc/refman/5.6/en/

MySQL 5.6文档 PDF 文件下载地址: refman-5.6-en.a4.pdf

友情提醒:下载官方文档尽量前往官方网站下载。某网站利用用户上传的资源,却厚着脸皮需要VIP才能下载,对这种行为表示鄙视。当然,也可以在文初获取我个人整理的压缩包组合(不定期更新)。

以上总结,仅供参考哟!

最后,希望对你的学习和工作有所帮助。

参考资料

MySQL8.0.x 官方文档第 2 章节安装于升级: Chapter 2 Installing and Upgrading MySQL

MySQL8.0.x 官方文档第 6.2 章节 Security 设置: 6.2 Access Control and Account Management

MySQL8.0.x 官方文档第 6.2.9 章节 环境变量设置:6.2.9 Setting Environment Variables

Windows 平台解压命令 expand-archive:expand-archive

—END—