【MySQL 8】在 CentOS 上安装 MySQL 8:获取初始密码、修改密码验证级别和授权远程连接 |
您所在的位置:网站首页 › 浙大计算机非全日制研究生考试科目 › 【MySQL 8】在 CentOS 上安装 MySQL 8:获取初始密码、修改密码验证级别和授权远程连接 |
目录
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。 从新连接成功 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |