MySQL的身份验证处理在8.0版本上进行了更改,因此您需要完整地说明要更改的MySQL版本。但是我们可以提供一些一般的概念。
在早期的MySQL版本中,使用mysql_native_password方法进行身份验证。而从MySQL 8.0版本开始,默认会使用caching_sha2_password方法。如果您的应用程序或工具无法与新的默认身份验证协议兼容,则可以考虑更改回旧的身份验证协议(mysql_native_password)。
下面是更改MySQL身份验证协议的步骤:
1.以管理员身份登录到MySQL服务器。
2.通过以下命令检查服务器正在使用的默认身份验证插件:
SELECT plugin FROM mysql.user WHERE User='root';
3.将默认插件更改为旧的身份验证插件(mysql_native_password)。执行以下SQL语句来进行更改:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
这将更改'root'用户的身份验证插件为旧的身份验证插件(mysql_native_password)并设置密码。
4.运行以下命令来刷新特权表:
FLUSH PRIVILEGES;
5.最后,您可以通过以下命令再次确认已经更改了身份验证方式
SELECT plugin FROM mysql.user WHERE User='root';
这些步骤将更改MySQL身份验证协议为旧版本,并将现有用户的身份验证方法更改为mysql_native_password。
注:更改身份验证方法可能会影响现有应用程序,请确保在更改之前进行测试,并在生产环境中谨慎操作。
linux安装mysql 8.0(正式环境)****
安装之前需要确认机器上是否安装过mysql如果已经安装过.需要清理掉.** 1.检查是否已经安装过mysql :**
rpm -qa | grep mysql
如果环境中有遗留mysql则执行删除命令:rpm -e --nodeps mysql-xxxxxxxxx
2.查询遗留的mysql设置或命令,执行两条命令
whereis mysql
find / -name mysql
00004.
如通过上述两条命令发现有遗留,则执行清除命令,将所有查到的mysql都删除 :
rm -rf xxx xxx
3、检查mysql用户组和用户是否存在,如果没有,则创建,有的话可以不用添加.
查看是否存在mysql用户的命令:
00001.
cat /etc/group | grep mysql
00002.
00003.
cat /etc/passwd |grep mysql
00004.
执行命令出现如下内容说明用户组和用户已存在:
就不需要执行添加mysql用户命令.
增加 mysql 用户的命令:
00001.
groupadd mysql
00002.
00003.
useradd -r -g mysql mysql
00004.
正式开始安装****
1.从官网下载用于Linux的Mysql安装包.两种方法
第一:如果你的linux 系统有外网,则直接通过命令下载到linux系统上:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0.20/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz**
**
T ar 可以直接 网址输入:**
https://dev.mysql.com/get/Downloads/MySQL-8.0.20/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
**
3、开始解压、安装
1. 进入 cd /usr/local 目录下.然后上传压缩包
2. 解压 tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
3. 对解压出来的文件重命名 mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql
4. 进入 /usr/local/mysql 目录创建文件夹
00001.
#mysql数据存储目录
00002.
00003.
mkdir data
00004.
00005.
#mysql日志存放目录
00006.
00007.
mkdir log
00008.
5. 将指定文件的拥有者改为指定的用户或组
chown -R mysql:mysql ./
6. 进入/var/lib目录 cd /var/lib
7. 创建mysql目录 mkdir mysql
8. 修改权限 chmod 777 mysql
9. 修改配置文件 vim /etc/my.cnf 内容如下
[mysql]
#mysql客户端默认字符集
default-character-set=utf8
[mysqld]
default_authentication_plugin = mysql_native_password
#mysql忽略大小写
lower-case-table-names=1
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
#设置mysql的安装目录
basedir=/usr/local/mysql
#设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
#允许最大连接数
max_connections=3000
#最大等待时间
wait_timeout=3153600
#服务端使用的字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine = InnoDB
#日志
#允许做大数据包
max_allowed_packet=128M
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
直接使用该配置文件即可
在cd /usr/local/mysql 目录下执行命令初始化mysql
10.
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
如果初始化失败,报错信息如下.
11.
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
12.
出现上面的错误信息是缺少numactl,执行下面命令可以解决
13.
yum -y install numactl
14.
再次执行初始化mysql命令
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
初始化mysql 密码 记住他
设置开机自启动****
1. 复制脚本资源到启动目录,在/usr/local/mysql 目录下执行命令
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
2. 增加mysql服务控制脚本权限
chmod +x /etc/rc.d/init.d/mysqld
3. 将 mysqld 服务加入到系统服务
chkconfig --add mysqld
4. 检查mysqld服务是否已经生效
chkconfig --list mysqld
5. 启动mysql
service mysqld start
6. 登录mysql mysql -uroot -p密码
7. 修改初始化密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
要更改Linux上的MySQL 8.0身份验证协议,可以按照以下步骤进行操作:
- 以root用户身份登录到Linux系统中。如果没有root权限,可以使用sudo命令执行以下步骤。
- 启动MySQL服务。使用以下命令启动MySQL服务:
```
systemctl start mysql
```
- 登录到MySQL shell。使用以下命令登录到MySQL shell:
```
mysql -u root -p
```
系统将提示您输入root用户的密码。在输入密码后,请按Enter键登录到MySQL shell。
- 查看当前的身份验证插件。使用以下命令查看当前的身份验证插件:
```
SELECT user, authentication_string, plugin FROM mysql.user;
```
如果输出结果中的plugin列是“caching_sha2_password”,则需要更改为“mysql_native_password”。
- 更改root用户的身份验证方式。使用以下命令更改root用户的身份验证方式:
```
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
```
在此命令中,“password”是您希望设置为root用户的新密码。
- 刷新MySQL特权表并退出MySQL shell。 使用以下命令刷新MySQL特权表并从MySQL shell退出:
```
FLUSH PRIVILEGES;
EXIT;
```
- 停止MySQL服务。使用以下命令停止MySQL服务:
```
systemctl stop mysql
```
- 修改MySQL配置文件。使用文本编辑器打开/etc/mysql/mysql.conf.d/mysqld.cnf文件,并将以下内容添加到[mysqld]部分:
```
default_authentication_plugin = mysql_native_password
```
- 保存并关闭文件,然后重新启动MySQL服务。使用以下命令重新启动MySQL服务:
```
systemctl start mysql
```
完成以上步骤后,您可以确认身份验证方式已成功更改为mysql_native_password插件。