编辑
2026-04-01
undefined
00

目录

版本选择
Linux操作系统
二进制安装(推荐)
第一步:获取二进制安装包
第二步:创建运行MySQL的用户
第三步:规划数据目录,准备my.cnf参数文件
第四步:初始化数据库
/opt/mysql80/bin/mysqld --defaults-file=/data/mysql3306/my.cnf --initialize
第五步:启动数据库服务
第六步:设置数据库初始密码
RPM安装使用Linux的包管理器安装MySQL也是一种比较常用的方式,这里以CentOS 7.9为例来简单说明安装过程。RPM安装须提前准备好rpm软件包,且无法满足定制化需求、编译参数、修改路径、依赖冲突问题,不建议使用。
第一步:下载RPM包下载Linux版MySQL安装包:https://dev.mysql.com/downloads/mysql/
第二步:处理有冲突的包如果服务器上已经安装了其他版本的MySQL或MariaDB的RPM包,就有可能会和待安装的RPM包发生冲突,需要先把这些RPM包卸载掉。 rpm -qa | egrep -i 'mysql|mariadb' yum remove mariadb-libs -y
第三步:安装RPM包这种包资源管理器是不会处理依赖关系的,所以安装有先后顺序。 rpm -ivh mysql-community-libs-8.0.40-1.el7.x8664.rpm \ mysql-community-client-8.0.40-1.el7.x8664.rpm \ mysql-community-libs-compat-8.0.40-1.el7.x8664.rpm \ mysql-community-client-plugins-8.0.40-1.el7.x8664.rpm \ mysql-community-server-8.0.40-1.el7.x8664.rpm \ mysql-community-common-8.0.40-1.el7.x8664.rpm \ mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm安装community-libs可能会报错,执行命令卸载mysql-libs:yum remove mysql-libs,然后重新安装libs。
第四步:启动MySQL服务RPM包安装成功后,就可以启动MySQL服务了。 systemctl start mysqld systemctl stop mysqld systemctl restart mysqld systemctl status mysqld默认错误日志文件路径为/var/log/mysqld.log。如果无法正常启动MySQL服务,可到错误日志中查看相关报错信息。
第五步:修改数据库默认密码查看自动生成的root用户密码:grep password /var/log/mysqld.log
源码编译安装源码编译三部曲:
第一步:准备build环境编译MySQL 8.0需要以下几个基本工具:
第二步:下载源码
第三步:构建MySQL二进制进入源码目录,这里使用cmake3来构建一个Debug版本的MySQL。 cd mysql-8.0.40 cmake3 -DWITHDEBUG=ON \ -DWITHBOOST=boost/boost1770 \ -DCMAKEINSTALL_PREFIX=/usr/local/mysql8.0cmake成功后,生成Makefile文件。使用make命令构建MySQL,参数-j指定编译并发数,根据机器配置选择合适的并发数,以加快构建速度。 make -j 4
第四步:安装二进制构建成功后,使用make install命令将MySQL安装到CMAKEINSTALLPREFIX指定路径下。 make install构建出来的mysqld占用空间较大,可使用strip命令对可执行文件进行裁剪,去掉二进制文件中的一些符号和调试信息。 strip mysqld二进制文件安装完成后,接下来步骤和“二进制安装”中步骤没有区别,这里就不再重复。
部署MySQL多实例基于一个MySQL应用,初始化3次,生成3个独立的MySQL数据目录,即为三个MySQL独立实例。
准备启停脚本
启动多实例启动MySQL服务:systemctl start mysqld3307
登录MySQL本地可使用Socket套接字文件,通过内存数据共享进行登录:mysql -S /my_mysql/3306/mysql.sock。
安全配置MySQL默认没有密码,很不安全,使用mysqladmin命令修改密码:mysqladmin -uroot -S /my_mysql/3306/mysql.sock password
Windows版本
安装与配置最新版MySQL下载地址:https://dev.mysql.com/downloads/mysql/,下载后解压到D:\dev目录下。
MySQL卸载停止MySQL服务net stop mysql,删除MySQL服务mysqld --remove mysql,删除MySQL目录及相关环境变量。
登录MySQLMySQL8开放root账户远程登录权限(危险动作):
MySQL 5.7字符集设置在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。从MySQL 8.0开始,数据库的默认编码改为utf8mb4 ,从而避免了乱码问题。
命名管道和共享内存命名管道和共享内存是Windows操作系统中的两种进程间通信方式,客户端进程和服务器进程之间可以考虑使用命名管道或共享内存进行通信。
软件卸载在“控制面板”选择“卸载程序”,并在程序列表中找到MySQL8.0服务器程序,直接双击卸载即可。这种方式删除,数据目录下的数据不会跟着删除。
残余文件清理
清理注册表(选做)在系统搜索框中输入regedit:
删除环境变量配置找到path环境变量,将其中关于MySQL的环境变量删除,切记不要全部删除。
MySQL图形化管理工具有些图形界面工具,特别是旧版本的图形界面工具,在连接MySQL8时出现“Authentication plugin 'cachingsha2password' cannot be loaded”错误。
服务器程序⽤来启动MySQL服务器程序的可执⾏⽂件有很多,⼤多在MySQL安装⽬录的bin⽬录下。

