【MySQL 8】在 CentOS 上安装 MySQL 8:获取初始密码、修改密码验证级别和授权远程连接

您所在的位置:网站首页 浙大计算机非全日制研究生考试科目 【MySQL 8】在 CentOS 上安装 MySQL 8:获取初始密码、修改密码验证级别和授权远程连接

【MySQL 8】在 CentOS 上安装 MySQL 8:获取初始密码、修改密码验证级别和授权远程连接

2024-07-09 01:06| 来源: 网络整理| 查看: 265

目录 1.卸载 mariadb2.下载MySQL83. 安装MySQL84.启动、查看MySQL状态5.修改初始密码(改弱密码方法)6.设置mysql远程链接(确保MySQL的3306端口开放)7.最后

1.卸载 mariadb 由于centos7默认安装了mariadb, 会造成依赖冲突,所以需要卸载,步骤: rpm -qa | grep mariadb #如果出现 mariadb-libs-5.5.68-1.el7.x86_64 #执行 rpm -e mariadb-libs --nodeps 2.下载MySQL8 # 下载MySQL8的安装文件 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar # 在 /usr/local/src 目录下创建一个mysql目录,进入目录后将下载的mysql解压到mysql目录下 mkdir /usr/local/src/mysql tar -xvf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar -C /usr/local/src/mysql # 解压后应该有这几个文件 mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm mysql-community-libs-8.0.31-1.el7.x86_64.rpm mysql-community-common-8.0.31-1.el7.x86_64.rpm mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm mysql-community-debuginfo-8.0.31-1.el7.x86_64.rpm mysql-community-server-8.0.31-1.el7.x86_64.rpm mysql-community-devel-8.0.31-1.el7.x86_64.rpm mysql-community-server-debug-8.0.31-1.el7.x86_64.rpm mysql-community-embedded-compat-8.0.31-1.el7.x86_64.rpm mysql-community-test-8.0.31-1.el7.x86_64.rpm 3. 安装MySQL8 yum install -y perl.x86_64 # 在mysql目录下执行yum安装命令,等待跑完安装成功 yum install -y mysql-community-*.rpm 如果安装失败的话执行下面命令将mysql删除 #查询安装 rpm -qa | grep -i mysql #使用rpm -e 命令将上个命令中包列表一一进行卸载 #然后删除mysql相关的服务。 chkconfig --list | grep -i mysql chkconfig --del mysql #然后找出OS中分散的mysql文件夹,并删除。 find / -name mysql #最后清空mysql相关的的所有目录以及文件 rm -rf (注意每个绝对路径中间用空格隔开) 4.启动、查看MySQL状态 #启动 systemctl start mysqld #查看启动状态 systemctl status mysqld ' 如果active是active (running)则启动成功 ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 五 2023-03-31 20:50:41 CST; 1h 19min ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 5506 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 5581 (mysqld) Status: "Server is operational" CGroup: /system.slice/mysqld.service └─5581 /usr/sbin/mysqld 3月 31 20:50:37 localhost.localdomain systemd[1]: Starting MySQL Server... 3月 31 20:50:41 localhost.localdomain systemd[1]: Started MySQL Server.' 5.修改初始密码(改弱密码方法)

虚拟机安装MySQL学习测试使用,强密码有些复杂,我们改成弱密码。 但由于MySQL 8.0 调整密码验证规则,没有修改默认密码,无法修改密码验证策略。 不修改密码直接改验证规则,会出现下面的报错信息

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这个错误信息表明您需要在执行其他语句之前使用 ALTER USER 语句重置您的密码。 您可以使用以下命令来重置密码: ALTER USER ‘yourUserName’@‘localhost’ IDENTIFIED BY ‘yourNewPassword’; 请将 yourUserName 和 yourNewPassword 替换为您的用户名和新密码 但是第一次修改必须是强密码,所以我们先修改一个强密码,

#查看初始密码 grep 'temporary password' /var/log/mysqld.log #登录、使用刚才的获得的密码 mysql -uroot -p #修改密码(先设置包含大小写字母+数字并且大于8位的密码) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';' #MySQL 8.0 调整密码验证规则(否则设置简单密码不成功): set global validate_password.policy=0; set global validate_password.length=1; # 查看密码策略 mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 4 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | LOW | | validate_password.special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.01 sec) /* 策略说明 validate_password.length 是密码的最小长度,默认是8,我们把它改成6 输入:set global validate_password.length=6; validate_password.policy 验证密码的复杂程度,我们把它改成0 输入:set global validate_password.policy=0; validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉 输入:set global validate_password.check_user_name=off; */ #修改弱密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';' 6.设置mysql远程链接(确保MySQL的3306端口开放)

直接用root账户授权远程访问失败,最新的MySQL8不允许直接创建并授权用户远程访问权限,必须先让自己有GRANT权限,然后创建用户,再授权。

# 先确保自己有授权权限 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) # 更新一下权限 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) # 查询自己是否有权限 mysql> SELECT host,user,Grant_priv,Super_priv FROM mysql.user; +---------------+------------------+------------+------------+ | host | user | Grant_priv | Super_priv | +---------------+------------------+------------+------------+ | localhost | root | Y | Y | +---------------+------------------+------------+------------+ 7 rows in set (0.00 sec) # 创建新用户 mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed # 这里的localhost换成%通配符,匹配所有host mysql> CREATE USER 'root'@'%' IDENTIFIED BY '你的密码'; Query OK, 0 rows affected (0.13 sec) # 授予新用户权限 mysql> grant all on *.* to 'root'@'%'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)

在 MySQL 8.0 及更高版本中,您不能再使用 GRANT 语句来创建新用户。相反,您需要先使用 CREATE USER 语句来创建新用户,然后再使用 GRANT 语句来授予权限。

例如,如果您想为名为 yourUserName 的用户授予访问名为 yourDatabase 的数据库的权限,并将该用户的密码设置为 yourPassword,可以使用以下命令:

CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword'; GRANT ALL PRIVILEGES ON yourDatabase.* TO 'yourUserName'@'localhost'; FLUSH PRIVILEGES;

请将 yourDatabase、yourUserName 和 yourPassword 替换为相应的值。

7.最后

用软件登陆的Mysql8数据库时,会报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded。 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。 在这里插入图片描述 解决问题方法有两种,一种是升级navicat驱动, 另一种是把mysql用户登录密码加密规则还原成mysql_native_password。此处采用第二种,修改加密规则:

1、登录Mysql: mysql -u root -p 2、修改账户密码加密规则并更新用户密码: #修改加密规则(可以直接复制) ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; # 这个是远程连接的用户 ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //更新一下用户的密码(可以直接复制) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 3、刷新权限并重置密码 //刷新权限(可以直接复制) FLUSH PRIVILEGES; 4、重置密码 //此处请自定义密码,红色的root就是博主自定义的密码 alter user 'root'@'localhost' identified by '123456'; alter user 'root'@'%' identified by '123456'; 此处将密码改为root

从新连接成功 在这里插入图片描述 引用: [1] centos安装MySQL8完整指南 [2] Mysql8.0解决报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements [3] MySQL8授权用户远程连接失败,提示ERROR 1410 (42000): You are not allowed to create a user with GRANT [4] Bing AI



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3