Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL 8.0.33 安装教程

Windows 11 和 Rocky 9 Linux 平台 MySQL 8.0.33 简易安装详细教程

作者:文正耕耘

这篇文章主要介绍了Windows 11和Rocky9 Linux平台MySQL8.0.33简易安装教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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.29 ,是找不到资源的。因为出现了重大问题,官网直接移除了下载资源。推荐跳过 MySQL 8.0.29,升级到更高的版本或者使用历史稳定版本。

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.

Windows 平台安装 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。

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

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

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

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

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 方式:

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

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

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

Windows 11 操作系统中安装 MySQL8.0.33 (noinstall Archive zip) 步骤

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

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>

初步使用 MySQL

默认登录:

mysql -uroot -p

指定 ip 地址以及端口号:

mysql -uroot -p -h 192.168.245.133 -P 3307

参数含义:

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

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.

发现问题:

could not open the mysql.plugin table

尝试解决问题:

Linux 平台 Rocky 9 安装 MySQL

Rocky 9 Linux 平台 MySQL 安装方式:

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

binary package

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

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

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

解压:

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

需要安装依赖包:

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

如下是详细安装步骤:

2.2 Installing MySQL on Unix/Linux Using Generic Binaries

$> 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 管理工具

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

启动 MySQL 服务

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 提权。

[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:

# mysql home
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export MYSQL_HOME PATH

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

再次查看 MySQL 服务状态:

[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.

设置开机自启

systemctl enable mysql.server

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

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 多种命令操作:

[root@localhost mysql]# support-files/mysql.server
Usage: mysql.server  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]

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

mysql -uroot -p

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

bin/mysql -uroot -p

修改用户密码

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

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

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

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

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

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

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

刷新权限

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 包通过解压缩软件提取出来。

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

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 ),做如下操作

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

启动服务

systemctl start mysqld

设置开机自启

systemctl enable mysqld

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

[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

登录

mysql -uroot -p

修改 root 用户密码

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

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

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

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

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. 下载: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

简易安装命令参考如下:

#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

启动服务

systemctl start mysql.server

设置开机自启

systemctl enable mysql.server

登录

mysql -uroot -p

以上总结,仅供参考哟!希望对你的学习或者工作帮助。

参考资料

MySQL 官方文档第二章节: Chapter 2 Installing and Upgrading MySQL

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

到此这篇关于Windows 11 和 Rocky 9 Linux 平台 MySQL 8.0.33 简易安装教程的文章就介绍到这了,更多相关MySQL 8.0.33 安装教程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文