版本选择

在企业生产场景下,数据库是重中之重,因此选择MySQL数据库一定要慎重。下面是给出的一些选择建议:

  • 选稳定版版本,即选择开源的社区版的稳定版
  • 建议选择第二条产品线中的5.5或5.6版本,目前互联网公司主流版本是5.5和5.6
  • 选择MySOL数据库至少发布半年以上的稳定版本
  • 尽可能选择前后几个月没有大BUG修复的版本,而不是大量修复BUG的集中版本
  • 最好选择向后较长时间没有更新发布的版本
  • 要考虑开发人员开发程序使用的版本是否兼容你所选的版本
  • 首先作为内部开发测试数据库环境,测试运行几个月的时间
  • 优先对企业非核心业务采用新的数据库稳定版本

有二制安装、RPM包安装和源码编译安装这几种安装方式。

Linux操作系统

二进制安装(推荐)

使用二进制包安装MySQL是比较常用的一种方式,这种安装方式,解压即用,非常简单,下面部署MySQL多实例就是以这种方式安装的。

这里使用Ubuntu 18.04 LTS操作系统来运行MySQL,主要分为六个步骤。

第一步:获取二进制安装包

MySQL官网下载二进制安装包,选择8.0 GA最新版本,当前8.0最新GA版本是8.0.40(2024-11-22)。

操作系统选择“Linux - Generic”,操作系统版本要根据系统的glibc版本来选择,可使用一些方法来确定glibc版本,比如通过 ldd 命令:ldd --version

可先用浏览器下载安装包,再上传到服务器,也可直接在服务器上使用wget、curl等工具下载:wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz

安装包下载完成后使用md5sum工具检查文件校验码是否和官网提供的一致:md5sum mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz

如果一切正常,解压二进制包,将解压后的文件夹放到一个安装目录下,如/opt目录下,并创建一个软链接。

tar xvf mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz sudo mv mysql-8.0.40-linux-glibc2.28-x86_64 /opt/ sudo ln -s /opt/mysql-8.0.40-linux-glibc2.28-x86_64 /opt/mysql80

到此,MySQL其实就已经安装好了。

第二步:创建运行MySQL的用户

出于安全考虑,需要创建一个单独的用户来运行MySQL。 sudo groupadd mysql sudo useradd mysql -g mysql sudo passwd mysqluseradd -s /sbin/nologin -M mysql,-s指定用户登入后所使用的Shell,这里指定不允许登录,-M不创建家目录。

第三步:规划数据目录,准备my.cnf参数文件

规划数据目录,用来存放MySQL数据文件,以及各类日志文件。 sudo mkdir -p /data/mysql3306/{data,log,binlog,relaylog,run,tmp} tree -d -L 2 /data每个实例的所有文件,都放在同一个顶层目录中,以 mysql{$PORT} 的方式命名。配置文件my.cnf存放到实例的顶层目录中,一个基本的配置文件如下: # /data/mysql3306/my.cnf [mysql] socket=/data/mysql3306/run/mysql.sock

[mysqld] port=3306 mysqlx_port=33060

basedir=/opt/mysql80 lc_messages_dir=/opt/mysql80/share

