[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。
至此MySQL就安装完成了,然后是对MySQL的一些设置。
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
设置开机自启
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;
安装完成。密码修改好,但是除了这台机器,别的机器还是访问不了,需要关闭防火墙,并且授权
CentOS 7.0默认使用的是firewall作为防火墙
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
把所有数据库的所有表的管理权限赋值给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或新用户进行远程连接。