CentOS7上用 yum 安装MySQL5.7

在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

本次安装的是 MySQL5.7。

1、下载并安装MySQL 的 yum Repository

安装 yum Repository :

[root@BrianZhu /]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum 安装:

[root@BrianZhu /]# yum -y install mysql57-community-release-el7-10.noarch.rpm

yum 安装 MySQL:

[root@BrianZhu /]# yum -y install mysql-community-server

这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

img
出现这样的提示表示安装成功。

2、MySQL 启动

启动:

[root@BrianZhu /]# systemctl  start  mysqld.service

查看状态:

[root@BrianZhu /]# systemctl  status  mysqld.service

在这里插入图片描述

3、密码配置

MySQL 正常运行后,如果要进入MySQL,要先找出root的密码,可以在日志文件中找出 初始密码

[root@BrianZhu /]# grep "password" /var/log/mysqld.log

在这里插入图片描述

上面标记的就是初始密码。

root 登录数据库:

[root@BrianZhu /]# mysql -uroot -p     # 回车后会提示输入密码

输入初始密码。 此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' identified by 'new password' ;

如果 新密码设置过于简单会报错,如下图:
img

查看MySQL 的密码规则 :

mysql> SHOW VARIABLES LIKE 'validate_password%' ;
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | MEDIUM|
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
rows in set (0.01 sec)

参数说明:

参数 说明
validate_password_check_user_name 设置为ON 时,表示能将密码设置成当前用户名。
validate_password_dictionary_file validate_password 用于密码验证的文件路径。
validate_password_length validate_password 所需密码的最小字符数。(这个值最小是4)
validate_password_mixed_case_count 如果密码策略是中等或更强时,validate_password 要求密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count 如果密码策略是中等或更强时,validate_password 要求密码至少要包含的数字个数。
validate_password_policy 控制validate_password的密码策略(密码强度等级)。
取值: 0–>low 、1–>MEDIUM 、 2–>strong。

MySQL 密码的长度是由validate_password_length 决定的,而 validate_password_length 的计算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

MySQL 密码设置的复杂度,与 validate_password_policy 的值有关:

img

3.1、MySQL密码设置的解决方法

方法1、将密码设置为 复杂的密码

ALTER USER  'root'@'localhost'  IDENTIFIED BY   'z?guwrBhH7p>';

img

方法2、修改密码规则:
修改密码规则,允许设置简单的密码。

mysql> set global validate_password_length=4; 
mysql> set global validate_password_policy=0; 

设置之后,密码就可以设置的很简单,例如1234之类的。

方法3:关闭密码复杂策略

/etc/my.cnf

[mysqld]

#关闭密码复杂策略
validate_password=off

# 使用UTF-8作为默认字符集
character-set-server=utf8

重启mysql:

systemctl restart mysqld.service

3.2、没有找到初始密码的解决方法

vim /etc/my.cnf

[mysqld] 配置中添加

[mysqld]
skip-grant-tables

然后,启动(或者重启)mysql :

systemctl start mysqld.service
# systemctl restart mysqld.service

登录mysql数据库,这里密码为空

mysql -uroot -p

进入mysql 终端,然后修改密码为 1234@Mfg ,命令如下 :

set password for 'root'@'localhost'=PASSWORD('1234@Mfg');
flush privileges;
exit

注意:
skip-grant-tables 生效期间,除了修改密码,无法进行其他的操作。

退出Mysql,注释刚才添加的配置的字段 # skip-grant-tables
重启 mysql :

systemctl restart mysqld.service

接着,用新的密码重新登录:

mysql -uroot -p1234@Mfg   # 登录mysql数据库

查看密码规则:

mysql> SHOW VARIABLES LIKE 'validate_password%' ;

在这里插入图片描述

修改密码规则,允许设置简单的密码。

mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
mysql> flush privileges;

mysql> SHOW VARIABLES LIKE 'validate_password%' ;

在这里插入图片描述

修改为简单的密码:

mysql> set password for 'root'@'localhost'=PASSWORD('123456');
#alter user 'root'@'%' identified by '1234@Mfg';

退出mysql 。

接着,用新的密码重新登录:

mysql -uroot -p123456

如果中间过程没有异常,则登录成功。

4、移除MySQL 的 Yum Repository

因为安装了 Yum Repository ,以后每次 yum 操作都会自动更新,需要把这个卸载掉:

[root@BrianZhu ~]# yum -y remove mysql57-community-release-el7-10.noarch

5、 第三方客户端(远程)的登录授权:

如果要第三方客户端(远程)的登录授权,则需要权限设置:

mysql> use mysql;
mysql> update user set host='%' where user='root';

# 这样在远端就可以通过root用户访问Mysql.或者是授权法如下
mysql> use mysql;
Database changed

mysql>grant all on *.*  to root@'%' identified by '数据库密码' ;

# 刷新权限
mysql> flush privileges;

# 查看修改后的信息
mysql> select host,user,password from user;

如果授权不成功,请查看防火墙。

6、yum安装的mysql 数据存放的默认目录

/var/lib/mysql

在这里插入图片描述

转载自: https://www.cnblogs.com/brianzhu/p/8575243.html

发布了297 篇原创文章 · 获赞 263 · 访问量 114万+

猜你喜欢

转载自blog.csdn.net/xiaojin21cen/article/details/103888391