RedHat Enterprise 6下MySQL5.7的安装

时间:2022-09-13 17:06:24

从MySQL5.7.4起,以RPM包的方式安装后的MySQL的部署默认是安全的,并且有这些特点:

在大多数情况下,你只需要安装MySQL-server和MySQL-client安装包就可以安装上一个标准功能的MySQL。对于一个标准安装来说,其他的安装包不是必需的。

MySQL的安装程序会创建一个单独的root账户:'root'@'localhost',并自动为这个账户生成一个初始的随机密码,并将此密码标志为已过期。

对于MySQL5.7.6和更高的版本来说,初始的随机root密码是被写入错误日志的。对于MySQL5.7.4和5.7.5版本来说,密码是被写入以HOME环境变量命名的目录中的.mysql_secret文件中的。根据操作系统,可以使用诸如sudo这样的命令让HOME环境变量的值指向root系统用户的home目录。.mysql_secret文件是以只允许创建它的系统用户访问的600模式而创建的。(版本差异的产生,是因为自5.7.6版本起数据目录和root账户由mysqld --initialize来初始化,5.7.6以前的版本由mysql_install_db来初始化)。

不创建MySQL匿名账户。

不创建测试数据库。

作为上述操作所产生的结果,在安装完成后你需要去启动服务,以root身份,用初始的随机密码来进行连接,并且在连接后选择一个新的密码。在完成这些操作之前,root用户无法做其他的任何事情。修改密码,你可以用ALTER USER语句(例如,通过mysql客户端)。重设密码后,如果有创建.mysql_secret文件就把它删除;否则,在你执行mysql_secure_installation这条命令的时候,可能会再次看到那个文件和过期的root密码成为确认安全部署的一部分。


下面开始安装MySQL5.7.11企业版,要先配置好yum源,按照下面的步骤一步一步做就可以。

这里把所有的rpm包都拷贝到/opt目录下了。

这里强调一下,一定要用root用户来安装,安装后会自动创建mysql用户和mysql用户组。


[root@mysql opt]# rpm -qa | grep -i mysql

[root@mysql opt]# yum -y remove mysql-*


[root@mysql opt]# rpm -qa|grep mariadb

mariadb-libs-5.5.44-2.el7.x86_64

[root@mysql opt]# rpm -e mariadb-libs-5.5.44-2.el7.x86_64 --nodeps


[root@mysql opt]# rpm -ivh mysql-commercial-common-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-libs-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-libs-compat-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-embedded-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-devel-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-embedded-devel-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-client-5.7.11-1.1.el6.x86_64.rpm

[root@mysql opt]# rpm -ivh mysql-commercial-server-5.7.11-1.1.el6.x86_64.rpm


[root@mysql opt]# yum -y install perl-DBI

perl-DBI

perl-Compress-Raw-Bzip2

perl-Compress-Raw-Zlib

perl-Data-Dumper

perl-IO-Compress

perl-Net-Daemon

perl-PlRPC


[root@mysql opt]# rpm -ivh mysql-commercial-test-5.7.11-1.1.el6.x86_64.rpm


接下来修改配置文件

[root@mysql MySQL]#vi /etc/my.cnf

加入 skip-grant-tables

跳过密码检测


启动mysql

[root@mysql MySQL]#service mysqld start

[root@mysql MySQL]#mysql –u root –p

登录,无需密码直接回车


选择数据库

mysql>use mysql;

设置密码失效为"N"

mysql>update user set password_expired="N" where user="root";

设置密码为”123456”

mysql> update user set authentication_string=password("123456") where user="root";

刷新生效

mysql> flush privileges;

退出

mysql>quit;


修改配置

[root@mysql MySQL]#vi /etc/my.cnf

注释或删除 #skip-grant-tables


用新密码登陆

[root@mysql MySQL]#mysql –u root –p


修改密码

[root@mysql MySQL]#mysqladmin -u 用户名 -p 旧密码 password 新密码

[root@mysql MySQL]#mysqladmin -u root –p 123456 password "123-abcABC"

mysql>set password=password("123456"); 


查看现有的密码策略

mysql>show variables like 'val%'

validate_password_dictionary_file参数是指定密码验证的字典文件路径。

validate_password_length参数是密码的长度,这个参数由下面的公式生成

validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)

validate_password_mixed_case_count参数是密码中英文字符大小写的个数,当密码策略是MEDIUM或以上时生效。

validate_password_number_count参数是密码中至少含有的数字个数,当密码策略是MEDIUM或以上时生效。

validate_password_policy这个参数可以设为0、1、2,分别代表从低到高的密码强度,此参数的默认值为1,如果想将密码强度改若,则更改此参数为0。

validate_password_special_char_count参数是密码中非英文数字等特殊字符的个数,当密码策略是MEDIUM或以上时生效。


更改密码策略

mysql> set global validate_password_length=0; --更改密码长度

mysql> set global validate_password_policy=0; --更改密码策略为LOW


允许mysql远程访问


赋予任何主机访问数据的权限

mysql>grant all privileges on *.* to ‘root’@’%’with grant option;

mysql>grant all privileges on *.* to ‘root’@’%’identified by ‘123-abcABC’ with grant option;


default-character-set = utf8 

通过增加参数 –default-character-set = utf8 解决乱码问题


查看防火墙状态

systemctl status firewalld

临时关闭防火墙命令。重启电脑后,防火墙自动起来

systemctl stop firewalld

永久关闭防火墙命令。重启后,防火墙不会自动启动

systemctl disable firewalld

打开防火墙命令systemctl enable firewalld


mysql默认已是开机自启动