datadir=/data/mysql3306/data tmpdir=/data/mysql3306/tmp log-error=/data/mysql3306/log/alert.log slow_query_log_file=/data/mysql3306/log/slow.log general_log_file=/data/mysql3306/log/general.log socket=/data/mysql3306/run/mysql.sock

innodb_data_file_path=ibdata1:128M

innodb_buffer_pool_size=2G

skip_name_resolve参数,控制MySQL服务器是否解析主机名,配置该参数可提高连接速度。

第四步:初始化数据库

先安装依赖:sudo apt install libaio1,再初始化MySQL。

使用mysqld初始化数据库,第一个参数必须是defaults-file,指向上一步准备好的my.cnf配置文件,第二个参数是initialize,指示mysqld进行初始化操作。

/opt/mysql80/bin/mysqld --defaults-file=/data/mysql3306/my.cnf --initialize

初始化成功后,可到错误日志最后一行查看mysql root账号临时密码,要用这个密码来登录数据库:tail -10 /data/mysql3306/log/alert.log

数据库初始化完成后,就可以启动了,不过在启动前,还需要做一件事情。如果初始化数据库时使用了root账号,需要把mysql目录下的文件owner修改成mysql:chown -R mysql:mysql /data/mysql3306/

第五步:启动数据库服务

有几种不同的方式来启动MySQL服务,下面使用mysqld_safe脚本来启动MySQL,defaults-file指定参数文件路径。 /opt/mysql80/bin/mysqld_safe --defaults-file=/data/mysql3306/my.cnf &关闭数据库可以使用:mysqladmin -uroot -p shutdown或者:mysql -uroot -p -e 'shutdown'

第六步:设置数据库初始密码

客户端连接MySQL前,先安装依赖:sudo apt install libncurses6

数据库初始化时设置了一个临时密码,可在错误日志中找到:grep password /data/mysql3306/log/alert.log

使用临时密码登录数据库:/opt/mysql80/bin/mysql -uroot -p'ofo8A8M6q' -S /data/mysql3306/run/mysql.sock``

  • -u指定用户名
  • -p指定密码,一般不在命令行写入密码,否则容易通过历史记录看到密码,不安全
  • -S:本地socket文件位置
  • -h:数据库IP地址
  • -P:数据库端口号
  • -e:免交互执行数据库命令
  • <:导入sql脚本登录数据库后,执行SQL语句会提示修改密码。使用alter user命令修改mysql root账号密码后,就可以正常使用数据库了。 alter user 'root'@'localhost' identified by 'root'; select now();不要给MySQL用户设置过于简单的密码,可以通过密码验证组件来强制密码的复杂度。 INSTALL COMPONENT 'file://component_validate_password';忘记密码处理:直接kill mysqld进程,然后启动MySQL,加上skip-grant-tables选项后,不需要密码就能登录数据库。 mysqld_safe --defaults-file=/data/mysql3306/my.cnf \ --skip-grant-tables \ --skip-networking &

mysql -uroot -S /data/mysql3306/run/mysql.sock 登录后,先执行flush privileges命令,加载用户和权限相关的表,再执行alter user命令修改密码,然后重新启动MySQL,就可以正常访问数据库了。

flush privileges; alter user 'root'@'localhost' identified by 'root';

使用二进制方式安装MySQL并不复杂,其主要优点是可以很方便地部署多实例,在同一台服务器运行多个版本的MySQL,也可以方便地规划磁盘路径。

RPM安装使用Linux的包管理器安装MySQL也是一种比较常用的方式,这里以CentOS 7.9为例来简单说明安装过程。RPM安装须提前准备好rpm软件包,且无法满足定制化需求、编译参数、修改路径、依赖冲突问题,不建议使用。

第一步:下载RPM包下载Linux版MySQL安装包:https://dev.mysql.com/downloads/mysql/

  • Select Version: 8.0.40
  • Select Operating System: Red Hat Enterprise Linux / Oracle Linux
  • Select OS Version: Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
  • RPM Bundle下载mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar,里面包含了安装MySQL需要的所有rpm包。下载完成后验证md5,并解压rpm。 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar md5sum mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar

