文章目录
在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。
出现这样的提示表示安装成功。
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' ;
如果 新密码设置过于简单会报错,如下图:
查看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
的值有关:
3.1、MySQL密码设置的解决方法
方法1、将密码设置为 复杂的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'z?guwrBhH7p>';
方法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