最全文章:在centos7中安装mysql5.7

1 下载并安装MySQL官方的 Yum Repository

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

  使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

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

  之后就开始安装MySQL服务器。

[root@localhost ~]# yum -y install mysql-community-server

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

最全文章:在centos7中安装mysql5.7_第1张图片

 

至此MySQL就安装完成了,然后是对MySQL的一些设置。

2 MySQL数据库设置

  首先启动MySQL

[root@localhost ~]# systemctl start  mysqld.service

  查看MySQL运行状态,运行状态如图:

[root@localhost ~]# systemctl status mysqld.service

最全文章:在centos7中安装mysql5.7_第2张图片
说明已经启动好了;

设置开机自启

systemctl enable mysqld--设置为开机启动

登陆mysql

grep 'temporary password' /var/log/mysqld.log  --查看mysql默认密码,并登陆的时候输入

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误
如果需要修改密码规则: show variables like '%password%'; 查看密码规则
 default_password_lifetime                      ----默认密码生存期
disconnect_on_expired_password           ----断开密码的连接
log_builtin_as_identified_by_password    ----密码识别日志
mysql_native_password_proxy_users     ----MySQL _ native _ password _代理_用户
old_passwords                                       ----旧密码
report_password                                    ----报告密码
sha256_password_proxy_users              ----sha 256 _密码_代理_用户
validate_password_check_user_name    ----验证密码检查用户名
validate_password_dictionary_file           ----指定密码验证的文件路径
validate_password_length                      ----密码最小长度
validate_password_mixed_case_count   ----密码至少要包含的小写字母个数和大写字母个数
validate_password_number_count          ----密码至少要包含的数字个数
---------------------------------------------------------------------------------------------------------------------
validate_password_policy                       ----密码强度检查等级,对应等级为:0/LOW 1/MEDIUM 2/STRONG,默认为1注意:
0/LOW:只检查长度;
1/MEDIUM:检查长度、数字、大小写、特殊字符;
2/STRONG:检查长度、数字、大小写、特殊字符字典文件;
---------------------------------------------------------------------------------------------------------------------                       
validate_password_special_char_count    ----密码至少要包含的特殊字符数
设置更改参数方法:
比如:设置密码强度检查等级:set global validate_password_policy=0;

也可以选择配置禁用密码策略
在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略,或直接禁用密码策略,添加 validate_password = off重新启动(systemctl restart mysql) mysql服务使配置生效。
修改默认密码

mysql初始化密码常见报错问题
1,mysql5.6是密码为空直接进入数据库的,但是mysql5.7就需要初始密码

cat /var/log/mysqld.log | grep password   --显示默认密码

2,然后执行 mysql -uroot -p ,输入上面的到的密码进入,用该密码登录后,必须马上修改新的密码,不然会报如下错误:

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


3,如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求

mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


这个其实与validate_password_policy的值有关。

validate_password_policy有以下取值:

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:

首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

validate_password_length(密码长度)参数默认为8,我们修改为1

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

4,完成之后再次执行修改密码语句即可成功

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

5.刷新权限  flush privileges;

安装完成。密码修改好,但是除了这台机器,别的机器还是访问不了,需要关闭防火墙,并且授权

最全文章:在centos7中安装mysql5.7_第3张图片

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service 

 

3、远程连接设置

把所有数据库的所有表的管理权限赋值给root用户。

mysql> grant all privileges on *.* to root@'%'identified by 'password';

或新建用户再给其赋予所有权限

 

参考:

https://blog.csdn.net/qq_24726509/article/details/80790879

https://www.cnblogs.com/lightsrs/p/7836651.html

https://blog.csdn.net/memory6364/article/details/82426052

https://blog.csdn.net/ytangdigl/article/details/79796961

mysql> grant all privileges on *.* to username@'%'identified by 'password' with grant option;

则可以用root或新用户进行远程连接。

你可能感兴趣的:(mysql5.7)