第二步:处理有冲突的包如果服务器上已经安装了其他版本的MySQL或MariaDB的RPM包,就有可能会和待安装的RPM包发生冲突,需要先把这些RPM包卸载掉。 rpm -qa | egrep -i 'mysql|mariadb' yum remove mariadb-libs -y

第三步:安装RPM包这种包资源管理器是不会处理依赖关系的,所以安装有先后顺序。 rpm -ivh mysql-community-libs-8.0.40-1.el7.x86_64.rpm \ mysql-community-client-8.0.40-1.el7.x86_64.rpm \ mysql-community-libs-compat-8.0.40-1.el7.x86_64.rpm \ mysql-community-client-plugins-8.0.40-1.el7.x86_64.rpm \ mysql-community-server-8.0.40-1.el7.x86_64.rpm \ mysql-community-common-8.0.40-1.el7.x86_64.rpm \ mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm安装community-libs可能会报错,执行命令卸载mysql-libs:yum remove mysql-libs,然后重新安装libs。

安装community-devel可能会报错,执行命令安装依赖:yum install openssl-devel -y,然后重新安装devel。

安装server可能会报错,执行命令安装依赖:yum install net-tools,然后重新安装server。

Bundle包中各类RPM文件说明如下:

  • libs 客户端应用程序共享库
  • client 客户端应用程序和工具
  • libs-compat 兼容老版本共享库
  • client-plugins 客户端应用程序插件工具
  • server 服务端应用程序和工具
  • common 服务器和客户端通用库文件
  • devel 客户端应用程序开发用的头文件和库文件

第四步:启动MySQL服务RPM包安装成功后,就可以启动MySQL服务了。 systemctl start mysqld systemctl stop mysqld systemctl restart mysqld systemctl status mysqld默认错误日志文件路径为/var/log/mysqld.log。如果无法正常启动MySQL服务,可到错误日志中查看相关报错信息。

第五步:修改数据库默认密码查看自动生成的root用户密码:grep password /var/log/mysqld.log

使用临时密码登录数据库,执行alter user命令修改密码。密码修改后,数据库就可以正常使用了。set global validate_password.policy=0; set global validate_password.length=4; alter user 'root'@'localhost' identified by 'root';

使用RPM包安装的MySQL,增加了数据库账号密码强度的验证。这里设置密码的复杂度为简单类型,密码长度为4。

创建用户:create user 'root'@'%' identified with mysql_native_password by '1234';

给新创建的root分配权限:grant all on *.* to 'root'@'%';

源码编译安装源码编译三部曲:

  • 获取源码包,解压后,源码目录下有一个Makefile文件
  • 进入源码目录下,执行make指令,自动读取Makefile
  • make编译完成后,执行make install,安装到指定位置cmake也是一个编译命令,用于一些跨平台的编译设置,比make更高级,使用起来更方便。

第一步:准备build环境编译MySQL 8.0需要以下几个基本工具:

  • cmake3

  • binutils

  • gcc 7.1以上版本

  • openssl

  • ncurse安装cmake3:yum install cmake3

安装 GCC:yum install centos-release-scl yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils

安装其它依赖库:yum install -y ncurses-devel openssl openssl-devel

第二步:下载源码

  • Select Version: 8.0.40
  • Select Operating System: Source Code
  • Select OS Version: All operating Systems (Generic) (Architecture Independent)
  • 选择带C++ boost库源码包源码下载成后先验证md5,没问题再解压文件。 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.40.tar.gz md5sum mysql-boost-8.0.40.tar.gz tar zxf mysql-boost-8.0.40.tar.gz

第三步:构建MySQL二进制进入源码目录,这里使用cmake3来构建一个Debug版本的MySQL。 cd mysql-8.0.40 cmake3 -DWITH_DEBUG=ON \ -DWITH_BOOST=boost/boost_1_77_0 \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8.0cmake成功后,生成Makefile文件。使用make命令构建MySQL,参数-j指定编译并发数,根据机器配置选择合适的并发数,以加快构建速度。 make -j 4

第四步:安装二进制构建成功后,使用make install命令将MySQL安装到CMAKE_INSTALL_PREFIX指定路径下。 make install构建出来的mysqld占用空间较大,可使用strip命令对可执行文件进行裁剪,去掉二进制文件中的一些符号和调试信息。 strip mysqld二进制文件安装完成后,接下来步骤和“二进制安装”中步骤没有区别,这里就不再重复。

部署MySQL多实例基于一个MySQL应用,初始化3次,生成3个独立的MySQL数据目录,即为三个MySQL独立实例。

先进行之前编译安装配置的环境清理,清空PATH有关的MySQL,再停止之前启动的MySQL:/etc/init.d/mysqld stop

  • 准备MySQL多实例数据目录:mkdir -p /data/330{7..9}/data

  • 准备MySQL多实例日志目录:mkdir -p /binlog/330{7..9}

  • 设置权限:chown -R mysql.mysql /data/* /binlog/*

  • 可选:mv /etc/my.cnf /etc/my.cnf.bak

  • 分别创建多实例配置文件

    cat > /data/3307/my.cnf <<EOF [mysqld] basedir=/app/database/mysql/ datadir=/data/3307/data/ socket=/tmp/mysql3307.sock log_error=/data/3307/mysql.error.log port=3307 server_id=7 log_bin=/binlog/3307/mysql-bin EOF

  • 分别初始化数据:mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql/ --datadir=/data/3307/data

准备启停脚本

cat > /etc/systemd/system/mysqld3307.service <<EOF [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/app/database/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf LimitNOFILE = 5000 EOF

启动多实例启动MySQL服务:systemctl start mysqld3307

登录MySQL本地可使用Socket套接字文件,通过内存数据共享进行登录:mysql -S /my_mysql/3306/mysql.sock

mysql.sock是MySQL主机和客户机在同一host上的时候,使用UNIX Domain Socket做为通讯协议的载体,它比TCP快,在高并发场景下,效率更高。MySQL进程存在,sock文件就存在,pid文件也存在,否则全部消失。

远程登录授权,例如,允许root用户在192.168.1.x网段内,使用密码123456进行远程连接:

grant all privileges on *.* to 'root'@'192.168.1.%' identified by '123456';

安全配置MySQL默认没有密码,很不安全,使用mysqladmin命令修改密码:mysqladmin -uroot -S /my_mysql/3306/mysql.sock password

使用套接字文件登录:mysql -p -S /my_mysql/3306/mysql.sock

Windows版本

安装与配置最新版MySQL下载地址:https://dev.mysql.com/downloads/mysql/,下载后解压到D:\dev目录下。

接着,将D:\dev\mysql-8.0.36-winx64\bin目录配置到环境变量Path当中:右键「此电脑」->「属性」->「高级系统设置」->「环境变量」->「系统变量」中的Path ->「编辑」->「新建」,添加MySQL安装路径中bin文件夹所在路径(也可以在系统变量中新建MYSQL_HOME,然后在系统变量Path新建%MYSQL_HOME%\bin)。

  • 初始化data目录 以管理员身份打开命令提示符窗口,执行mysqld --initialize --console进行data目录初始化,此时会在控制台生成一个随机密码(--console的作用),先将该密码保存起来。也可以使用mysqld --initialize-insecure命令来初始化数据库,此时root用户没有密码,这意味着任何人都能以root用户身份登录并访问数据库。因此,在完成初始化后,应立即为root用户设置一个密码(修改默认账户密码:mysqladmin -u root password 123,123是指默认root账户密码,可以自行修改成自己喜欢的),以确保数据库的安全性。
  • 注册MySQL服务 执行命令mysqld --install,看MySQL服务名称:右键「此电脑」->「管理」->「服务和应用程序」->「服务」,找MySQL服务。
  • 启停MySQL服务 启动MySQL服务命令net start mysql,停止MySQL服务命令net stop mysql
  • 登录MySQL 输入mysql -uroot -p回车,输入刚才的随机密码,然后回车。 登陆参数:mysql -u用户名 -p密码 -h服务器ip地址(默认127.0.0.1) -P端口号(默认3306)退出MySQL:exit或quit。
  • 修改MySQL的root账户密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';,打开新的命令提示符窗口,重新登录MySQL。

MySQL卸载停止MySQL服务net stop mysql,删除MySQL服务mysqld --remove mysql,删除MySQL目录及相关环境变量。

登录MySQLMySQL8开放root账户远程登录权限(危险动作):

  • 第一步:本地使用root账户登录MySQL
  • 第二步:use mysql;
  • 第三步:update user set host = '%' where user = 'root';
  • 第四步:flush privileges;

MySQL 5.7字符集设置在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。从MySQL 8.0开始,数据库的默认编码改为utf8mb4 ,从而避免了乱码问题。

修改MySQL数据目录下的my.ini配置文件:

[mysql] #大概在63行左右,在其下添加 ... default-character-set=utf8 #默认字符集 [mysqld] # 大概在76行左右,在其下添加 ... character-set-server=utf8 collation-server=utf8_general_ci

重启服务后,查看编码命令:

show variables like 'character_%'; show variables like 'collation_%';

命名管道和共享内存命名管道和共享内存是Windows操作系统中的两种进程间通信方式,客户端进程和服务器进程之间可以考虑使用命名管道或共享内存进行通信。

使用命名管道来进行进程间通信:需要在启动服务器程序的命令中加上--enable-named-pipe参数,然后在启动客户端程序的命令中加入--pipe或者--protocol=pipe参数。

使用共享内存来进行进程间通信:需要在启动服务器程序的命令中加上--shared-memory参数,在成功启动服务器后,共享内存便成为本地客户端程序的默认连接方式,不过也可以在启动客户端程序的命令中加入--protocol=memory参数来显式的指定使用共享内存进行通信。

软件卸载在“控制面板”选择“卸载程序”,并在程序列表中找到MySQL8.0服务器程序,直接双击卸载即可。这种方式删除,数据目录下的数据不会跟着删除。

残余文件清理

  • 服务目录:MySQL服务的安装目录
  • 数据目录:默认在C
    如果自己单独指定过数据目录,就找到自己的数据目录进行删除即可。

注意:请在卸载前做好数据备份。

在操作完以后,需要重启计算机,然后进行安装即可。如果仍然安装失败,需要继续操作如下步骤。

清理注册表(选做)在系统搜索框中输入regedit:

HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventlogApplicationMySQL服务 目录删除 HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesMySQL服务 目录删除 HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesEventlogApplicationMySQL服务 目录删除 HKEY_LOCAL_MACHINESYSTEMControlSet002ServicesMySQL服务 目录删除 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplicationMySQL服务 目录 删除 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMySQL服务删除

注册表中的ControlSet001、ControlSet002不一定是001和002,可能是ControlSet005、006。

删除环境变量配置找到path环境变量,将其中关于MySQL的环境变量删除,切记不要全部删除。

MySQL图形化管理工具有些图形界面工具,特别是旧版本的图形界面工具,在连接MySQL8时出现“Authentication plugin 'caching_sha2_password' cannot be loaded”错误。

出现这个原因是MySQL8之前的版本中加密规则是mysql_native_password,而在MySQL8之后,加密规则是caching_sha2_password。

解决问题方法有两种,第一种是升级图形界面工具版本,第二种是把MySQL8用户登录密码加密规则还原成mysql_native_password。

第二种解决方案如下,用命令行登录MySQL数据库之后,执行如下命令修改用户密码加密规则并更新用户密码:

# 使用mysql数据库 USE mysql; # 修改'root'@'localhost'用户的密码规则和密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123'; # 刷新权限 FLUSH PRIVILEGES;

服务器程序⽤来启动MySQL服务器程序的可执⾏⽂件有很多,⼤多在MySQL安装⽬录的bin⽬录下。

  • mysqld:这个可执⾏⽂件代表MySQL服务器程序,运⾏这个⽂件就可以直接启动⼀个服务器进程
  • mysqld_safe:是⼀个启动脚本,它会间接调⽤mysqld,⽽且还顺便启动了另外⼀个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。另外,使⽤mysqld_safe启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个⽂件中,产⽣出错⽇志,这样可以⽅便我们找出发⽣错误的原因
  • mysql.server:也是⼀个启动脚本,它会间接调⽤mysqld_safe,在调⽤mysql.server时在后边指定start参数启动服务器程序,指定stop参数关闭服务器程序

本文作者:a

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!